Changeset 3295


Ignore:
Timestamp:
Jun 11, 2013, 1:55:58 PM (5 years ago)
Author:
ksherdy
Message:

Updated generated AST classes.

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

Legend:

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

    r3196 r3295  
    102102// dealing with children and parent
    103103//
    104 // note: there is no provision as of yet for removal of children.  Be sure to update
    105 // the removed child's parent pointer if you do implement it.
     104// note: Be sure to update inserted or removed child's parent pointer in all operations.
    106105       
    107106        public ASTNode getParent() {
     
    124123                return children.get(index);
    125124        }
     125        public int nChildren() {
     126                return children.size();
     127        }
    126128        public void initChildren() {
    127129                children = new ArrayList<ASTNode>();
    128         }
     130        }       
    129131        // adds a new child to this node (as first child) and sets its parent link.
    130132        public void insertChild(ASTNode child) {
     
    136138                children.add(child);
    137139                child.setParent(this);
    138         }       
    139         public int nChildren() {
    140                 return children.size();
     140        }
     141    public void insertChild(int index, ASTNode child) {
     142        if(index <= 0) {
     143                children.add(0, child);
     144        }
     145        else if(index >= children.size()) {
     146            children.add(child);
     147        }
     148        else {
     149            children.add(index, child);
     150        }
     151        child.setParent(this);       
     152    }   
     153        public void insertBeforeChild(ASTNode child, ASTNode predecessor) {
     154        int index = children.indexOf(child);
     155        insertChild(index, predecessor);
     156    }   
     157        public void insertAfterChild(ASTNode child, ASTNode successor) {
     158        int index = children.indexOf(child);
     159        insertChild(index+1, successor);
     160    }
     161        public void removeChild(int index) {
     162                ASTNode child = children.remove(index);
     163                child.setParent(null);
    141164        }
    142165        public void replaceChild(ASTNode node, ASTNode replacement) {
     
    145168        }
    146169        public void replaceChild(int index, ASTNode replacement) {
    147                 ASTNode oldChild = children.remove(index);
    148                 oldChild.setParent(null);
    149                
    150                 if(index == children.size()) {
    151                         children.add(replacement);
    152                 }
    153                 else {
    154                         children.add(index, replacement);
    155                 }
    156                 replacement.setParent(this);
    157         }
    158         public void removeChild(int i) {
    159                 ASTNode child = children.get(i);
    160                 children.remove(i);
    161                 child.setParent(null);
     170                removeChild(index);
     171                insertChild(index, replacement);
    162172        }
    163173        // does nothing if called on root.
     
    167177        }
    168178    }
    169         public void insertAfterChild(ASTNode node, ASTNode successor) {
    170         int index = children.indexOf(node);
    171         insertAfterChild(index, successor);
    172         successor.setParent(this);
     179    public void insertBeforeSelf(ASTNode predecessor) {
     180        if(getParent() != NO_PARENT) {
     181            getParent().insertBeforeChild(this, predecessor);
     182        }
     183    }   
     184        public void insertAfterSelf(ASTNode successor) {
     185        if(getParent() != NO_PARENT) {
     186            getParent().insertAfterChild(this, successor);
     187        }
    173188    }
    174     private void insertAfterChild(int index, ASTNode successor) {
    175         if(index == children.size()-1) {
    176             children.add(successor);
    177         }
    178         else {
    179             children.add(index+1, successor);
    180         }       
    181     }   
    182 
     189   
    183190////////////////////////////////////////////////////////////////////////////////////
    184191// Iterable<ASTNode> pathToRoot
  • proto/pabloj/trunk/src/pabloB/ast/AssignNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/AssignOperatorNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/BitBlockTypeNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/BitFieldTypeNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/BlockStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/BoolTypeNode.java

    r3102 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/CompoundIdentifierNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/EpsilonNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/ErrorNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/FieldWidthNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/FieldWidthTypeNode.java

    r3192 r3295  
    7878                visitor.visitLeave(this);
    7979        }
    80 //      public ASTNode accept(ASTTransformer transformer) {
    81 //              return transformer.visit(this);
    82 //      }       
    83 //      public void accept(SimpleVisitor visitor) {
    84 //              visitor.visit(this);
    85 //      }
     80        public ASTNode accept(ASTTransformer transformer) {
     81                return transformer.visit(this);
     82        }       
     83        public void accept(SimpleVisitor visitor) {
     84                visitor.visit(this);
     85        }
    8686}
  • proto/pabloj/trunk/src/pabloB/ast/FuncCallArgListNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/FuncCallNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/FuncCallOrAssignStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/FuncDefNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IdentifierNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IdisaFuncCallArgListNode.java

    r3010 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IdisaFuncCallNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IfStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/InitDefNode.java

    r3261 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IntTypeNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/IntegerConstantNode.java

    r3004 r3295  
    7878                visitor.visitLeave(this);
    7979        }
    80 //      public ASTNode accept(ASTTransformer transformer) {
    81 //              return transformer.visit(this);
    82 //      }       
    83 //      public void accept(SimpleVisitor visitor) {
    84 //              visitor.visit(this);
    85 //      }
     80        public ASTNode accept(ASTTransformer transformer) {
     81                return transformer.visit(this);
     82        }       
     83        public void accept(SimpleVisitor visitor) {
     84                visitor.visit(this);
     85        }
    8686}
  • proto/pabloj/trunk/src/pabloB/ast/KernelDefNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/KernelPropertyNode.java

    r3261 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/LocalVarDeclNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/ParameterListNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/ParameterNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/ProgramNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/PropertyValueNode.java

    r3261 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/ReturnStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/StringConstantNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/StructDeclBodyNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/StructDeclNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/StructMemberNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/StructTypeNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/VoidTypeNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloB/ast/WhileStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/ASTNode.java

    r3260 r3295  
    112112// dealing with children and parent
    113113//
    114 // note: there is no provision as of yet for removal of children.  Be sure to update
    115 // the removed child's parent pointer if you do implement it.
     114// note: Be sure to update inserted or removed child's parent pointer in all operations.
    116115       
    117116        public ASTNode getParent() {
     
    134133                return children.get(index);
    135134        }
     135        public int nChildren() {
     136                return children.size();
     137        }
    136138        public void initChildren() {
    137139                children = new ArrayList<ASTNode>();
    138         }
     140        }       
    139141        // adds a new child to this node (as first child) and sets its parent link.
    140142        public void insertChild(ASTNode child) {
     
    146148                children.add(child);
    147149                child.setParent(this);
    148         }       
    149         public int nChildren() {
    150                 return children.size();
     150        }
     151    public void insertChild(int index, ASTNode child) {
     152        if(index <= 0) {
     153                children.add(0, child);
     154        }
     155        else if(index >= children.size()) {
     156            children.add(child);
     157        }
     158        else {
     159            children.add(index, child);
     160        }
     161        child.setParent(this);       
     162    }   
     163        public void insertBeforeChild(ASTNode child, ASTNode predecessor) {
     164        int index = children.indexOf(child);
     165        insertChild(index, predecessor);
     166    }   
     167        public void insertAfterChild(ASTNode child, ASTNode successor) {
     168        int index = children.indexOf(child);
     169        insertChild(index+1, successor);
     170    }
     171        public void removeChild(int index) {
     172                ASTNode child = children.remove(index);
     173                child.setParent(null);
    151174        }
    152175        public void replaceChild(ASTNode node, ASTNode replacement) {
     
    155178        }
    156179        public void replaceChild(int index, ASTNode replacement) {
    157                 ASTNode oldChild = children.remove(index);
    158                 oldChild.setParent(null);
    159                
    160                 if(index == children.size()) {
    161                         children.add(replacement);
    162                 }
    163                 else {
    164                         children.add(index, replacement);
    165                 }
    166                 replacement.setParent(this);
    167         }
    168         public void removeChild(int i) {
    169                 ASTNode child = children.get(i);
    170                 children.remove(i);
    171                 child.setParent(null);
     180                removeChild(index);
     181                insertChild(index, replacement);
    172182        }
    173183        // does nothing if called on root.
     
    177187        }
    178188    }
    179         public void insertAfterChild(ASTNode node, ASTNode successor) {
    180         int index = children.indexOf(node);
    181         insertAfterChild(index, successor);
    182         successor.setParent(this);
     189    public void insertBeforeSelf(ASTNode predecessor) {
     190        if(getParent() != NO_PARENT) {
     191            getParent().insertBeforeChild(this, predecessor);
     192        }
     193    }   
     194        public void insertAfterSelf(ASTNode successor) {
     195        if(getParent() != NO_PARENT) {
     196            getParent().insertAfterChild(this, successor);
     197        }
    183198    }
    184     private void insertAfterChild(int index, ASTNode successor) {
    185         if(index == children.size()-1) {
    186             children.add(successor);
    187         }
    188         else {
    189             children.add(index+1, successor);
    190         }       
    191     }   
    192 
     199   
    193200////////////////////////////////////////////////////////////////////////////////////
    194201// Iterable<ASTNode> pathToRoot
  • proto/pabloj/trunk/src/pabloS/ast/AssignNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/BinaryOperatorNode.java

    r3259 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/BlockStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/CompoundIdentifierNode.java

    r3254 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/EpsilonNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/ErrorNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/FuncCallArgListNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/FuncCallNode.java

    r3259 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/FuncCallOrAssignStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/FuncDefNode.java

    r3254 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/IdentifierNode.java

    r3254 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/IfStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/IntTypeNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/IntegerConstantNode.java

    r3004 r3295  
    7878                visitor.visitLeave(this);
    7979        }
    80 //      public ASTNode accept(ASTTransformer transformer) {
    81 //              return transformer.visit(this);
    82 //      }       
    83 //      public void accept(SimpleVisitor visitor) {
    84 //              visitor.visit(this);
    85 //      }
     80        public ASTNode accept(ASTTransformer transformer) {
     81                return transformer.visit(this);
     82        }       
     83        public void accept(SimpleVisitor visitor) {
     84                visitor.visit(this);
     85        }
    8686}
  • proto/pabloj/trunk/src/pabloS/ast/LocalVarDeclNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/ParameterListNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/ParameterNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/ProgramNode.java

    r3254 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/ReturnStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/StreamTypeNode.java

    r3254 r3295  
    7878                visitor.visitLeave(this);
    7979        }
    80 //      public ASTNode accept(ASTTransformer transformer) {
    81 //              return transformer.visit(this);
    82 //      }       
    83 //      public void accept(SimpleVisitor visitor) {
    84 //              visitor.visit(this);
    85 //      }
     80        public ASTNode accept(ASTTransformer transformer) {
     81                return transformer.visit(this);
     82        }       
     83        public void accept(SimpleVisitor visitor) {
     84                visitor.visit(this);
     85        }
    8686}
  • proto/pabloj/trunk/src/pabloS/ast/StringConstantNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/StructDeclBodyNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/StructDeclNode.java

    r3254 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/StructMemberNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/StructTypeNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/UnaryOperatorNode.java

    r3259 r3295  
    7979                visitor.visitLeave(this);
    8080        }
    81 //      public ASTNode accept(ASTTransformer transformer) {
    82 //              return transformer.visit(this);
    83 //      }       
    84 //      public void accept(SimpleVisitor visitor) {
    85 //              visitor.visit(this);
    86 //      }
     81        public ASTNode accept(ASTTransformer transformer) {
     82                return transformer.visit(this);
     83        }       
     84        public void accept(SimpleVisitor visitor) {
     85                visitor.visit(this);
     86        }
    8787}
  • proto/pabloj/trunk/src/pabloS/ast/VoidTypeNode.java

    r3192 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
  • proto/pabloj/trunk/src/pabloS/ast/WhileStmtNode.java

    r3004 r3295  
    6868                visitor.visitLeave(this);
    6969        }
    70 //      public ASTNode accept(ASTTransformer transformer) {
    71 //              return transformer.visit(this);
    72 //      }       
    73 //      public void accept(SimpleVisitor visitor) {
    74 //              visitor.visit(this);
    75 //      }
     70        public ASTNode accept(ASTTransformer transformer) {
     71                return transformer.visit(this);
     72        }       
     73        public void accept(SimpleVisitor visitor) {
     74                visitor.visit(this);
     75        }
    7676}
Note: See TracChangeset for help on using the changeset viewer.