private NodeProperty ParseNodeProperty(Lexer lexer) { NodeProperty result = null; if (lexer.Peek().Type == LexemeType.Letters) { Lexeme identLexeme = lexer.Read(); Lexeme valueLexeme = lexer.Read(); if (valueLexeme.Type == LexemeType.Value) { NodePropertyIdent ident = new NodePropertyIdent(identLexeme.Value); List <string> values = new List <string>(); values.Add(valueLexeme.Value); while (lexer.Peek().Type == LexemeType.Value) { valueLexeme = lexer.Read(); values.Add(valueLexeme.Value); } result = new NodeProperty(ident, values); } else { throw new ArgumentException("Property value expected"); } } return(result); }
public NodeProperty(NodePropertyIdent ident, List <string> values) { Ident = ident; Values = values; }