예제 #1
0
 public ArrayInstantiationNode(TypeNode type, ArrayTypeNode arrayType,
                               ArrayInitializerNode arrayInitializer, Token token) : base(token)
 {
     this.typeOfArray    = type;
     this.arrayType      = arrayType;
     this.initialization = arrayInitializer;
 }
예제 #2
0
 private static AstNode ParseTerm(Parser.Parser parser)
 {
     if (parser.MatchToken(TokenType.Number))
     {
         return(new NumberNode(Convert.ToDouble(parser.ExpectToken(TokenType.Number).Value)));
     }
     else if (parser.AcceptToken(TokenType.Parentheses, "("))
     {
         AstNode statement = ExpressionNode.Parse(parser);
         parser.ExpectToken(TokenType.Parentheses, ")");
         return(statement);
     }
     else if (parser.AcceptToken(TokenType.Bracket, "["))
     {
         AstNode statement = ArrayInitializerNode.Parse(parser);
         parser.ExpectToken(TokenType.Bracket, "]");
         return(statement);
     }
     else if (parser.MatchToken(TokenType.String))
     {
         return(new StringNode(parser.ExpectToken(TokenType.String).Value.ToString()));
     }
     else if (parser.MatchToken(TokenType.Identifier))
     {
         return(new IdentifierNode(parser.ExpectToken(TokenType.Identifier).Value.ToString()));
     }
     else
     {
         throw new Exception("Unexpected in Parser: " + parser.CurrentToken().Value);
     }
 }
예제 #3
0
 public ArrayInstantiationNode(TypeNode type, List <ExpressionNode> primaryExpBrackets,
                               ArrayTypeNode arrayType, ArrayInitializerNode initialization, Token token) : base(token)
 {
     this.typeOfArray        = type;
     this.primaryExpBrackets = primaryExpBrackets;
     this.arrayType          = arrayType;
     this.initialization     = initialization;
 }
예제 #4
0
 public ArrayInitializerExpressionNode(ArrayType arr, ArrayInitializerNode initializer)
 {
     this.arr         = arr;
     this.initializer = initializer;
 }