Здравствуйте, VjcheslavV, Вы писали:
Pzz>>2. Как должны обычные выражения реагировать на начало/конец строки среди всего прочего потока входных байтов?
VV>дак вот и никак должны не реагировать если ^ нету, а \n отдельным токеном точно будет...
VV>... и к чему эти вопросы?
Думаю, можно это сделать двумя отдельными состояниями, в одном из которых будут переходы для того, что должно начинаться в начале строки. И переход в одно состояние должен быть по переводу строки, в другое — по любому другому пробельному символу.
Набросал пример:
Пусть есть алфавит с символами a, b, c, \n и пробелом и правила:
A : aab
B : ^abc
Это можно разобрать таким автоматом:
a b c ' ' \n
---+---------------------------
0 | 3 1 0
1 | 2 1 0
2 | 4
3 | 4 5
4 | 6
5 | 7
6* | 1 0
7* | 1 0