Регулярное выражение для строк в Bibtex

Я пытаюсь написать парсер Bibtex с помощью flex/bison. Вот правила для строк в bibtex:

  • Строки могут быть заключены в двойные кавычки "..." или фигурные скобки {...}
  • В строке фигурные скобки могут быть вложены
  • Внутри строки фигурные скобки должны быть сбалансированы (недопустимая строка: {это {тест})
  • Внутри "интернета" {} могут быть любые символы. Итак, эта строка действительна: {Это строка {тест"}, и она действительна}

Есть идеи, как это сделать?


person Utkarsh Sinha    schedule 18.04.2011    source источник
comment
Этот пост был посвящен различению записей и строк — обе могут начинаться с {}. Это о регулярном выражении после распознавания того, что это строка.   -  person Utkarsh Sinha    schedule 19.04.2011
comment
возможный дубликат анализа bibtex с помощью flex+bison: пересмотрено   -  person Brian Tompsett - 汤莱恩    schedule 28.02.2015


Ответы (1)


Теперь вы входите в область текстового синтаксического анализатора. Удивительно, но никто не сделал библиотеку bibtex для Actionscript, которую я смог найти, так что это интересная проблема. Если вы сделаете его, сделайте одолжение сообществу и откройте его исходный код :)

Это будет непросто сделать, так как вам, по сути, нужно переходить от символа к символу и проверять нужные вам символы и выполнять логику вокруг этого. Тем не менее, я рекомендую вам взглянуть на реализация as3corelib. парсера JSON, что несколько похоже на то, что вы пытаетесь выполнить. Вы, по крайней мере, получите представление о том, как это сделать с помощью токенизатора, и это очень хорошее начало вашего проекта.

Удачи.

person J_A_X    schedule 18.04.2011
comment
Парсер JSON был именно моей мыслью. Настоятельно рекомендуется. - person andrewpthorp; 18.04.2011
comment
Я думаю, что вопрос был помечен (другими) неправильно. ОП пометил его flex, который должен был быть gnu-flex. flash и actionscript добавил кто-то другой. - person Bart Kiers; 19.04.2011