Ejemplo n.º 1
0
        private CallArgs ParseCallArgs()
        {
            var t = NextToken();

            AssertDelimiter(Delimiter.ParenthesisOpen, t);

            var node = new CallArgs();

            t = NextToken(false);
            if (t.IsDelimiter(Delimiter.ParenthesisClose))
            {
                _stream.Next();

                return(node);
            }

            do
            {
                var expr = ParseExpression();

                node.AddChild(expr);
            } while (NextToken().IsDelimiter(Delimiter.Comma));
            _stream.Previous(); // Not comma encountered

            t = NextToken();
            AssertDelimiter(Delimiter.ParenthesisClose, t);

            return(node);
        }