module KPeg
Constants
- VERSION
Public Class Methods
compile(str, name, scope=Object)
click to toggle source
# File lib/kpeg.rb, line 37 def self.compile(str, name, scope=Object) parser = KPeg::FormatParser.new str unless parser.parse parser.raise_error end cg = KPeg::CodeGenerator.new name, parser.grammar code = cg.output scope.module_eval code true end
grammar() { |g| ... }
click to toggle source
# File lib/kpeg.rb, line 5 def self.grammar g = Grammar.new yield g g end
load(file, name)
click to toggle source
# File lib/kpeg.rb, line 25 def self.load(file, name) grammar = load_grammar(file) cg = KPeg::CodeGenerator.new name, grammar code = cg.output warn "[Loading parser '#{name}' => #{code.size} bytes]" Object.module_eval code true end
load_grammar(file, log=false)
click to toggle source
# File lib/kpeg.rb, line 16 def self.load_grammar(file, log=false) parser = KPeg::FormatParser.new File.read(file) if !parser.parse parser.raise_error end return parser.grammar end
match(str, gram)
click to toggle source
# File lib/kpeg.rb, line 11 def self.match(str, gram) scan = Parser.new(str, gram) scan.parse end