lib/lrama/grammar.rb in lrama-0.6.1 vs lib/lrama/grammar.rb in lrama-0.6.2

- old
+ new

@@ -22,11 +22,11 @@ attr_accessor :union, :expect, :printers, :error_tokens, :lex_param, :parse_param, :initial_action, :symbols, :types, :rules, :rule_builders, - :sym_to_rules + :sym_to_rules, :no_stdlib def initialize(rule_counter) @rule_counter = rule_counter # Code defined by "%code" @@ -43,10 +43,11 @@ @eof_symbol = nil @error_symbol = nil @undef_symbol = nil @accept_symbol = nil @aux = Auxiliary.new + @no_stdlib = false append_special_symbols end def add_percent_code(id:, code:) @@ -134,10 +135,18 @@ def add_parameterizing_rule(rule) @parameterizing_rule_resolver.add_parameterizing_rule(rule) end + def parameterizing_rules + @parameterizing_rule_resolver.rules + end + + def insert_before_parameterizing_rules(rules) + @parameterizing_rule_resolver.rules = rules + @parameterizing_rule_resolver.rules + end + def prologue_first_lineno=(prologue_first_lineno) @aux.prologue_first_lineno = prologue_first_lineno end def prologue=(prologue) @@ -232,10 +241,10 @@ private def compute_nullable @rules.each do |rule| case - when rule.rhs.empty? + when rule.empty_rule? rule.nullable = true when rule.rhs.any?(&:term) rule.nullable = false else # noop