Module: Ibex::Configuration::Registry

Defined in:
lib/ibex/configuration.rb,
sig/ibex/configuration.rbs

Overview

Closed definitions shared by generation, grammar tests, and analyses.

Constant Summary collapse

DEFINITIONS =

Returns:

[
  Key.new("grammar.mode", type: :symbol, default: :default, owner: :grammar_contract, policy: :fixed,
                          allowed_values: %i[default extended], cli_option: :mode),
  Key.new("parser.algorithm", type: :symbol, default: :lalr, owner: :grammar_contract, policy: :fixed,
                              allowed_values: %i[slr lalr ielr lr1], cli_option: :algorithm),
  Key.new("parser.entries", type: :symbol, default: :shared, owner: :grammar_contract, policy: :fixed,
                            allowed_values: %i[shared isolated], cli_option: :entry_isolation),
  Key.new("cst.trivia", type: :symbol, default: :leading, owner: :grammar_contract, policy: :fixed,
                        allowed_values: %i[leading balanced drop], cli_option: :cst_trivia),
  Key.new("parser.superclass", type: :optional_string, default: nil, owner: :grammar_contract, policy: :fixed,
                               cli_option: :superclass),
  Key.new("actions.omit_calls", type: :optional_boolean, default: nil, owner: :grammar_contract,
                                policy: :fixed, cli_option: :omit_actions),
  Key.new("table.representation", type: :symbol, default: :compact, owner: :project_build, policy: :build,
                                  allowed_values: %i[plain compact], cli_option: :table),
  Key.new("runtime.embedded", type: :boolean, default: false, owner: :project_build, policy: :build,
                              cli_option: :embedded),
  Key.new("build.debug", type: :boolean, default: false, owner: :project_build, policy: :build,
                         cli_option: :debug),
  Key.new("source.line_mapping", type: :symbol, default: :actions, owner: :project_build, policy: :build,
                                 allowed_values: %i[actions all none], cli_option: :line_convert),
  Key.new("build.frozen_strings", type: :boolean, default: false, owner: :project_build, policy: :build,
                                  cli_option: :frozen),
  Key.new("build.executable", type: :optional_string, default: nil, owner: :project_build, policy: :build,
                              cli_option: :executable)
].freeze
BY_NAME =

Signature:

  • Array[Key]

Returns:

  • (Hash[String, Key])
DEFINITIONS.to_h { |key| [key.name, key] }.freeze

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ Key

RBS:

  • (String name) -> Key

Parameters:

  • name (String)

Returns:



313
314
315
# File 'lib/ibex/configuration.rb', line 313

def fetch(name)
  BY_NAME.fetch(name) { raise ArgumentError, "unknown configuration key: #{name.inspect}" }
end

.keysArray[Key]

RBS:

  • () -> Array[Key]

Returns:



318
319
320
# File 'lib/ibex/configuration.rb', line 318

def keys
  DEFINITIONS
end