001    // -*- mode: java -*-
002    /* Copyright 2000, 2001, Compaq Computer Corporation */
003    
004    /* IF THIS IS A JAVA FILE, DO NOT EDIT IT!  
005    
006       Most Java files in this directory which are part of the Javafe AST
007       are automatically generated using the astgen comment (see
008       ESCTools/Javafe/astgen) from the input file 'hierarchy.h'.  If you
009       wish to modify AST classes or introduce new ones, modify
010       'hierarchy.j.'
011     */
012    
013    package javafe.ast;
014    
015    import javafe.util.Assert;
016    import javafe.util.Location;
017    import javafe.util.ErrorSet;
018    
019    // Convention: unless otherwise noted, integer fields named "loc" refer
020    // to the location of the first character of the syntactic unit
021    
022    
023    /* ---------------------------------------------------------------------- */
024    
025    /**
026     * Represents a Type syntactic unit. <p>
027     *
028     * WARNING: unlike other AST nodes, Type and it's subtypes may
029     * not have associated locations!  Locations exist only if syntax is
030     * true.
031     */
032    
033    public abstract class Type extends ASTNode
034    {
035        /**
036         * Does this AST Node have associated locations?  True if yes.
037         */
038        //@ public model boolean syntax;
039        //@ public represents syntax <- !isInternal;
040    
041        public TypeModifierPragmaVec tmodifiers;
042    
043        protected Type() {}
044    
045    
046    
047    // Generated boilerplate constructors:
048    
049        //@ ensures this.tmodifiers == tmodifiers;
050        protected Type(TypeModifierPragmaVec tmodifiers) {
051           super();
052           this.tmodifiers = tmodifiers;
053        }
054        public void check() {
055           super.check();
056           if (this.tmodifiers != null)
057              for(int i = 0; i < this.tmodifiers.size(); i++)
058                 this.tmodifiers.elementAt(i).check();
059        }
060    
061    }