lib/lrama/command.rb in lrama-0.6.11 vs lib/lrama/command.rb in lrama-0.7.0
- old
+ new
@@ -17,11 +17,11 @@
Report::Duration.enable if options.trace_opts[:time]
text = options.y.read
options.y.close if options.y != STDIN
begin
- grammar = Lrama::Parser.new(text, options.grammar_file, options.debug).parse
+ grammar = Lrama::Parser.new(text, options.grammar_file, options.debug, options.define).parse
unless grammar.no_stdlib
stdlib_grammar = Lrama::Parser.new(File.read(STDLIB_FILE_PATH), STDLIB_FILE_PATH, options.debug).parse
grammar.insert_before_parameterizing_rules(stdlib_grammar.parameterizing_rules)
end
grammar.prepare
@@ -32,9 +32,10 @@
message = message.gsub(/.+/, "\e[1m\\&\e[m") if Exception.to_tty?
abort message
end
states = Lrama::States.new(grammar, trace_state: (options.trace_opts[:automaton] || options.trace_opts[:closure]))
states.compute
+ states.compute_ielr if grammar.ielr_defined?
context = Lrama::Context.new(states)
if options.report_file
reporter = Lrama::StatesReporter.new(states)
File.open(options.report_file, "w+") do |f|