簡単な例。empty()。1個以上の繰り返し
#!/usr/bin/env ruby require 'tdp' require 'tdp/utils' parser = TDParser.define {|g| g.a = "a" g.input = g.aa >> proc {|x| x } g.aa = (g.a - g.aa) | empty() def parse(str) tokens = str.split(/\s+/) input.parse(tokens) end } p parser.parse("a") p parser.parse("a a") p parser.parse("a a a")
で、
["a", nil] ["a", "a", nil] ["a", "a", "a", nil]
- 「empty()」を「none()」にしても同じ挙動になるな。この場合だけ?
- 別にこうやって書く必要はないのだけど