001 /* 002 // $Id: Graph.java 3 2009-05-11 08:11:57Z jhyde $ 003 // Clapham generates railroad diagrams to represent computer language grammars. 004 // Copyright (C) 2008-2009 Julian Hyde 005 // 006 // This program is free software; you can redistribute it and/or modify it 007 // under the terms of the GNU General Public License as published by the Free 008 // Software Foundation; either version 2 of the License, or (at your option) 009 // any later version approved by The Eigenbase Project. 010 // 011 // This program is distributed in the hope that it will be useful, 012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 // GNU General Public License for more details. 015 // 016 // You should have received a copy of the GNU General Public License 017 // along with this program; if not, write to the Free Software 018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 019 */ 020 package net.hydromatic.clapham.graph; 021 022 /** 023 * TODO: 024 * 025 * @author jhyde 026 * @version $Id: Graph.java 3 2009-05-11 08:11:57Z jhyde $ 027 * @since Jul 30, 2008 028 */ 029 public class Graph { 030 031 public Node l; // left end of graph = head 032 public Node r; // right end of graph = list of nodes to be linked to successor graph 033 public Size graphSize; 034 035 public Graph() { 036 l = null; 037 r = null; 038 } 039 040 public Graph(Node left, Node right) { 041 l = left; 042 r = right; 043 } 044 045 public Graph(Node p) { 046 l = p; 047 r = p; 048 } 049 050 public void finish(Graph g) { 051 Node p = g.r; 052 while (p != null) { 053 Node q = p.next; 054 p.next = null; 055 p = q; 056 } 057 } 058 } 059 060 // End Graph.java