Class: Ibex::IR::Action
- Inherits:
-
Object
- Object
- Ibex::IR::Action
- Defined in:
- lib/ibex/ir/grammar_ir.rb,
sig/ibex/ir/grammar_ir.rbs
Overview
Opaque Ruby semantic action metadata.
Instance Attribute Summary collapse
- #code ⇒ String readonly
- #composition ⇒ action_composition? readonly
- #context_length ⇒ Integer readonly
- #location ⇒ location readonly
- #named_refs ⇒ Array[named_ref] readonly
Instance Method Summary collapse
-
#initialize(code:, location:, named_refs: [], context_length: 0, composition: nil) ⇒ Action
constructor
A new instance of Action.
- #to_h(schema_version: SCHEMA_VERSION) ⇒ Hash[Symbol, untyped]
Constructor Details
#initialize(code:, location:, named_refs: [], context_length: 0, composition: nil) ⇒ Action
Returns a new instance of Action.
76 77 78 79 80 81 82 83 |
# File 'lib/ibex/ir/grammar_ir.rb', line 76 def initialize(code:, location:, named_refs: [], context_length: 0, composition: nil) @code = code.freeze @location = IR.deep_freeze(location) @named_refs = IR.deep_freeze(named_refs) @context_length = context_length @composition = IR.deep_freeze(composition) freeze end |
Instance Attribute Details
#code ⇒ String (readonly)
68 69 70 |
# File 'lib/ibex/ir/grammar_ir.rb', line 68 def code @code end |
#composition ⇒ action_composition? (readonly)
72 73 74 |
# File 'lib/ibex/ir/grammar_ir.rb', line 72 def composition @composition end |
#context_length ⇒ Integer (readonly)
71 72 73 |
# File 'lib/ibex/ir/grammar_ir.rb', line 71 def context_length @context_length end |
#location ⇒ location (readonly)
69 70 71 |
# File 'lib/ibex/ir/grammar_ir.rb', line 69 def location @location end |
#named_refs ⇒ Array[named_ref] (readonly)
70 71 72 |
# File 'lib/ibex/ir/grammar_ir.rb', line 70 def named_refs @named_refs end |
Instance Method Details
#to_h(schema_version: SCHEMA_VERSION) ⇒ Hash[Symbol, untyped]
86 87 88 89 90 91 |
# File 'lib/ibex/ir/grammar_ir.rb', line 86 def to_h(schema_version: SCHEMA_VERSION) value = { code: @code, loc: @location, named_refs: @named_refs, context_length: @context_length } #: Hash[Symbol, untyped] value[:composition] = @composition if schema_version >= 2 value end |