class Antlr4::Runtime::DFA
Attributes
atn_start_state[R]
decision[R]
precedence_dfa[R]
s0[RW]
states[RW]
Public Class Methods
new(atn_start_state, decision = 0)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 10 def initialize(atn_start_state, decision = 0) @atn_start_state = atn_start_state @decision = decision @states = {} @precedence_dfa = false if atn_start_state.is_a? StarLoopEntryState if atn_start_state.is_precedence_pecision @precedence_dfa = true precedence_state = DFAState.new(ATNConfigSet.new) precedence_state.edges = [] precedence_state.is_accept_state = false precedence_state.requires_full_context = false @s0 = precedence_state end end end
Public Instance Methods
get_states()
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 60 def get_states result = @states.keys result.sort! {|i, j| i.state_number - j.state_number} result end
precedence_dfa?()
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 29 def precedence_dfa? @precedence_dfa end
precedence_start_state(precedence)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 33 def precedence_start_state(precedence) unless @precedence_dfa raise IllegalStateException, 'Only precedence DFAs may contain a precedence start state.' end # s0.edges is never nil for a precedence DFA return nil if precedence < 0 || precedence >= @s0.edges.length @s0.edges[precedence] end
precedence_start_state2(precedence, start_state)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 44 def precedence_start_state2(precedence, start_state) unless @precedence_dfa raise IllegalStateException, 'Only precedence DFAs may contain a precedence start state.' end return if precedence < 0 @s0.edges[precedence] = start_state end
set_precedence_dfa(precedence_dfa)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 54 def set_precedence_dfa(precedence_dfa) if precedence_dfa != @precedence_dfa raise UnsupportedOperationException, 'The precedence_dfa field cannot change after a DFA is constructed.' end end
to_lexer_string()
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 87 def to_lexer_string return '' if @s0.nil? serializer = LexerDFASerializer.new(self) serializer.to_s end
to_s()
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 67 def to_s to_s2(VocabularyImpl.EMPTY_VOCABULARY) end
to_s1(token_names)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 71 def to_s1(token_names) return '' if @s0.nil? serializer = DFASerializer.new serializer.init_from_token_names(self, token_names) serializer.to_s end
to_s2(vocabulary)
click to toggle source
# File lib/antlr4/runtime/dfa.rb, line 79 def to_s2(vocabulary) return '' if @s0.nil? serializer = DFASerializer.new serializer.init_from_vocabulary(self, vocabulary) serializer.to_s end