Я пытаюсь написать парсер для подмножества C.
Поведение вершины дерева трудно анализировать с помощью этой простой (еще более упрощенной) грамматики.
grammar Shyc
rule functionDef
type space identifier '(' ')' bloc
end
rule type
'int'
end
rule bloc
'{' '}'
end
rule identifier
[a-zA-Z] [a-zA-Z_]*
end
rule space
[\s]+
end
end
Мой тестовый пример: "int main(){}"
И сообщение об ошибке от верхушки дерева:
error at line 1, column 9
failure reason : Expected [a-zA-Z_] at line 1, column 9 (byte 9) after
compiler.rb:25:in `parse': Parse error (RuntimeError)
from compiler.rb:73:in `<main>'enter
Таким образом, проблема связана с правилом идентификатора...
Версия верхушки дерева: 1.5.3 и Ruby 2.1.1.
Любая идея ?