Ru-Board.club
← Вернуться в раздел «Тестирование»

» SciTE Ru-Board Edition

Автор: DJ makrus
Дата сообщения: 19.11.2008 13:44
vladvro
Вот еще некорректно обрабатываемый пример:
Код: : end-word
[ \ Тут опять вся подсветка падает
RET,
;
Автор: vladvro
Дата сообщения: 19.11.2008 15:40
DJ makrus

Цитата:
Вот еще некорректно обрабатываемый пример:

Сорри, но мне как обычно трудно войти в контекст, т.к. я Форт так и не учил и не пользую
А как он должен себя вести в этой ситуации? Для чего еще используется символ квадратной скобки?
Отловить лексер может все, чему его научат
Автор: DJ makrus
Дата сообщения: 19.11.2008 16:33
vladvro
Цитата:
Сорри, но мне как обычно трудно войти в контекст...
Извинения излишни! Спасибо что ты пытаешься это сделать и у тебя получается
Данный случай является не простым поскольку обычно пара тегов "[" и "]" почти всегда в пределах определения одного тэга (определение тэга начинается с ":" и заканчивается ";" в данном случае, но существуют и другие начальный и конечный тег для определения новых тэгов) идут парой и любые другие теги между ними должны быть разукрашены одинаково (это последнее решение на котором мы остановились - то что одинаково разукрашиваются).
Так вот, в данном случае внутри определения используется только один начальный тег "[" и поскольку завершающего тега нет, то он должен подсвечиваться как обычное слово не "экранирующее" даже следующее за ним слово, не то что как щас - весь файл до конца или до первого завершающего тега "]", пусть даже и не парного ему
Аналогично может быть определение только с завершающим тегом, но это и сейчас вроде не является проблемой.
Т.е. надо что бы при появлении начального тега шла проверка есть ли до конца определения (часть слов из группы keywords8 - folding end tokens ) завершающий тег "]" и :
1. если есть (и он парный), то все между ними раскрашиваем одинаково (над этим надо еще подумать );
2. если нет, этот тег расцвечивается как "обычное" слово и не влияет на расцветку последующих тегов.
Вот.
Цитата:
Отловить лексер может все, чему его научат
Тогда встает другой вопрос, сможем ли мы его научить?
Автор: vladvro
Дата сообщения: 19.11.2008 17:51
DJ makrus

Цитата:
Если в лексере на тег "'" нет никакого ограничения, то это странно, т.к. нет необходимости вводить его в сам лексер, надо просто что бы лексер обрабатывал его так же как и остальные теги из группы "prewords1", т.е. фактически его надо добавить только в файл настроек forth.properties , а не в лексер, но сейчас это не работает

Ок разобрался я с этим тегом, в лексере все в порядке, просто этот тег сейчас стоит в группе Keywords (keywords2.$(file.patterns.forth)) и в силу приоритета экранирует его включения в последующие группы, надо его сперва удалить, а потом уже добавлять в другую. На сколько я помню, такая же история было с тегом :

Добавлено:

Цитата:
Так вот, в данном случае внутри определения используется только один начальный тег "[" и поскольку завершающего тега нет, то он должен подсвечиваться как обычное слово не "экранирующее" даже следующее за ним слово

У меня вызвает затруднение формализация понятия "нет завершающего тега". Т.е. это если мы после тега [ встретили тег ; , иначе говоря тег ; нельзя экранировать тегами [ ] ?
Автор: mozers
Дата сообщения: 20.11.2008 19:50
Исправленный вариант nncrontab.properties.
Удалена куча бесполезных, а порой и вредных параметров, попавших туда явно по недомыслию.
Если от знатоков nnCron/Fort замечаний не будет, то этот файл в ближайшее время заменит соответсвующий в SVN.
Автор: mozers
Дата сообщения: 20.11.2008 22:05
UR4LTZ
По поводу библиотеки iconv.c:
Конвертит она нормально.
Но зачем сделаны эти функции iconv.new и iconv.open ? (Не надо ссылаться на оригинал. С момента выкладывания на SVN этот код - Ваш и только Вы за него отвечаете!).
Почему наименования кодировок (исходная и получаемая) перепутаны местами?
В результате вместо простой и понятной записи типа:
Код: text_uft = iconv.convert(text_win, "windows-1251", "utf8")
Автор: DJ makrus
Дата сообщения: 21.11.2008 11:30
vladvro
Цитата:
Ок разобрался я с этим тегом, в лексере все в порядке, просто этот тег сейчас стоит в группе Keywords...
Точно! Сам недавно с подобным же подсказывал, а тут не догадался проверить в других группах ...
Цитата:
У меня вызвает затруднение формализация понятия "нет завершающего тега".
Здесь важно добавить что речь идет об наличии/отсутствии завершающего тега в пределах одной конструкции определения нового тега, т.е. от ":" и до ";" (в общем случае...), дальше по тексту после ";" может быть хоть десяток тегов "]", но они в плане расцветки к начальному тегу "[" не будут иметь никакого отношения и он - "[" должен рассматриваться, в этом случае, как самостоятельный тег.

Цитата:
иначе говоря тег ; нельзя экранировать тегами [ ] ?
Да. Тег ";" и другие теги (завершающие конструкцию определения нового тега) из группы keywords8 (folding end tokens) всегда должны иметь свою подсветку. Если завершающий тег "]" находится после слова из группы keywords8 (folding end tokens), все теги после начального "]" и до этого "]" должны иметь свою расцветку в соотвествии с настройками...
Но тут есть подводный камень, т.к. в группу keywords8 (folding end tokens) вносятся все завершающие теги по фолдингу, независимо от того - это тэг является завершающим в конструкции определения нового тэга или завершающим цикла, например.
Попробую на примере:
Код: <new_word>
[
<cicle1>
DUP SWAP 2DROP
</cicle1>
\ это слово из группы keywords8 (folding end tokens)
]
[
<cicle2>
DUP SWAP 2DROP
</cicle2>
</new_word> \ и это слово из группы keywords8 (folding end tokens)
] DROP
Автор: UR4LTZ
Дата сообщения: 21.11.2008 17:18
mozers

Цитата:
По поводу библиотеки iconv.c:
Конвертит она нормально.
Но зачем сделаны эти функции iconv.new и iconv.open ?

Если честно то я тоже не понимаю зачем была сделана iconv.new.
Удалена так как она полностью дублирует iconv.open.


Цитата:
Почему наименования кодировок (исходная и получаемая) перепутаны местами?

Изменил как ты и хотел. Теперь вызов происходит вот так.

Код: local cd = iconv.open(code_in, code_out)
Автор: mozers
Дата сообщения: 22.11.2008 01:24
DJ makrus
1. Более чем скромно, конечно, но для начала - пойдет.
3. 4. 5. Я не понимаю на чем основаны эти выводы, т.к. в nncron.api вообще отсутствуют калтипы. Думаю что если кому то не в лом будет их добавить, то заданные мной параметры calltip.nncrontab.parameters.start и calltip.nncrontab.parameters.separators будут очень кстати. Зачем тут ? вообще неясно
2. 6. Эти параметры очень подробно описаны в документации (как, впрочем, и другие). Перечитай - все вопросы отпадут (по калтипам - тоже).
7. Согласен.

UR4LTZ
Цитата:
Если честно то я тоже не понимаю зачем была сделана iconv.new.
Удалена так как она полностью дублирует iconv.open.
Жаль что не понимаешь Как бы потом восстанавливать не пришлось...

Цитата:
Изменил как ты и хотел.
Просто я мельком взглянул в документацию, а там написано:
Цитата:
cd = iconv.new(to, from)
cd = iconv.open(to, from)
Что, конечно, логичнее чем писать задом наперед.

Ну а другой вопрос вновь остался без ответа: Зачем конветрация сделана в 2 этапа? сначала создаем конвертер
Код: cd = iconv.open(code_in, code_out)
Автор: DJ makrus
Дата сообщения: 25.11.2008 07:57
mozers
Цитата:
...т.к. в nncron.api вообще отсутствуют калтипы...
нда, точно, в сборке этот файл "пустой" , у меня он "полнее", но тоже не по всем словам есть подсказки (и те что из Help'а не все с описанием...)
Цитата:
...то заданные мной параметры calltip.nncrontab.parameters.start и calltip.nncrontab.parameters.separators будут очень кстати. Зачем тут ? вообще неясно
Немного оффтопа: nnCron это расширенный с помощью создания новых слов (тегов) Форт в сторону проблемной области (таким образом идет создание любой программы на Форте) и в кронтабах можно использовать все слова Форта, все слова nnCron'а и все слова созданные пользователем (каждая созданная пользователем задача - новое готовое к употреблению слово в словаре nnCron'а/Форта). Слова заканчивающиеся на ":" созданы автором nnCron'а исключительно для удобства людей привыкших к инфиксной записи/передачи параметров (таких слов в словаре nnCron'а - меньшенство, после установки он знает всего слов >3000, все инфиксные перечислены в справке), а для работе в Форте (написании задач nnCron'а) гораздо удобнее использовать постфиксную запись. И уж если человек, начал править кронтабы в редакторе, то он очень быстро "прийдет" к постфиксной записи, т.е. начнет работать в Форте. Но главное то, что новым словам в Форте можно давать любые имена (и заканчивать их ":" - вовсе не обязательно) и есть только два ограничения: на длину (32 символа) и не должно быть пробельных символов и перевода строки в имени нового слова..., поэтому задавать какой-либо конкретный символ, IMHO, бессмысленно. Как и в параметре autocomplete.nncrontab.start.characters. По поводу "?" думаю обсудить в параллельном топике.
Сейчас вот еще подумал что обе *.parameters.* можно убрать, в Форте нет как таковых параметров, одни слова и автодополнения должно быть вполне достаточно
Автор: DJ makrus
Дата сообщения: 25.11.2008 14:42
vladvro
Вот еще пример кода некорректно обрабатываемого текущей версией лексера (спасибо VoidVolker'у):
Код: : IMMEDIATE: \ Начать определение нового слова немедленного исполнения с именем, взятым из входного потока.
1 : [C]HERE 1- C!
;
Автор: mozers
Дата сообщения: 25.11.2008 23:36
DJ makrus
С учетом всех замечаний nncrontab.properties. Ну что - выкладываем его на SVN ?
Просто достаточно трудно обсуждать настройки когда они у всех совершенно разные...
Автор: DJ makrus
Дата сообщения: 26.11.2008 09:00
mozers
Цитата:
С учетом всех замечаний nncrontab.properties. Ну что - выкладываем его на SVN ?
Да, конечно выкладывайте! Единственно было еще одно замечание по наименованию файла аббревиатур - nncrontab.abbrev, но я не настаиваю
Автор: mozers
Дата сообщения: 26.11.2008 22:02
DJ makrus
Выложил на SVN:
nncrontab.properties
nncron.api
forth.api
nncron.abbrev
Прошу всех заинтересованных лиц принять участие в проверке.
Лично я что то не въехал в смысл помещения в forth.api таких строк как
Цитата:
<>
>R
0<
0=
0<>
Подказки либо отсутстуют совсем либо громадны по размеру - неудобно же пользоваться то...
Учтите, что с этого момента вы делате это не только для себя. Ваше творение увидят тысячи людей. За халтуру будет стыдно.
Автор: DJ makrus
Дата сообщения: 27.11.2008 10:17
mozers
nncron.abbrev - ты действительно считаешь что строка "# подключите в файле SciTEStartup.lua загрузку скрипта abbrevlist.lua" в этом файле лишняя?
Цитата:
Лично я что то не въехал в смысл помещения в forth.api таких строк как...
это было добавлено когда я еще не представлял для чего именно используется этот файл и предполагал что смогу таким образом обеспечить подсветку этих слов , я дополню слова короче 4-х символов комментариями - тогда их можно будет оставить?
Цитата:
Подказки либо отсутстуют совсем либо громадны по размеру - неудобно же пользоваться то...
- слова короче 4-х символов я дополню комментарием (стековой нотацией), 4 и более можно оставить (некоторые пока) только для автодополнения?
- просмотр больших комментариев несколько облегчает параметр calltip.nncrontab.word.wrap=120 , но некоторые действительно можно немного укоротить - поубираю действительно лишнее.
Цитата:
Учтите, что с этого момента вы делате это не только для себя...
Я и прежде делал и учитывал это
Автор: vladvro
Дата сообщения: 27.11.2008 15:51
DJ makrus

Цитата:
Вот еще пример кода некорректно обрабатываемого текущей версией лексера

Гуд, добавил в коллекцию
(Вообще неплохо бы создать этакий файл с тестом всех возможностей)

Цитата:
Пока вижу выход в отдельной паре групп начало/конец определения нового тега (по ним при этом так же должен быть фолдинг)

Ок, нормальное решение, группа "начала" у нас уже есть (defwords), добавляем группу окончания (enddefwords). В настройках делаем ее keywords7, сдвигая остальные группы (folding start/end tokens, Add from other libs) на keywords8, keywords9 и т.д.

Добавлено:
Уже понял что переиспользовать defwords не получится, не все определения имеют завершающий тег.
Значит все верно надо добавить две группы.

Добавлено:
А как быть с :NONAME ??
на сколько я понял, это тоже начало определения, вот только к группе defwords этот тег не относится... а еще такие есть? или этот тег уникален?
Автор: mozers
Дата сообщения: 27.11.2008 20:07
DJ makrus
Цитата:
ты действительно считаешь что строка "# подключите в файле SciTEStartup.lua загрузку скрипта abbrevlist.lua" в этом файле лишняя?
Прочитав эту фразу, становится ясно - этот файл без abbrevlist.lua работать не будет

Цитата:
дополню комментарием (стековой нотацией),...
поубираю действительно лишнее
Вот и будет чудненько

Выкладываю скрипт, который обещал: ShowCalltip.lua : [more]
Код: --[[--------------------------------------------------
ShowCalltip.lua
Authors: mozers™
version 1.0
------------------------------------------------------
Игнорирует все условности, связанные с выводом всплывающей подсказки.
Выводит ее по Ctrl+Shift+Space (если, конечно, каллтип задан в api-файле).
------------------------------------------------------
Для подключения добавьте в свой файл .properties следующие строки:
command.name.120.*=Show Calltip
command.120.*=dofile $(SciteDefaultHome)\tools\ShowCalltip.lua
command.mode.120.*=subsystem:lua,savebefore:no
command.shortcut.120.*=Ctrl+Shift+Space
--]]--------------------------------------------------

for api_filename in string.gmatch(props["APIPath"], "[^;]+") do
if
api_filename ~= '' then
local
api_file = io.open(api_filename)
if api_file then
local
word = props['CurrentWord']
for line in api_file:lines() do
local
_start, _end, calltip = line:find('^('..word..'[^%w%.%_%:].+)')
if _start == 1 then
editor:CallTipCancel()
editor:CallTipShow(editor.CurrentPos, calltip:gsub('\\n','\n'))
end
end
api_file:close()
end
end
end
Автор: DJ makrus
Дата сообщения: 28.11.2008 13:18
mozers
Цитата:
Прочитав эту фразу, становится ясно - этот файл без abbrevlist.lua работать не будет.
Так там (nncron.abbrev) аббревиатуры на одни буквенные сочетания вешаются и с отключенным abbrevlist.lua они не работают
Цитата:
Выкладываю скрипт, который обещал: ShowCalltip.lua...
Да, то что нужно! Теперь по хоткею появляется подсказка, без набора/стирания дополнительных символов
А скрипт сильно усложниться если выводить только комментарий (после первого же пробела следующего за комментрируемым тэгом) без самого тэга?

vladvro
Цитата:
А как быть с :NONAME ??
на сколько я понял, это тоже начало определения, вот только к группе defwords этот тег не относится... а еще такие есть? или этот тег уникален?
На дня мне пришла мысль (еще один пример VoidVolker'а меня убедил окончательно), что:
- надо перед каждой группой давать описание принципов работы с подсветкой слов в нее помещенных, что бы любой мог легче оринтироваться куда должно быть добавлено очередное его слово для правильной работы подсветки/фолдинга, уже помещенные туда слова будут ему подсказкой (составить соотвествующие описания - это наша работа, хочу узнать - будут ли они туда помещены?);
- любой тег (даже уже существующий и зафиксированный стандартом, староватым, кстати) может быть переопределен и соотвественно его надо будет помещать в другую группу, в соотвествии с его новым определением, поэтому, фактически, надо обсуждать не конкретные теги, а именно конкертные алгоритмы влияния одних тегов на расцветку следующих за ними;
- из лексера надо убрать все конкретные теги (ведь и "[" и "]" "зашиты" в лексер?) создавая для них дополнительные группы если они не подходят ни под одни существующие группы.
Автор: VoidVolker
Дата сообщения: 28.11.2008 16:32
vladvro

Цитата:
А как быть с :NONAME ??
на сколько я понял, это тоже начало определения, вот только к группе defwords этот тег не относится... а еще такие есть? или этот тег уникален?

Это слово создает функцию без имени, так что думаю его надо подсвечивать так же как и новое определение.

DJ makrus

Цитата:
- надо перед каждой группой давать описание принципов работы с подсветкой слов в нее помещенных, что бы любой мог легче оринтироваться куда должно быть добавлено очередное его слово для правильной работы подсветки/фолдинга, уже помещенные туда слова будут ему подсказкой (составить соотвествующие описания - это наша работа, хочу узнать - будут ли они туда помещены?);
- любой тег (даже уже существующий и зафиксированный стандартом, староватым, кстати) может быть переопределен и соотвественно его надо будет помещать в другую группу, в соотвествии с его новым определением, поэтому, фактически, надо обсуждать не конкретные теги, а именно конкертные алгоритмы влияния одних тегов на расцветку следующих за ними;
- из лексера надо убрать все конкретные теги (ведь и "[" и "]" "зашиты" в лексер?) создавая для них дополнительные группы если они не подходят ни под одни существующие группы.

Взгляд со стороны создания проблемно-ориентированных языков: вот это как раз довольно яркий пример, когда надо создать такой проблемно-ориентированный язык, а делают как обычно.

Вообще говоря, мне кажется неправильным применение слова "тег", куда более логичным думаю будет слово "лексема" - т.к. трансляторы рассматривают исходный текст программ именно как набор лексем.
Автор: mozers
Дата сообщения: 28.11.2008 16:55
DJ makrus
Цитата:
аббревиатуры на одни буквенные сочетания вешаются и с отключенным abbrevlist.lua они не работают
Я полагал что букв в алфавите и твоей фантазии хватит на то чтобы сделать разные аббревиатуры и не привязывать без особой нужды всех пользователей к скрипту

Цитата:
выводить только комментарий (после первого же пробела следующего за комментрируемым тэгом) без самого тэга

Код: local _start, _end, calltip = line:find('^'..word..' ([^%w%.%_%:].+)')
Автор: vladvro
Дата сообщения: 28.11.2008 17:46
DJ makrus, VoidVolker
Обновил лексер, теперь для всего, что находится внутри определения, создана своя группа подсветки. Это вызванно особенностями работы лексеров в целом.
Тег начала определения теперь может быть двух видов - один как для :NONAME, другой как для :, в первом случае, он задается только в группе начала определения, во втором - в двух группах, в этой и в группе defwords.
Требуется тщательно протестировать работу. Надеюсь скачать обновление и собрать из исходников проблем не вызывает?

Добавлено:
DJ makrus

Цитата:
составить соотвествующие описания - это наша работа, хочу узнать - будут ли они туда помещены?

туда - это в файл настроек? конечно. Идея только приветсвуется.

Цитата:
из лексера надо убрать все конкретные теги (ведь и "[" и "]" "зашиты" в лексер?)

верно "зашиты", и еще "зашиты" \ ( ) { }
если целесообразно убрать, то уберем.

VoidVolker

Цитата:
Вообще говоря, мне кажется неправильным применение слова "тег", куда более логичным думаю будет слово "лексема" - т.к. трансляторы рассматривают исходный текст программ именно как набор лексем.

термин был выбран мной условно, ок, давайте перейдем на термин "лексема".
Автор: VoidVolker
Дата сообщения: 29.11.2008 17:13
vladvro

Цитата:
Обновил лексер, теперь для всего, что находится внутри определения, создана своя группа подсветки. Это вызванно особенностями работы лексеров в целом.
Тег начала определения теперь может быть двух видов - один как для :NONAME, другой как для :, в первом случае, он задается только в группе начала определения, во втором - в двух группах, в этой и в группе defwords.
Требуется тщательно протестировать работу. Надеюсь скачать обновление и собрать из исходников проблем не вызывает?

У меня нет такой возможности.

Цитата:
термин был выбран мной условно, ок, давайте перейдем на термин "лексема".

Хорошо.
Тогда приведу значение этого термина, если кто не в курсе. Лексема - последовательность допустимых символов языка программирования, имеющая смысл для транслятора.(wiki)
Автор: vladvro
Дата сообщения: 29.11.2008 19:18
VoidVolker

Цитата:
У меня нет такой возможности.

А какой из шагов инструкции не осуществим?
Автор: VoidVolker
Дата сообщения: 29.11.2008 20:15
vladvro

Цитата:
А какой из шагов инструкции не осуществим?

Способ выхода в сеть GPRS - соответственно нет возможности качать большие объемы данных. Есть возможность выложить максимально урезанную сборку?
Автор: vladvro
Дата сообщения: 29.11.2008 23:44
VoidVolker

Цитата:
Способ выхода в сеть GPRS - соответственно нет возможности качать большие объемы данных. Есть возможность выложить максимально урезанную сборку?

Ясно. Вот архив с необходимыми для апдейта сборки файлами.
Но я рекомендую найти или интернет кафе, или знакомого с дешевым трафиком и скачать MinGW, SVN клиент и файлы SVN репозитория. Это разовая операция и в дальнейшем обновление исходников будет небольшим по объему.
Автор: VoidVolker
Дата сообщения: 30.11.2008 10:46
vladvro

Цитата:
Вот архив с необходимыми для апдейта сборки файлами

Спасибо!

Цитата:
рекомендую найти или интернет кафе, или знакомого с дешевым трафиком и скачать MinGW, SVN клиент и файлы SVN репозитория

Уже в процессе

Добавлено:
Частенько наблюдаю при закрытие скайте глюк: вся система примерно на 10 секунд впадает в глубокий ступор.
Еще я не понимаю смысла вот этого:

Код: # Символы, из которых строятся операторы языка
word.characters.forth=$(chars.alpha)$(chars.numeric)$(chars.accented)._-><=%!?@#:
word.characters.$(file.patterns.forth)=$(word.characters.forth)
# Символы, из которых строятся операторы языка (используется для всплывающей подсказки)
calltip.forth.word.characters=$(word.characters.forth)
Автор: vladvro
Дата сообщения: 30.11.2008 15:48
VoidVolker

Цитата:
Частенько наблюдаю при закрытие скайте глюк: вся система примерно на 10 секунд впадает в глубокий ступор.

У меня таких проблем никогда не возникало. Попробуй локализовать источник проблем - отключи скрипты, попробуй поменять настройки.

Цитата:
Еще я не понимаю смысла вот этого...

word.characters - определяет набор символов из которых состоит слово, влияет на работу функций нахождения границ слов и выделения слов, например по двойному клику мышью, НИКАК не влияет на работу лексера,
calltip.forth.word.characters - настройка работы всплывающей подсказки, на работу лексера так же не влияет.

Цитата:
Так, в новом forth.properties опять все как-то не так :/

Да я вобщем то другого и не ожидал...
Расчет именно на то, что знающие Форт люди смогут его сделать правильным.

Цитата:
Поэтому запись вида:
# prewords1
keywords4.$(file.patterns.forth)=\
CHAR [CHAR] POSTPONE WITH ['] TO [COMPILE] ASCII \' c: '
очень даже неправильная.

А как правильно?

Цитата:
Квадратные скобки - они предназначены для переключения режимов работы форта:
[ - устанавливает режим интерпретации, слово немедленного исполнения;
] - устанавливает режим компиляции.

Именно символы, а не лексемы?

Цитата:
Поэтому, возможно стоит для строк ввести другой формат хранения в *.properties: парами - слово-начало строки и слово-конец строки?

Можно и так, только для такой реализации пар нам потребуется создавать новые механизмы хранения ключевых слов в скайте, лучше использовать другой разделительный символ, например так:
Код: # string words
keywords6.$(file.patterns.forth)=\
"~" S"~" ABORT"~" Z"~" ."~" C"~" .(~)
Автор: vladvro
Дата сообщения: 30.11.2008 18:06
VoidVolker

Цитата:
А где можно посмотреть исходники лексера?

вот исходник лексера Форт
trunk/src/scintilla/src/LexForth.cxx
Автор: VoidVolker
Дата сообщения: 30.11.2008 22:07
vladvro

Цитата:
А как правильно?

Смотри контекст выше - я говорил про разделение слов по признакам на разны группы. В данный момент этого нет - в данном примере слова разного типа(немедленного исполнения и обычные) в одной группе.

Цитата:
Именно символы, а не лексемы?

Это самостоятельные слова. Также как и [CHAR] - тоже самостоятельное слово. Сделать например вот так нельзя:

Код: : word ла-ла-ла ;
: слово [word] ; \ Неправильно: слово [word] не существует!
Автор: vladvro
Дата сообщения: 01.12.2008 10:59
VoidVolker

Цитата:
Смотри контекст выше - я говорил про разделение слов по признакам на разны группы. В данный момент этого нет - в данном примере слова разного типа(немедленного исполнения и обычные) в одной группе.

Сорри, я не буду пытаться сделать очередную, как мне покажется правильную, версию конфига, это работа для человека знающего Форт. Вот если потребуется правка самого лексера - тут постараюсь помочь.

Страницы: 1234567891011121314151617181920212223242526

Предыдущая тема: test


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.