Ejemplo n.º 1
0
        private SyntaxNode ReadFunction(Token nameToken)
        {
            nameToken.AssertIsTypeOf(TokenType.Identifier);
            tokens.AssertCanRead();
            tokens.AssertNextIsTypeOf(TokenType.LeftParentheses);

            SyntaxNode functionExpression = ReadExpression();

            tokens.AssertCanRead();
            tokens.AssertNextIsTypeOf(TokenType.RightParentheses);

            return(new FunctionOrDistributionNode(new IdentifierNode(nameToken), functionExpression));
        }
Ejemplo n.º 2
0
        private SyntaxNode HandleFormalIdentifierAmbiguity()
        {
            tokens.AssertCanRead();

            Token identifer = tokens.Next();

            identifer.AssertIsTypeOf(TokenType.Identifier);

            if (IdentifierIsAFunction())
            {
                return(ReadFunction(identifer));
            }

            return(new IdentifierNode(identifer));
        }