Я пытаюсь запускать некоторый фрагмент кода каждый раз, когда синтаксический анализатор распознает токен.
скажем
grammar FooBar
rule start
(foo "\n")+
end
rule foo
stuff_i_want:([a-z]+) {
puts "Hi there I found: #{stuff_i_want.text_value}"
}
end
end
Идея состоит в том, чтобы это действие puts
выполнялось каждый раз, когда будет найден токен foo
. Закодированный как есть, он не работает, так как запускается только один раз (во время загрузки класса) и, конечно, stuff_i_want.text_value
тогда не существует.
Есть идеи? Это вообще возможно? Отсутствие документации по библиотеке не позволяет легко сказать.