Class: Ibex::Runtime::SyntaxSessionResult
- Inherits:
-
Object
- Object
- Ibex::Runtime::SyntaxSessionResult
- Defined in:
- lib/ibex/runtime/syntax_session.rb
Overview
Immutable public snapshot of one completed syntax-session operation.
Instance Attribute Summary collapse
-
#diagnostics ⇒ Object
readonly
: Array.
-
#expected_tokens ⇒ Object
readonly
: Array.
-
#metrics ⇒ Object
readonly
: SyntaxSessionMetrics.
-
#revision ⇒ Object
readonly
: Integer.
-
#status ⇒ Object
readonly
: Symbol.
-
#syntax_root ⇒ Object
readonly
: CST::SyntaxNode.
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.
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
# File 'lib/ibex/runtime/syntax_session.rb', line 176 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 ⇒ Object (readonly)
: Array
169 170 171 |
# File 'lib/ibex/runtime/syntax_session.rb', line 169 def diagnostics @diagnostics end |
#expected_tokens ⇒ Object (readonly)
: Array
170 171 172 |
# File 'lib/ibex/runtime/syntax_session.rb', line 170 def expected_tokens @expected_tokens end |
#metrics ⇒ Object (readonly)
: SyntaxSessionMetrics
171 172 173 |
# File 'lib/ibex/runtime/syntax_session.rb', line 171 def metrics @metrics end |
#revision ⇒ Object (readonly)
: Integer
167 168 169 |
# File 'lib/ibex/runtime/syntax_session.rb', line 167 def revision @revision end |
#status ⇒ Object (readonly)
: Symbol
172 173 174 |
# File 'lib/ibex/runtime/syntax_session.rb', line 172 def status @status end |
#syntax_root ⇒ Object (readonly)
: CST::SyntaxNode
168 169 170 |
# File 'lib/ibex/runtime/syntax_session.rb', line 168 def syntax_root @syntax_root end |
Instance Method Details
#success? ⇒ Boolean
199 200 201 |
# File 'lib/ibex/runtime/syntax_session.rb', line 199 def success? @status == :ok end |