Class: Ibex::Codegen::GeneratedActionABI::Cache
- Inherits:
-
Object
- Object
- Ibex::Codegen::GeneratedActionABI::Cache
- Defined in:
- lib/ibex/codegen/generated_action_abi.rb,
sig/ibex/codegen/generated_action_abi.rbs
Overview
Keeps semantic-action analysis local to one code-generation run.
Instance Method Summary collapse
- #borrowed_values?(production) ⇒ Boolean
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
- #positional_action_source(production) ⇒ String?
- #positional_values?(production) ⇒ Boolean
- #values_only?(production) ⇒ Boolean
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
31 32 33 34 35 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 31 def initialize @values_only = {} @borrowed_values = {} @positional_actions = {} end |
Instance Method Details
#borrowed_values?(production) ⇒ Boolean
45 46 47 48 49 50 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 45 def borrowed_values?(production) @borrowed_values.fetch(production.id) do @borrowed_values[production.id] = GeneratedActionABI.borrowed_values?(production, analysis: self) end end |
#positional_action_source(production) ⇒ String?
53 54 55 56 57 58 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 53 def positional_action_source(production) @positional_actions.fetch(production.id) do @positional_actions[production.id] = GeneratedActionABI.positional_action_source(production, analysis: self) end end |
#positional_values?(production) ⇒ Boolean
61 62 63 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 61 def positional_values?(production) !positional_action_source(production).nil? end |
#values_only?(production) ⇒ Boolean
38 39 40 41 42 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 38 def values_only?(production) @values_only.fetch(production.id) do @values_only[production.id] = GeneratedActionABI.values_only?(production) end end |