Class: Ibex::Runtime::SyntaxSessionResult
- Inherits:
-
Object
- Object
- Ibex::Runtime::SyntaxSessionResult
- Defined in:
- lib/ibex/runtime/syntax_session.rb,
sig/ibex/runtime/syntax_session.rbs
Overview
Immutable public snapshot of one completed syntax-session operation.
Instance Attribute Summary collapse
- #diagnostics ⇒ Array[SyntaxSessionDiagnostic] readonly
- #expected_tokens ⇒ Array[String] readonly
- #metrics ⇒ SyntaxSessionMetrics readonly
- #revision ⇒ Integer readonly
- #status ⇒ Symbol readonly
- #syntax_root ⇒ CST::SyntaxNode readonly
Instance Method Summary collapse
-
#initialize(revision:, syntax_root:, diagnostics:, expected_tokens:, metrics:, status:) ⇒ SyntaxSessionResult
constructor
A new instance of SyntaxSessionResult.
- #success? ⇒ Boolean
Constructor Details
#initialize(revision:, syntax_root:, diagnostics:, expected_tokens:, metrics:, status:) ⇒ SyntaxSessionResult
Returns a new instance of SyntaxSessionResult.
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/ibex/runtime/syntax_session.rb', line 175 def initialize(revision:, syntax_root:, diagnostics:, expected_tokens:, metrics:, status:) raise ArgumentError, "revision must be a nonnegative Integer" unless revision.is_a?(Integer) && revision >= 0 unless diagnostics.is_a?(Array) && diagnostics.all?(SyntaxSessionDiagnostic) raise ArgumentError, "diagnostics must contain only SyntaxSessionDiagnostic values" end unless expected_tokens.is_a?(Array) && expected_tokens.all?(String) raise ArgumentError, "expected_tokens must contain only Strings" end unless metrics.is_a?(SyntaxSessionMetrics) raise ArgumentError, "metrics must be an Ibex::Runtime::SyntaxSessionMetrics" end raise ArgumentError, "status must be :ok or :syntax_error" unless %i[ok syntax_error].include?(status) @revision = revision @syntax_root = syntax_root @diagnostics = diagnostics.dup.freeze @expected_tokens = expected_tokens.map { |token| token.dup.freeze }.freeze @metrics = metrics @status = status freeze end |
Instance Attribute Details
#diagnostics ⇒ Array[SyntaxSessionDiagnostic] (readonly)
168 169 170 |
# File 'lib/ibex/runtime/syntax_session.rb', line 168 def diagnostics @diagnostics end |
#expected_tokens ⇒ Array[String] (readonly)
169 170 171 |
# File 'lib/ibex/runtime/syntax_session.rb', line 169 def expected_tokens @expected_tokens end |
#metrics ⇒ SyntaxSessionMetrics (readonly)
170 171 172 |
# File 'lib/ibex/runtime/syntax_session.rb', line 170 def metrics @metrics end |
#revision ⇒ Integer (readonly)
166 167 168 |
# File 'lib/ibex/runtime/syntax_session.rb', line 166 def revision @revision end |
#status ⇒ Symbol (readonly)
171 172 173 |
# File 'lib/ibex/runtime/syntax_session.rb', line 171 def status @status end |
#syntax_root ⇒ CST::SyntaxNode (readonly)
167 168 169 |
# File 'lib/ibex/runtime/syntax_session.rb', line 167 def syntax_root @syntax_root end |
Instance Method Details
#success? ⇒ Boolean
198 199 200 |
# File 'lib/ibex/runtime/syntax_session.rb', line 198 def success? @status == :ok end |