examples/general/SRL/lib/grammar.rb in rley-0.5.08 vs examples/general/SRL/lib/grammar.rb in rley-0.5.09

- old
+ new

@@ -4,25 +4,33 @@ ######################################## # Work in progress. # This is a very partial grammar of SRL. # It will be expanded with the coming versions of Rley builder = Rley::Syntax::GrammarBuilder.new do - add_terminals('DIGIT', 'INTEGER') + add_terminals('DIGIT_LIT', 'INTEGER', 'LETTER_LIT') + add_terminals('UPPERCASE', 'LETTER', 'FROM', 'TO') add_terminals('EXACTLY', 'TIMES', 'ONCE', 'TWICE') add_terminals('BETWEEN', 'AND', 'OPTIONAL', 'OR') add_terminals('MORE', 'NEVER', 'AT', 'LEAST') # For the moment one focuses on quantifier syntax only... - rule 'srl' => 'quantifier' + rule 'srl' => 'term' + rule 'term' => 'atom' + rule 'term' => %w[atom quantifier] + rule 'atom' => 'letter_range' + rule 'letter_range' => %w[LETTER FROM LETTER_LIT TO LETTER_LIT] + rule 'letter_range' => %w[UPPERCASE LETTER FROM LETTER_LIT TO LETTER_LIT] + rule 'letter_range' => 'LETTER' + rule 'letter_range' => %w[UPPERCASE LETTER] rule 'quantifier' => 'ONCE' rule 'quantifier' => 'TWICE' rule 'quantifier' => %w[EXACTLY count TIMES] rule 'quantifier' => %w[BETWEEN count AND count times_suffix] rule 'quantifier' => 'OPTIONAL' rule 'quantifier' => %w[ONCE OR MORE] rule 'quantifier' => %w[NEVER OR MORE] rule 'quantifier' => %w[AT LEAST count TIMES] - rule 'count' => 'DIGIT' + rule 'count' => 'DIGIT_LIT' rule 'count' => 'INTEGER' rule 'times_suffix' => 'TIMES' rule 'times_suffix' => [] end \ No newline at end of file