Чтобы сделать вопрос немного более конкретным. Мне было интересно, смогу ли я сгенерировать разборчивый код Rascal из встроенной грамматической структуры данных, которая, в свою очередь, конечно же, является разобранным негодяйским кодом. Я хотел бы этого, так как он легче читается, а также имеет хорошую функцию, поскольку делает эту часть анализа понятной.
так из экземпляра этого:
data Grammar = \grammar(set[Symbol] starts, map[Symbol sort, Production def] rules);
Примерно так:
start syntax E
= E "+" T
| T
;
syntax T
= T "*" F
| F
;
syntax F
= "(" E ")"
| "a"
;