Символ конца строки для регулярных выражений в ml-lex - PullRequest
3 голосов
/ 10 февраля 2012

Что такое символ в конце строки для регулярных выражений в ml-lex?
«$» используется для перехвата символа конца строки в регулярных выражениях в большинстве других языков, но если я использую его в случае ml-lex, это выдаст мне ошибку -

mllex a.lex
ml-lex: error, line 45: lookahead is unimplemented
unhandled exception: Error 

В настоящее время я добавляю все свои регулярные выражения с дополнительным символом \n для явного захвата символа конца строки. Однако удаление пойманного лишнего символа \n делает код ужасным.

Я где-то читал, что $ не реализован в ml-lex.
Итак, может ли быть какое-либо другое решение для моей проблемы? Пожалуйста, помогите.

1 Ответ

1 голос
/ 14 марта 2013

К сожалению, похоже, что символ $ не реализован в ML-Lex в соответствии с этим руководством :

"Знак доллара C Lex $ не являетсяреализовано, так как это сокращение для просмотра с участием символа новой строки (то есть это сокращение для /\n)."

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

"Знак доллара C Lex $ не реализован, поскольку это аббревиатура для предпросмотра с использованием символа новой строки, то есть аббревиатура для /\n."

Итак ... это, по крайней мере, объяснит (и подтвердит ваше прочтение $, не реализованного в ML-Lex).К сожалению, это, вероятно, означает, что на данный момент, по крайней мере, вам, возможно, придется просто продолжать использовать существующий метод для проверки этих концов строк ... даже если он не выглядит супер чистым.

...