Beispiel #1
0
        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);
        }
Beispiel #2
0
 public NodeProperty(NodePropertyIdent ident, List <string> values)
 {
     Ident  = ident;
     Values = values;
 }