Я имею в виду ???
в названии, потому что я не совсем уверен. Позвольте мне объяснить ситуацию.
Я не студент информатики и никогда не учился на курсах по компиляции. До сих пор я думал, что авторы компиляторов или студенты, которые прошли курс по компиляторам, являются выдающимися, потому что им приходилось писать компонент Parser компилятора на любом языке, на котором они пишут компилятор. Это не легкая работа, верно?
Я имею дело с проблемой поиска информации. Мой желаемый язык программирования - Python.
Parser Nature:
http://ir.iit.edu/~dagr/frDocs/fr940104.0.txt - образец корпуса. Этот файл содержит около 50 документов с некоторой разметкой в стиле XML. (Вы можете увидеть это в приведенной выше ссылке). Мне нужно записать другие некоторые другие значения, такие как <DOCNO> FR940104-2-00001 </DOCNO>
& <PARENT> FR940104-2-00001 </PARENT>
, и мне нужно только проиндексировать часть документа <TEXT> </TEXT>
, содержащую несколько различных тегов, которые мне нужно сократить, и множество комментариев <!-- -->
, которые должны игнорироваться и некоторые &hyph; &space; &
символьные объекты. Я не знаю, почему в corpus есть такие вещи, когда он знает, что он не предназначен ни для просмотра браузером, ни для правильного XML-документа.
Я подумал об использовании любого синтаксического анализатора Python XML и извлечения нужного текста. Но после небольшого поиска я нашел Исходный код анализатора JavaCC (Parser.jj) для того же корпуса, который я использую здесь . Быстрый просмотр JavaCC , за которым следует Компилятор-компилятор , показал, что, в конце концов, авторы компилятора не так хороши, как я думал. Они используют компилятор-компилятор для генерации кода парсера на желаемом языке. Вики говорят, что ввод в компилятор-компилятор - это ввод грамматики (обычно в BNF). Вот где я потерялся.
- Является ли Parser.jj грамматикой (вход в компилятор-компилятор, называемый JavaCC)? Это определенно не BNF. Как называется эта грамматика? Почему эта грамматика имеет язык Java? Разве нет универсального грамматического языка?
- Я хочу парсер Python для разбора корпуса. Есть ли способ, как я могу перевести Parser.jj, чтобы получить эквивалент Python? Если да, что это? Если нет, каковы мои другие варианты?
- Случайно кто-нибудь знает, что это за корпус? Где его первоисточник? Я хотел бы увидеть описание для этого. Распространяется в интернете с именем
frDocs.tar.gz