public Node Call(Token identifier) { var result = new CallStatement() { AnchorToken = identifier }; Expect(TokenCategory.PARENTHESIS_OPEN); if (firstOfSimpleExpression.Contains(CurrentToken)) { result.Add(Expression()); while (CurrentToken == TokenCategory.COMA) { Expect(TokenCategory.COMA); result.Add(Expression()); } } Expect(TokenCategory.PARENTHESIS_CLOSE); return(result); }
public Node CallStatement() { var result = new CallStatement(); Expect(TokenCategory.LEFT_PAR); if (firstOfExpression.Contains(CurrentToken)) { result.Add(Expression()); while (CurrentToken == TokenCategory.COMA) { Expect(TokenCategory.COMA); result.Add(Expression()); } } Expect(TokenCategory.RIGHT_PAR); Expect(TokenCategory.SEMICOLON); return(result); }
public Node CallStatement() { var result = new CallStatement() { AnchorToken = Expect(TokenCategory.PARENTHESIS_OPEN) }; if (CurrentToken != TokenCategory.PARENTHESIS_CLOSE) { result.Add(Expression()); while (CurrentToken == TokenCategory.COMMA) { Expect(TokenCategory.COMMA); result.Add(Expression()); } } Expect(TokenCategory.PARENTHESIS_CLOSE); Expect(TokenCategory.SEMICOLON); return(result); }
public Node AssignmentCallStatement() { var identif = Expect(TokenCategory.IDENTIFIER); var assignment = new AssignmentStatement(); var call = new CallStatement(); Console.WriteLine("IDENTIFFFF" + identif); Console.WriteLine("CT: " + CurrentToken); //var alter = new Expression(); //call-statement if (CurrentToken == TokenCategory.INITPARENTHESIS) { Expect(TokenCategory.INITPARENTHESIS); if (firstOfSimpleExpression.Contains(CurrentToken)) { call.Add(Expression()); while (CurrentToken == TokenCategory.COMMA) { Expect(TokenCategory.COMMA); call.Add(Expression()); } } //call.Add( Expect(TokenCategory.CLOSINGPARENTHESIS); Expect(TokenCategory.ENDLINE); var result = new List() { call }; call.AnchorToken = identif; return(call); //call.AnchorToken = identif; //return call; } else if (CurrentToken == TokenCategory.INITBRACKET || CurrentToken == TokenCategory.CONSTANTDECLARATION) { if (CurrentToken == TokenCategory.INITBRACKET) { Expect(TokenCategory.INITBRACKET); var expression = Expression(); Expect(TokenCategory.CLOSINGBRACKET); assignment.Add(expression); } Expect(TokenCategory.CONSTANTDECLARATION); var expression2 = Expression(); Expect(TokenCategory.ENDLINE); assignment.Add(expression2); assignment.AnchorToken = identif; return(assignment); } /************** ATENCION ************/ /************** ATENCION ************/ /************** ATENCION ************/ else { throw new SyntaxError(firstOfStatement, tokenStream.Current); } return(call); }