예제 #1
0
        private ExpressionArgumentNode ParseArgument()
        {
            ExpressionArgumentNode itsAST;
            SourceCodePosition     itsPos = _currentToken.SourcePosition;

            itsAST = new ExpressionArgumentNode(Expression(), itsPos);
            return(itsAST);
        }
예제 #2
0
        private ArgumentSequenceNode ParseArguments()
        {
            ArgumentSequenceNode   itsAST;
            SourceCodePosition     itsPos = _currentToken.SourcePosition;
            ExpressionArgumentNode itsArg = ParseArgument();

            if (_currentToken.Type == Token.TokenType.Comma)
            {
                Accept(Token.TokenType.Comma);
                ArgumentSequenceNode itsNextArgs = ParseArguments();
                itsAST = new MultipleArgumentSequenceNode(itsArg, itsNextArgs, itsPos);
            }
            else
            {
                itsAST = new SingleArgumentSequenceNode(itsArg, itsPos);
            }
            return(itsAST);
        }
예제 #3
0
 public object Visit(ExpressionArgumentNode n, object o)
 {
     return(null);
 }
예제 #4
0
 public object Visit(ExpressionArgumentNode n, object o)
 {
     n.Expression.Accept(this, null);
     return(null);
 }