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;
}