Problem z parserem plików tekstowych

0

Napisałem prosty parser składniowy do plików tekstowych w kodowaniu UTF-8 (text_syntax.cx).
Jest on zastosowany do parsowania pliku konfiguracyjnego serwera HTTP OUX/C+ web-srv.
Jednak parser ma pewną niedoskonałość, zaznaczam, że jest on dopiero w początkowej wersji.

Składnia pliku konfiguracyjnego jest tutaj: conf.syntax.
I w tej składni są wyrażenia takie jak:

path entity
    @ text
path
    "/", path entity
path quoted
    "\"", path, "\""

W powyższym przykładzie nigdy nie zajdzie path quoted, ponieważ parser przejdzie do path i odczyta tekst razem ze znakiem cudzysłowu.
Jaką konstrukcję dodać, może zamiast @ text, by to rozwiązać? Jak to jest rozwiązane w innych parserach? Szukałem na przykładzie bison, ale nie znalazłem.
Zaznaczam, że to nie są teoretyczne rozważania, ponieważ parser już funkcjonuje praktycznie w podanym projekcie (oczywiście bez działającego path quoted).

0

Oprócz yacc/lex jest jeszcze ANTLR. Jednak oba dokonują najpierw podziału na leksemy, a w moim parserze tego nie robię i stąd te problemy.
W celu rozwiązania tego problemu dodałem wyrażenia regularne i obsługę poprawności danych jako semantykę, a nie w czasie parsowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1