Class: Ibex::Runtime::CST::RelexResult

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

Overview

Result of comparing one fresh lexical pass with the prior token memo.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(memo:, reused_count:, scanned_count:, resynchronized_at:) ⇒ RelexResult

Returns a new instance of RelexResult.

RBS:

  • (memo: TokenMemo, reused_count: Integer, scanned_count: Integer, resynchronized_at: Integer?) -> void



2800
2801
2802
2803
2804
2805
2806
# File 'lib/json5/generated_parser.rb', line 2800

def initialize(memo:, reused_count:, scanned_count:, resynchronized_at:)
  @memo = memo
  @reused_count = reused_count
  @scanned_count = scanned_count
  @resynchronized_at = resynchronized_at
  freeze
end

Instance Attribute Details

#memoObject (readonly)

Signature:

  • TokenMemo



2793
2794
2795
# File 'lib/json5/generated_parser.rb', line 2793

def memo
  @memo
end

#resynchronized_atObject (readonly)

Signature:

  • Integer?



2796
2797
2798
# File 'lib/json5/generated_parser.rb', line 2796

def resynchronized_at
  @resynchronized_at
end

#reused_countObject (readonly)

Signature:

  • Integer



2794
2795
2796
# File 'lib/json5/generated_parser.rb', line 2794

def reused_count
  @reused_count
end

#scanned_countObject (readonly)

Signature:

  • Integer



2795
2796
2797
# File 'lib/json5/generated_parser.rb', line 2795

def scanned_count
  @scanned_count
end

Instance Method Details

#reused_ratioObject

RBS:

  • () -> Float



2809
2810
2811
2812
2813
# File 'lib/json5/generated_parser.rb', line 2809

def reused_ratio
  return 0.0 if @memo.tokens.empty?

  @reused_count.fdiv(@memo.tokens.length)
end