簡単な例。parse への渡し方、いろいろ
#!/usr/bin/env ruby require 'tdp' parser = TDParser.define {|g| g.a = "a" g.b = "b" g.c = "c" g.input = g.a - g.b - g.c >> proc {|x| p x } def parse(str) tokens = str.split(/\s+/) input.parse(tokens) end } parser.parse("a b c")
で、
["a", "b", "c"]
#!/usr/bin/env ruby require 'tdp' parser = TDParser.define {|g| g.a = "a" g.b = "b" g.c = "c" g.input = g.a - g.b - g.c >> proc {|x| p x } def parse() input.parse(TDParser::TokenGenerator.new {|x| x.yield("a"); x.yield("b"); x.yield("c")}) end } parser.parse()
で、
["a", "b", "c"]
#!/usr/bin/env ruby require 'tdp' parser = TDParser.define {|g| g.a = "a" g.b = "b" g.c = "c" g.input = g.a - g.b - g.c >> proc {|x| p x } def parse() input.parse {|x| x.yield("a"); x.yield("b"); x.yield("c")} end } parser.parse()
で、
["a", "b", "c"]