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"); }
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); }