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.
35 36 37 38 39 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 35 def initialize @values_only = {} @borrowed_values = {} @positional_actions = {} end |
Instance Method Details
#borrowed_values?(production) ⇒ Boolean
49 50 51 52 53 54 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 49 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?
57 58 59 60 61 62 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 57 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
65 66 67 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 65 def positional_values?(production) !positional_action_source(production).nil? end |
#values_only?(production) ⇒ Boolean
42 43 44 45 46 |
# File 'lib/ibex/codegen/generated_action_abi.rb', line 42 def values_only?(production) @values_only.fetch(production.id) do @values_only[production.id] = GeneratedActionABI.values_only?(production) end end |