Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }