Повторение совпадений с регулярным выражением в ocamllex

Я пытаюсь написать лексер с ocamllex для какого-то специального родного языка (который немного изменен для моих целей). Некоторые слова должны соответствовать их первому символу, который удваивается. Но я не могу выразить это повторение первого символа. Ни я не могу использовать синтаксис регулярных выражений

(['А'-'г'])\1['а'-'Z']+

с этим "\1". Ocamllex говорит "незаконная последовательность побега \ 1". и я думаю, что это действительно хорошо с синтаксисом escape-выражений, но уверен, что это не то, что я хотел. Также я не могу использовать синтаксис повторения с фигурными скобками в любом случае (но это все равно не решит проблему):

[ 'А'-'Z']{2}['а'-'Z']+

Я думаю, что есть конфликт с кодом oCaml в фигурных скобках после регулярного выражения.

У кого-нибудь есть идея для этого?

большое спасибо вам.

1 ответ

Регулярное выражение Ocamllex не имеет синтаксиса повторения. Доступный синтаксис регулярных выражений аналогичен приведенному в справочном руководстве:

http://caml.inria.fr/pub/docs/manual-ocaml-4.01/lexyacc.html

И я думаю, что вы можете вручную перечислить все возможные повторения, как показано ниже:

("aa"|"bb"|"cc"|"dd"|"ee"|"ff"| ..............)['a'-'z']+
Другие вопросы по тегам