public SyntaxTreeIfStatementNode(FilePosition position, SyntaxTreeNode conditionNode,
     SyntaxTreeNode thenStatement, SyntaxTreeNode elseStatement)
     : base(position)
 {
     this._children.Add(conditionNode);
     this._children.Add(thenStatement);
     this._children.Add(elseStatement);
 }
 public SyntaxTreeDyadicOpNode(FilePosition position, Symbol opCodeSymbol,
     SyntaxTreeNode leftHandOperand, SyntaxTreeNode rightHandOperand)
     : base(position)
 {
     this._children.Add(leftHandOperand);
     this._children.Add(rightHandOperand);
     this._opCodeSymbol = opCodeSymbol;
 }
 public SyntaxTreeInlineIfNode(FilePosition position, SyntaxTreeNode boolExprNode,
     SyntaxTreeNode thenIntExprNode, SyntaxTreeNode elseIntExprNode)
     : base(position)
 {
     this._children.Add(boolExprNode);
     this._children.Add(thenIntExprNode);
     this._children.Add(elseIntExprNode);
 }
 public SyntaxTreeForStatementNode(FilePosition position, SyntaxTreeNode variableInitialization,
     SyntaxTreeNode condition, SyntaxTreeNode variableAltering, SyntaxTreeNode statement)
     : base(position)
 {
     this._children.Add(variableInitialization);
     this._children.Add(condition);
     this._children.Add(variableAltering);
     this._children.Add(statement);
 }
 public SyntaxTreeSequenceNode(FilePosition position, SyntaxTreeNode statementNode, SyntaxTreeNode prevSequenceNode)
     : base(position)
 {
     this._children.Add(statementNode);
     this._children.Add(prevSequenceNode);
     /*
     if (null != prevSequenceNode && prevSequenceNode is SyntaxTreeSequenceNode)
     {
         SyntaxTreeSequenceNode curNode = (SyntaxTreeSequenceNode)prevSequenceNode;
         while (curNode._children[1] != null)
         {
             curNode = (SyntaxTreeSequenceNode)curNode._children[1];
         }
         curNode._children[1] = this;
     }*/
 }
 public SyntaxTreeAssignmentNode(FilePosition position, SyntaxTreeNode identNode, SyntaxTreeNode intExprNode)
     : base(position)
 {
     this._children.Add(identNode);
     this._children.Add(intExprNode);
 }
 public SyntaxTreeParenthesisNode(FilePosition position, SyntaxTreeNode intExprNode)
     : base(position)
 {
     this._children.Add(intExprNode);
 }
Exemplo n.º 8
0
 public void SetDeclarationNodeLinkToSymbol(Symbol symbol, SyntaxTreeNode node)
 {
     foreach (var table in this._symbolTableStack)
         foreach (var entry in table)
             if (entry.symbol == symbol)
             {
                 if (entry.nodeLink == null)
                 {
                     entry.nodeLink = node;
                 }
                 return;
             }
     throw new Exception("Symbol not found: " + symbol);
 }
Exemplo n.º 9
0
 public SyntaxTree(SyntaxTreeNode rootNode)
 {
     this._rootNode = rootNode;
 }
Exemplo n.º 10
0
 public SyntaxTreeReadNode(FilePosition position, SyntaxTreeNode identNode)
     : base(position)
 {
     this._children.Add(identNode);
 }
 public SyntaxTreeMonadicOpNode(FilePosition position, Symbol opCodeSymbol, SyntaxTreeNode operand)
     : base(position)
 {
     this._children.Add(operand);
     this._opCodeSymbol = opCodeSymbol;
 }
 public SyntaxTreeWhileStatementNode(FilePosition position, SyntaxTreeNode boolExpr, SyntaxTreeNode statement)
     : base(position)
 {
     this._children.Add(boolExpr);
     this._children.Add(statement);
 }