Class: Antlr4ruby::Vocabulary
- Inherits:
-
Object
- Object
- Antlr4ruby::Vocabulary
- Defined in:
- lib/antlr4ruby/vocabulary.rb
Constant Summary collapse
- EMPTY_VOCABULARY =
Vocabulary.new(EMPTY_NAMES, EMPTY_NAMES, EMPTY_NAMES)
Class Method Summary collapse
Instance Method Summary collapse
- #get_display_name(token_type) ⇒ Object
- #get_literal_name(token_type) ⇒ Object
- #get_max_token_type ⇒ Object
- #get_symbolic_name(token_type) ⇒ Object
-
#initialize(literal_names, symbolic_names, display_names = []) ⇒ Vocabulary
constructor
A new instance of Vocabulary.
Constructor Details
#initialize(literal_names, symbolic_names, display_names = []) ⇒ Vocabulary
Returns a new instance of Vocabulary.
7 8 9 10 11 12 13 14 |
# File 'lib/antlr4ruby/vocabulary.rb', line 7 def initialize(literal_names, symbolic_names, display_names = []) super() @literal_names = literal_names || EMPTY_NAMES @symbolic_names = symbolic_names || EMPTY_NAMES @display_names = display_names || EMPTY_NAMES longer = literal_names.length > symbolic_names.length ? literal_names.length : symbolic_names.length @max_token_type = (longer > @display_names.length ? longer : @display_names.length) - 1 end |
Class Method Details
.from_token_names(token_names) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/antlr4ruby/vocabulary.rb', line 47 def from_token_names(token_names) return EMPTY_VOCABULARY if !token_names || (token_names.length <= 0) literal_names = token_names.clone symbolic_names = token_names.clone (0..token_names.length).each do |i| token_name = token_names[i] next unless token_name unless token_name.empty? case token_name[0] when '\'' symbolic_names[i] = nil next when /[A-Z]+/ literal_names[i] = nil next end end literal_names[i] = nil symbolic_names[i] = nil end Vocabulary.new(literal_names, symbolic_names, token_names) end |
Instance Method Details
#get_display_name(token_type) ⇒ Object
36 37 38 |
# File 'lib/antlr4ruby/vocabulary.rb', line 36 def get_display_name(token_type) @display_names[token_type] || get_literal_name(token_type) || get_symbolic_name(token_type) || token_type.to_s end |
#get_literal_name(token_type) ⇒ Object
26 27 28 |
# File 'lib/antlr4ruby/vocabulary.rb', line 26 def get_literal_name(token_type) @literal_names[token_type] end |
#get_max_token_type ⇒ Object
40 41 42 |
# File 'lib/antlr4ruby/vocabulary.rb', line 40 def get_max_token_type @max_token_type end |
#get_symbolic_name(token_type) ⇒ Object
30 31 32 33 34 |
# File 'lib/antlr4ruby/vocabulary.rb', line 30 def get_symbolic_name(token_type) return 'EOF' if token_type == Token::EOF @symbolic_names[token_type] end |