ProgrammingLanguageNr1.Parser.plusplusOrMinusminus C# (CSharp) Method

plusplusOrMinusminus() private method

private plusplusOrMinusminus ( ) : ProgrammingLanguageNr1.AST
return ProgrammingLanguageNr1.AST
        private AST plusplusOrMinusminus()
        {
            #if WRITE_DEBUG_INFO
            Console.WriteLine("plusplusOrMinusminus");
            #endif
            Token nameToken = match(Token.TokenType.NAME);
            Token operatorToken = match(Token.TokenType.OPERATOR);

            AST operationTree = null;

            if(operatorToken.getTokenString() == "++") {
                operationTree = new AST(new Token(Token.TokenType.OPERATOR, "+"));
            }
            else if(operatorToken.getTokenString() == "--") {
                operationTree = new AST(new Token(Token.TokenType.OPERATOR, "-"));
            }
            else {
                throw new Error("Invalid operator token");
            }

            operationTree.addChild(new AST(nameToken));
            operationTree.addChild(new AST(new TokenWithValue(Token.TokenType.NUMBER, "1", 1.0f)));

            AST assignmentTree = new AST_Assignment(new Token(Token.TokenType.ASSIGNMENT, "="), nameToken.getTokenString());
            assignmentTree.addChild(operationTree);

            return assignmentTree;
        }