예제 #1
0
        public INode ParseExpression(ITokenList tokens)
        {
            if (tokens == null)
            {
                throw new ArgumentNullException("tokens");
            }

            var enumerator = tokens.GetEnumerator();

            while (enumerator.MoveNext())
            {
                if (enumerator.Current.Type != TokenType.Comment)
                {
                    return(ParseToken(enumerator));
                }
            }

            throw new ParsingException("Expression expected");
        }
예제 #2
0
        public IEnumerable <INode> ParseProgram(ITokenList tokens)
        {
            if (tokens == null)
            {
                throw new ArgumentNullException("tokens");
            }

            var nodes      = new List <INode>();
            var enumerator = tokens.GetEnumerator();

            while (enumerator.MoveNext())
            {
                if (enumerator.Current.Type != TokenType.Comment)
                {
                    nodes.Add(ParseToken(enumerator));
                }
            }

            return(nodes);
        }