Page 1 of 3
Вопросы по созданию лексеров
Posted: 05.06.2013 16:25
by lehanidze
добрый день,
хочу создать свой лексер, и... уже неделю совершенно не получается это сделать--не хватает обучающей информации. могли бы вы предоставить руководство по "создание своего лексера от а до я"?
Posted: 05.06.2013 16:46
by Alexey
Нет руководства. но есть Readme\LexerConfig.chm с кое-какой инфой
Posted: 05.06.2013 17:35
by lehanidze
все верно, его я обнаружил--реально не помогло...может быть возможно сделать иначе: я буду создавать лексер, а непонятные или узкие моменты буду спрашивать здесь?
по-порядку, на данный момент меня вводит в заблуждение Syntax Lexer -> Common -> Token type names, могли бы вы развернуто объяснить: что это, почему, зачем?
Posted: 05.06.2013 17:41
by Alexey
спрашивайте. отвечу. Tokentype names это строки которые покажутсся в combobox, в других вкладках,когда выбран такойто токен.
Posted: 05.06.2013 17:45
by Alexey
на табе Parser есть поле Token type- вот оно показывает строку из списка token type names. а реально нужен только token type index (индекс токена в списке token type names)
Posted: 05.06.2013 18:21
by lehanidze
да-да, я заметил, что на протяжении всего конфига этот токен используется. поэтому и необходимо разобраться... итак, все-таки: что это такое?
Posted: 05.06.2013 18:31
by Alexey
есть токен String. ему дается свой парсер с рег-выражением ".*?" . это понятно? далее в табе где настраиваются блоки, можно указать правило поиска
[x] String
http://shot.qip.ru/00cT7J-4k9ZG4ud3/
тогда будет ловиться только такой токен.
Posted: 06.06.2013 05:19
by lehanidze
Другими словами Token type names это список всех элементов, которые я хочу парсить в тексте?
Т.е. для примера: у меня есть конфигурационный файл промышленного робота, там меня интересуют: Поза, Строка, Коммент, Число, Оператор, Кейворд. Следовательно, чтобы правильно искать все это в тексте -- эти элементы должны быть в Token type names?
ПС: к блокам мы доберемся по-порядку:)
Posted: 06.06.2013 11:08
by Alexey
все или почти все. Может "Имя" и "Keyword" не надо делать разными токенами. у них же один regex.
"строка" и "строка другая" -разные regex- стоит делать ОДНИМ токеном
Posted: 06.06.2013 14:33
by Alexey
Если кто напишет такой док, готов дать ключ к какой либо программе