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