Class: Lrama::Tracer

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/tracer.rb,
lib/lrama/tracer/rules.rb,
lib/lrama/tracer/state.rb,
lib/lrama/tracer/actions.rb,
lib/lrama/tracer/closure.rb,
lib/lrama/tracer/duration.rb,
lib/lrama/tracer/only_explicit_rules.rb

Defined Under Namespace

Modules: Duration Classes: Actions, Closure, OnlyExplicitRules, Rules, State

Instance Method Summary collapse

Constructor Details

#initialize(io, **options) ⇒ Tracer

Returns a new instance of Tracer.



14
15
16
17
18
19
20
21
22
# File 'lib/lrama/tracer.rb', line 14

def initialize(io, **options)
  @io = io
  @options = options
  @only_explicit_rules = OnlyExplicitRules.new(io, **options)
  @rules = Rules.new(io, **options)
  @actions = Actions.new(io, **options)
  @closure = Closure.new(io, **options)
  @state = State.new(io, **options)
end

Instance Method Details

#enable_durationObject



47
48
49
# File 'lib/lrama/tracer.rb', line 47

def enable_duration
  Duration.enable if @options[:time]
end

#trace(grammar) ⇒ Object



25
26
27
28
29
# File 'lib/lrama/tracer.rb', line 25

def trace(grammar)
  @only_explicit_rules.trace(grammar)
  @rules.trace(grammar)
  @actions.trace(grammar)
end

#trace_closure(state) ⇒ Object



32
33
34
# File 'lib/lrama/tracer.rb', line 32

def trace_closure(state)
  @closure.trace(state)
end

#trace_state(state) ⇒ Object



37
38
39
# File 'lib/lrama/tracer.rb', line 37

def trace_state(state)
  @state.trace(state)
end

#trace_state_list_append(state_count, state) ⇒ Object



42
43
44
# File 'lib/lrama/tracer.rb', line 42

def trace_state_list_append(state_count, state)
  @state.trace_list_append(state_count, state)
end