ProgrammingLanguageNr1.Parser.parameter C# (CSharp) Method

parameter() private method

private parameter ( ) : ProgrammingLanguageNr1.AST
return ProgrammingLanguageNr1.AST
        private AST parameter()
        {
            #if WRITE_DEBUG_INFO
            Console.WriteLine("parameter");
            #endif

            AST parameterTree = new AST(new Token(Token.TokenType.PARAMETER, "<PARAMETER>", lookAhead(1).LineNr, lookAhead(1).LinePosition));

            AST type = null;

            if(lookAheadType(1) == Token.TokenType.BUILT_IN_TYPE_NAME) {
                type = new AST(match(Token.TokenType.BUILT_IN_TYPE_NAME));
            } else {
                type = new AST(new Token(Token.TokenType.BUILT_IN_TYPE_NAME, "var"));
            }
            AST name = new AST(match(Token.TokenType.NAME));

            AST declaration = new AST_VariableDeclaration(new Token(Token.TokenType.VAR_DECLARATION, "<PARAMETER_DECLARATION>"),
                                                          ExternalFunctionCreator.GetReturnTypeFromString(type.getTokenString()), name.getTokenString());

            AST assigment = new AST_Assignment(new Token(Token.TokenType.ASSIGNMENT, "="), name.getTokenString());

            parameterTree.addChild(declaration);
            parameterTree.addChild(assigment);

            return parameterTree;
        }