Class: Ibex::IR::Action
- Inherits:
-
Object
- Object
- Ibex::IR::Action
- Defined in:
- lib/ibex/ir/grammar_ir.rb
Overview
Opaque Ruby semantic action metadata.
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
: String.
-
#composition ⇒ Object
readonly
: action_composition?.
-
#context_length ⇒ Object
readonly
: Integer.
-
#location ⇒ Object
readonly
: location.
-
#named_refs ⇒ Object
readonly
: Array.
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) ⇒ Object
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 ⇒ Object (readonly)
: String
68 69 70 |
# File 'lib/ibex/ir/grammar_ir.rb', line 68 def code @code end |
#composition ⇒ Object (readonly)
: action_composition?
72 73 74 |
# File 'lib/ibex/ir/grammar_ir.rb', line 72 def composition @composition end |
#context_length ⇒ Object (readonly)
: Integer
71 72 73 |
# File 'lib/ibex/ir/grammar_ir.rb', line 71 def context_length @context_length end |
#location ⇒ Object (readonly)
: location
69 70 71 |
# File 'lib/ibex/ir/grammar_ir.rb', line 69 def location @location end |
#named_refs ⇒ Object (readonly)
: Array
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) ⇒ Object
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 |