Контекстно-свободная грамматика, описывающая регулярные выражения?

Если вы используете gcc, флаг волшебного компилятора будет -g. Скомпилируйте с символами отладки, запустите программу под GDB и сгенерируйте трассировки стека. Вы также можете использовать ptrace, но, вероятно, намного проще просто использовать gdb.

7
задан Michael Myers 10 June 2009 в 20:16
поделиться

2 ответа

Левая рекурсия:

Expression = Expression '|' Sequence
           | Sequence
           ;

Sequence = Sequence Repetition
         | <empty>
         ;

Правая рекурсия:

Expression = Sequence '|' Expression
           | Sequence
           ;

Sequence = Repetition Sequence
         | <empty>
         ;

Неоднозначная форма:

Expression = Expression '|' Expression
           | Sequence
           ;

Sequence = Sequence Sequence
         | Repetition
         | <empty>
         ;
7
ответ дан 7 December 2019 в 03:20
поделиться

Статья в Википедии о Left Recursion дает довольно хорошую информацию о том, как это осуществить.

0
ответ дан 7 December 2019 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: