    001    /* Copyright 2000, 2001, Compaq Computer Corporation */
    002
    003    /* IF THIS IS A JAVA FILE, DO NOT EDIT IT!
    004
    005       Most Java files in this directory which are part of the Javafe AST
    006       are automatically generated using the astgen comment (see
    007       ESCTools/Javafe/astgen) from the input file 'hierarchy.h'.  If you
    008       wish to modify AST classes or introduce new ones, modify
    009       'hierarchy.j.'
    010     */
    011
    012    package escjava.ast;
    013
    014    import java.util.Hashtable;
    015    import java.util.Set;
    016    import java.util.ArrayList;
    017
    018    import javafe.ast.*;
    019    import javafe.util.Assert;
    020    import javafe.util.Location;
    021    import escjava.ParsedRoutineSpecs;
    022
    023    // Convention: unless otherwise noted, integer fields named "loc" refer
    024    // to the location of the first character of the syntactic unit
    025
    026    //# TagBase javafe.tc.TagConstants.LAST_TAG + 1
    027    //# VisitorRoot javafe.ast.Visitor
    028
    029
    030    //// Guarded commands
    031
    032    public abstract class GuardedCmd extends ASTNode
    033    {
    034
    035    // Generated boilerplate constructors:
    036
    037       /**
    038        * Construct a raw GuardedCmd whose class invariant(s) have not
    039        * yet been established.  It is the caller's job to
    040        * initialize the returned node's fields so that any
    041        * class invariants hold.
    042        */
    043
    044
    045
    046    // Generated boilerplate methods:
    047
    048       /** Return the number of children a node has. */
    049       public abstract int childCount();
    050
    051       /** Return the first-but-ith child of a node. */
    052       public abstract Object childAt(int i);
    053
    054       /** Return the tag of a node. */
    055       public abstract int getTag();
    056
    057       /** Return a string representation of <code>this</code>.
    058       Meant for debugging use only, not for presentation. */
    059       public abstract String toString();
    060
    061       /** Accept a visit from <code>v</code>.  This method simply
    062       calls the method of <code>v</code> corresponding to the
    063       allocated type of <code>this</code>, passing <code>this</code>
    064       as the argument.  See the design patterns book. */
    065       public abstract void accept(javafe.ast.Visitor v);
    066
    067    public abstract Object accept(javafe.ast.VisitorArgResult v, Object o);
    068
    069       public void check() {
    070       }
    071
    072    }