Module: Ibex::CLIGenerationErrorMessages
- Included in:
- CLI
- Defined in:
- lib/ibex/cli/generation_error_messages.rb,
sig/ibex/cli/generation_error_messages.rbs
Overview
Optional example-keyed error-message support for parser generation.
Instance Method Summary collapse
- #add_error_messages_generation_option(options) ⇒ void
- #configured_error_messages(automaton) ⇒ Hash[Integer, untyped]
- #validate_messages_options ⇒ void
Instance Method Details
#add_error_messages_generation_option(options) ⇒ void
This method returns an undefined value.
13 14 15 16 17 |
# File 'lib/ibex/cli/generation_error_messages.rb', line 13 def () .on("--messages=FILE", "embed example-keyed syntax error messages") do |value| @options[:messages] = value end end |
#configured_error_messages(automaton) ⇒ Hash[Integer, untyped]
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/ibex/cli/generation_error_messages.rb', line 20 def (automaton) path = @options[:messages] return {} unless path require_relative "../error_messages" source = File.binread(path) record_generation_input(path, source) document = ErrorMessages.parse(source, file: path) ErrorMessages.records_for(document, automaton, file: path) end |
#validate_messages_options ⇒ void
This method returns an undefined value.
32 33 34 35 36 37 |
# File 'lib/ibex/cli/generation_error_messages.rb', line 32 def return unless @options[:messages] raise Ibex::Error, "(cli):1:1: --messages is available only with --emit=ruby" unless @options[:emit] == "ruby" raise Ibex::Error, "(cli):1:1: --messages cannot be combined with --check-only" if @options[:check_only] end |