class ABNF::Parser::Compiler::Element
Attributes
rule[RW]
Public Instance Methods
bin_val_range(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 7 def bin_val_range token num_val_range token, 2 end
bin_val_sequence(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 11 def bin_val_sequence token num_val_sequence token, 2 end
char_val(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 15 def char_val token string = token.lexeme[1...-1] rule = Rules::Terminal.string string, token.abnf compiler.pop rule end
dec_val_range(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 21 def dec_val_range token num_val_range token, 10 end
dec_val_sequence(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 25 def dec_val_sequence token num_val_sequence token, 10 end
group_start(_)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 29 def group_start _ compiler.push Group do |rule| compiler.pop rule end end
hex_val_range(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 35 def hex_val_range token num_val_range token, 16 end
hex_val_sequence(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 39 def hex_val_sequence token num_val_sequence token, 16 end
num_val_range(token, base)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 43 def num_val_range token, base first, last = token.lexeme[2..-1].split '-' first = first.to_i base last = last.to_i base range = (first.chr..last.chr) rule = Rules::Terminal.character_range range, token.abnf compiler.pop rule end
num_val_sequence(token, base)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 55 def num_val_sequence token, base codes = token.lexeme[2..-1].split '.' codes.map! do |code| code.to_i base end string = codes.pack 'C*' rule = Rules::Terminal.string string, token.abnf compiler.pop rule end
option_start(_)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 67 def option_start _ compiler.push Option do |rule| abnf = "[#{rule.abnf}]" rule = Rules::Repetition.new rule, (0..1), abnf compiler.pop rule end end
prose_val(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 75 def prose_val token rule = Rules::ProseVal.new token.abnf compiler.pop rule end
rulename(token)
click to toggle source
# File lib/abnf/parser/compiler/element.rb, line 80 def rulename token rule = Rules::Reference.new token.lexeme compiler.pop rule end