public override void visit(SyntaxTree.expression_list _expression_list)
 {
     //throw new NotSupportedError(get_location(_expression_list));
     int count = _expression_list.expressions.Count;
     statement_node_list snl = new statement_node_list();
     for (int i = 0; i < count - 1; i++)
     {
         statement_node sn = ret.visit(_expression_list.expressions[i]);
         snl.AddElement(sn);
     }
     expression_node ex = ret.visit(_expression_list.expressions[count - 1]);
     statements_expression_node sen = new statements_expression_node(
         snl, ex, get_location(_expression_list));
     return_value(sen);
 }
 public statements_expression_node(statement_node_list statements, expression_node expression, location loc)
     : base(expression.type, loc)
 {
     this._statements_list = statements;
     this._expression      = expression;
 }
 private statements_expression_node CreateStatementsExpressionNode()
 {
     statement_node_list sl = new statement_node_list();
     int count = br.ReadInt32();
     for (int i = 0; i < count; i++)
         sl.AddElement(CreateStatement());
     return new statements_expression_node(sl, CreateExpression(), null);
 }
示例#4
0
 public statements_expression_node(statement_node_list statements, expression_node expression, location loc)
     : base(expression.type, loc)
 {
     this._statements_list = statements;
     this._expression = expression;
 }