Class: Ibex::Runtime::SyntaxSessionResult

Inherits:
Object
  • Object
show all
Defined in:
lib/json5/generated_parser.rb

Overview

Immutable public snapshot of one completed syntax-session operation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(revision:, syntax_root:, diagnostics:, expected_tokens:, metrics:, status:) ⇒ SyntaxSessionResult

Returns a new instance of SyntaxSessionResult.

RBS:

  • (revision: Integer, syntax_root: CST::SyntaxNode, diagnostics: Array[SyntaxSessionDiagnostic], expected_tokens: Array[String], metrics: SyntaxSessionMetrics, status: Symbol) -> void

Raises:

  • (ArgumentError)


4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
# File 'lib/json5/generated_parser.rb', line 4100

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

#diagnosticsObject (readonly)

Signature:

  • Array[SyntaxSessionDiagnostic]



4093
4094
4095
# File 'lib/json5/generated_parser.rb', line 4093

def diagnostics
  @diagnostics
end

#expected_tokensObject (readonly)

Signature:

  • Array[String]



4094
4095
4096
# File 'lib/json5/generated_parser.rb', line 4094

def expected_tokens
  @expected_tokens
end

#metricsObject (readonly)

Signature:

  • SyntaxSessionMetrics



4095
4096
4097
# File 'lib/json5/generated_parser.rb', line 4095

def metrics
  @metrics
end

#revisionObject (readonly)

Signature:

  • Integer



4091
4092
4093
# File 'lib/json5/generated_parser.rb', line 4091

def revision
  @revision
end

#statusObject (readonly)

Signature:

  • Symbol



4096
4097
4098
# File 'lib/json5/generated_parser.rb', line 4096

def status
  @status
end

#syntax_rootObject (readonly)

Signature:

  • CST::SyntaxNode



4092
4093
4094
# File 'lib/json5/generated_parser.rb', line 4092

def syntax_root
  @syntax_root
end

Instance Method Details

#success?Boolean

RBS:

  • () -> bool

Returns:

  • (Boolean)


4123
4124
4125
# File 'lib/json5/generated_parser.rb', line 4123

def success?
  @status == :ok
end