Ejemplo n.º 1
0
 AssignNode MakeIdentAssign(IdentNode n, ExprNode n1, Lexer.TokenType op, Lexer.Position pos)
 {
     if (op == Lexer.TokenType.TOK_ASSIGN)
     {
         return(new AsgVarNode(n, n1, pos));
     }
     switch (op)
     {
     case Lexer.TokenType.TOK_PLUS:
     case Lexer.TokenType.TOK_MINUS:
     case Lexer.TokenType.TOK_MUL:
     case Lexer.TokenType.TOK_DIV:
     case Lexer.TokenType.TOK_MOD:
     case Lexer.TokenType.TOK_SHL:
     case Lexer.TokenType.TOK_SHR:
     //case Lexer.TokenType.TOK_NOTAR:
     case Lexer.TokenType.TOK_AND:
     case Lexer.TokenType.TOK_OR:
     case Lexer.TokenType.TOK_XOR:
     case Lexer.TokenType.TOK_PLUSPLUS:
     case Lexer.TokenType.TOK_MINUSMINUS:
     case Lexer.TokenType.FTOK_PLUSPLUS_PREF:
     case Lexer.TokenType.FTOK_MINUSMINUS_PREF:
         return(new AsgArifmVarNode(n, n1, op, pos));
     }
     throw new ParserException("Can't assign to " + n.OpType, pos);
 }
Ejemplo n.º 2
0
 public DeclareVarNode(IdentNode name, ExprNode value, Lexer.Position pos) : base(ExprType.DeclareVar, pos)
 {
     Ident = name;
     Value = value;
 }
Ejemplo n.º 3
0
 public AsgArifmVarNode(IdentNode l, ExprNode r, Lexer.TokenType op, Lexer.Position pos) : base(l, r, op, ExprType.AsgArifm, pos)
 {
 }
Ejemplo n.º 4
0
 public AsgVarNode(IdentNode l, ExprNode r, Lexer.Position pos) : base(l, r, ExprType.AssignVar, pos)
 {
 }