Я нашел его немного сложные, когда я начал с моим лексерем, но все сводится к нескольким важным идеям:
- Put лексер в папке лексического анализатора
- Телль крупица о лексером вы добавили
- Добавьте константы Scintilla.iface
- Расскажите крупицы о своем O шп Константа (если вы используете какой-либо)
- кода/Compile + Повторять до удовлетворенного
фактического примера:
После создания шаблона LeXeR вы называете это LexNEW.cxx
- Поместите LexNew.cxx в
/lexers
folder
- Введите
/src
и запустите LexGen.py
, это говорит о том, что есть новый лексер, добавив его в Scint illa.h
Теперь вы добавляете свои константы в файл .iface. Наиболее важными из них являются: val SCLEX_NEW=108
, где 108
- номер неиспользованного идентификатора и lex new=SCLEX_NEW SCE_NEW_
, где new
- действительный уникальный короткий идентификатор для вашего лексера.
Поместите их в те же разделы, что и другие (во избежание путаницы в дальнейшем), и если у вас есть сомнения, используйте одно из других определений в качестве шаблона!
Теперь под вашим lex new=
линии вы можете определить свои собственные постоянные значения, как:
val SCE_NEW_DEFAULT=0
val SCE_NEW_COMMENTLINE=1
val SCE_NEW_COMMENTBLOCK=2
val SCE_NEW_ERROR=31
После этого шага вы почти готовы.
- Введите в
/include
и запустить Hface.py
, который говорит крупицы о ваших новых констант.
Если ваш лексический код действителен, тогда вы готовы к компиляции.
Не забудьте повторить этот последний шаг каждый раз, когда вы создаете новую константу. Сценарий HFace.py
добавляет эти значения в SciLexer.h, которые вы можете сделать вручную, если вы не хотите делать два шага каждый раз.
И вот это мой друг после компиляции, убедитесь, что ваша программа устанавливает ваш лексер с чем-то вроде: sci.SetLexer(108)
и помещает несколько цветов в каждое состояние, например sci.StyleSetFore(01, 0x008800) // SCE_NEW_COMMENTLINE
и так далее.
Последнее, что вы хотите использовать SciLexer.dll
которое содержит все лексики не scintilla.dll
Удачи вам!