Class: Ibex::Frontend::CST::Document
- Inherits:
-
Object
- Object
- Ibex::Frontend::CST::Document
- Includes:
- Enumerable
- Defined in:
- lib/ibex/frontend/source_document.rb
Overview
The immutable lexical root of a grammar source document.
Instance Attribute Summary collapse
-
#segments ⇒ Object
readonly
: Array.
Instance Method Summary collapse
-
#each(&block) ⇒ Object
@rbs! def each: () -> Enumerator[Segment, Document] | () { (Segment) -> void } -> Document.
-
#initialize(segments) ⇒ Document
constructor
A new instance of Document.
- #render ⇒ Object
Constructor Details
#initialize(segments) ⇒ Document
Returns a new instance of Document.
60 61 62 63 64 |
# File 'lib/ibex/frontend/source_document.rb', line 60 def initialize(segments) validate_contiguous(segments) @segments = segments.dup.freeze freeze end |
Instance Attribute Details
#segments ⇒ Object (readonly)
: Array
57 58 59 |
# File 'lib/ibex/frontend/source_document.rb', line 57 def segments @segments end |
Instance Method Details
#each(&block) ⇒ Object
@rbs! def each: () -> Enumerator[Segment, Document] | () { (Segment) -> void } -> Document
70 71 72 73 74 75 |
# File 'lib/ibex/frontend/source_document.rb', line 70 def each(&block) return enum_for(:each) unless block segments.each(&block) self end |
#render ⇒ Object
78 79 80 |
# File 'lib/ibex/frontend/source_document.rb', line 78 def render segments.map(&:render).join end |