Changeset 2964


Ignore:
Timestamp:
Mar 23, 2013, 7:45:17 PM (5 years ago)
Author:
ksherdy
Message:

Minor updates to PabloB and PabloS ASTNode helpers.

Location:
proto/pabloj/trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/pabloB/ast/ASTNode.java

    r2834 r2964  
    9090                return children.get(i);
    9191        }
     92        public ASTNode lastChild() {
     93                return children.get(children.size()-1);
     94        }       
    9295        public ASTNode reverseChild(int i) {
    9396                int index = children.size() - 1 - i;
     
    102105                child.setParent(this);
    103106        }
     107        // adds a new child to this node (as the first child) and sets its parent link.
     108        public void prependChild(ASTNode child) {
     109                children.add(0, child);
     110                child.setParent(child);
     111        }       
    104112        // adds a new child to this node (as last child) and sets its parent link.
    105113        public void appendChild(ASTNode child) {
    106114                children.add(child);
    107115                child.setParent(this);
    108         }
     116        }       
    109117        public int nChildren() {
    110118                return children.size();
  • proto/pabloj/trunk/src/pabloB/parser/Parser.java

    r2917 r2964  
    211211                result.setProductionTag(7);
    212212                RevList<ASTNode> allChildren = new ReverseAccessibleArrayList<ASTNode>();
    213                 if( (nowReading.isLexicalType(LexicalType.IDENTIFIER)) ) {
    214                         {
    215                                 ASTNode child = parseStateIdentifier();
    216                                 result.appendChild(child);
    217                                 allChildren.add(child);
    218                         }
    219                         expect(Lextant.LSQUARE);
    220                         {
    221                                 ASTNode child = parseStateSize();
    222                                 result.appendChild(child);
    223                                 allChildren.add(child);
    224                         }
    225                         expect(Lextant.RSQUARE);
    226                         expect(Lextant.ASSIGN);
    227                         expect(Lextant.LCURLY);
    228                         {
    229                                 ASTNode child = parseStateInitList();
    230                                 result.appendChild(child);
    231                                 allChildren.add(child);
    232                         }
    233                         expect(Lextant.RCURLY);
    234                 }
    235                 else if( (nowReading.isLexicalType(LexicalType.IDENTIFIER)) ) {
    236                         {
    237                                 ASTNode child = parseStateIdentifier();
    238                                 result.appendChild(child);
    239                                 allChildren.add(child);
    240                         }
    241                         expect(Lextant.ASSIGN);
    242                         {
    243                                 ASTNode child = parseStateValue();
    244                                 result.appendChild(child);
    245                                 allChildren.add(child);
    246                         }
    247                         if( nowReading.isLextant(Lextant.TERMINATOR) ) {
    248                                 expect(Lextant.TERMINATOR);
    249                         }
     213                {
     214                        ASTNode child = parseStateIdentifier();
     215                        result.appendChild(child);
     216                        allChildren.add(child);
     217                }
     218                expect(Lextant.LSQUARE);
     219                {
     220                        ASTNode child = parseStateSize();
     221                        result.appendChild(child);
     222                        allChildren.add(child);
     223                }
     224                expect(Lextant.RSQUARE);
     225                expect(Lextant.ASSIGN);
     226                expect(Lextant.LCURLY);
     227                {
     228                        ASTNode child = parseStateInitList();
     229                        result.appendChild(child);
     230                        allChildren.add(child);
     231                }
     232                expect(Lextant.RCURLY);
     233                if( nowReading.isLextant(Lextant.TERMINATOR) ) {
     234                        expect(Lextant.TERMINATOR);
    250235                }
    251236                if(allowCompression) {
  • proto/pabloj/trunk/src/pabloS/ast/ASTNode.java

    r2834 r2964  
    9090                return children.get(i);
    9191        }
     92        public ASTNode lastChild() {
     93                return children.get(children.size()-1);
     94        }       
    9295        public ASTNode reverseChild(int i) {
    9396                int index = children.size() - 1 - i;
     
    102105                child.setParent(this);
    103106        }
     107        // adds a new child to this node (as the first child) and sets its parent link.
     108        public void prependChild(ASTNode child) {
     109                children.add(0, child);
     110                child.setParent(child);
     111        }       
    104112        // adds a new child to this node (as last child) and sets its parent link.
    105113        public void appendChild(ASTNode child) {
    106114                children.add(child);
    107115                child.setParent(this);
    108         }
     116        }       
    109117        public int nChildren() {
    110118                return children.size();
Note: See TracChangeset for help on using the changeset viewer.