Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 17:25

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: подсветка синтаксиса в редакторе
СообщениеДобавлено: Ср янв 14, 2009 21:31 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
для подсветки синтаксиса в ДосНавигаторе используются регулярные выражения.
Расцветка оригинальная (долго думал как лучше сделать) не знаю, подойдет ли к фару и другим редакторами использующим регулярные выражения для раскраски. Включены уникальные для Форка конструкции типа NOW .. SINCE .. TILL .
Хотя появилась сия фича давно, только сейчас более менее привел раскраску в порядок (раньше сильно тормозило на некоторых файлах).
Следующие строчки вставить в начало ndn.hlg.

<pre>
; 2007-12-30 ~mOleg
; Copyright [C] 2007 mOleg mininoleg@yahoo.com
; подсветка исходных текстов языка Форт в NDN (http://ndn.muxe.com/)

; для списков сообщений
FILES *.msg
RegKeyWords Color lightgreen (\s|^)(\d*)\s+
RegKeywords ColoR CYAN (\s|^)(;\s+).*$
RegKeyWords Color green .*$
END

FILES names.xrf;
GeneralFLAGS 31
STRINGFLAGS 96

RegKeyWords Color lightgreen ^.\\[\13-¤]*
RegKeyWords Color yellow ^\s\s[!-¤]*
RegKeyWords Color white ^[_]*,^\s*\|.*,^[-]*
RegKeyWords Color green ^\\\s.*
RegKeyWords Color blue \(\s.*-->.*\)
RegKeyWords Color white '.*'\s*-.*
RegKeyWords Color lightcyan \s*[0-9A-F]*\s,[0-9A-F]*$
RegKeyWords Color red Code,\:,Cons,Crt,Var,Val,Vect,--,wApi,wPrc,uCrt,User,uVal,uVct,Nick
ND

; расцветка FORTH исходных текстов
FILES *.f;*.voc;*.spf;*.wrd;*.trg;*.fts;fork.ini;*.fth
GeneralFLAGS 31
STRINGFLAGS 96

; убрать все лишние пробелы: перед каждым словом остается по одному пробелу
RegKeywords Color white/darkgray (^|\s+)(?=\s)

; коментарий до конца строки
RegKeywords ColoR CYAN (\s|^)\\\s.*$
; другие коментарии
RegKeyWords Color yellow/red (\s|^)\\EOF\s+.*
RegKeyWords Color yellow/blue (\s|^)\\\?[\13-¤]*$

; подключение библиотек
RegKeyWords Color lightgreen (\s|^)(\.\\|REQUIRE\s|INCLUDE\s)[!-¤]+(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(math|branch|util|memory|stack|os)\/\s+[!-¤]+(\.fts)(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(compat|list|vocs|transl|parser)\/\s+[!-¤]+(\.fts)(?=\s|$)

; строки
RegKeywords Color green/lightgray (\s|^)\.\"\s([\20-!#-¤]+)"(?=\s|$)
RegKeywords Color green (\s|^)(NOTICE|S|s|)"\s([\20-!#-¤]+)"(?=\s|$)

; короткий путь к папкам в ЦК: cp\ os\ vm\
RegKeyWords Color green (\s|^)(cp|os|vm)\\\s+[!-¤]+(?=\s|$)

; стековый коментарий
RegKeywords Color blue \s+\(\s+.*\)

; ?DEFINED и N?DEFINED
RegKeyWords Color RED/lightgray (\s|^)(\?|N?)(DEFINED)[\13-¤]*$

; конструкции с фигурными скобками
RegKeyWords Color brown (\s|^)[!-¤]+\{(?=\s|$),(\s|^)+\}[!-¤]*(?=\s|$)

; локалсы:
RegKeyWords Color blue \s+\{\s+.*\}(?=\s|$)
RegKeyWords Color blue \s+(LOCALS\|)\s+(.*)(\|)(?=\s|$)

; форматное прeобразование чисел
RegKeywords Color lightblue (\s|^)(HOLDS|HOLD|KEEPS|KEEP|BLANKS|BLANK|SIGN)(?=\s|$)
RegKeywords Color lightblue (\s|^)(<#|#>|\{#|#\}|<\||\|>|#S|#|\$|\$S)(?=\s|$)

; числа:
RegKeyWords Color lightgreen (\s|^)([+-]?)[0-9A-F]*\.[0-9A-F]+(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(0x)[0-9A-F]+(?=\s|$)
RegKeyWords Color lightgreen (\s|^)([+-]?)([0-9]+)(?=\s|$)

; работа с VECT и VALUE словами
RegKeywords Color lightcyan (\s|^)(TO|IS|FROM|AT)\s+[!-¤]*(?=\s|$)
RegKeyWords Color lightcyan (\s|^)\([!-¤]+\)(?=\s|$)

; работа со словарями и сами словари
RegKeywords Color lightmagenta (\s|^)(ALSO|ONLY|only|PREVIOUS|DEFINITIONS)(?=\s|$)
RegKeywords Color lightmagenta (\s|^)(GET-ORDER|SET-ORDER|GET-CURRENT|SET-CURRENT)(?=\s|$)
RegKeywords Color lightmagenta (\s|^)(RECENT|SEAL|UNDER|WITH|THIS|CONTEXT|CURRENT)(?=\s|$)
RegKeywords Color lightmagenta (\s|^)(FORTH-WORDLIST|ROOT|FORTH|NUMBERS|HEAP)(?=\s|$)

; конструкции управления
RegKeywords Color White (\s|^)(;SWITCH|SWITCH:)(?=\s|$)
RegKeywords Color White (\s|^)(NOW|FOR|TILL|SINCE|NEXT)(?=\s|$)
RegKeywords Color White (\s|^)(BEGIN|WHILENOT|WHILE|REPEAT|UNTIL|AGAIN)(?=\s|$)
RegKeywords Color White (\s|^)(IFNOT|IF|ELSE|THEN)(?=\s|$)
RegKeywords Color White (\s|^)(\*IF|\*WHILE|\-IF|\-WHILE)(?=\s|$)
RegKeywords Color White (\s|^)(DO|LOOP|\?DO|\+LOOP)(?=\s|$)
RegKeywords Color White (\s|^)(CASE|OF|uOF|ENDOF|ENDCASE)(?=\s|$)
RegKeywords Color White (\s|^)(RECURSE)(?=\s|$)

; base constants
RegKeyWords Color lightgreen (\s|^)(CELL|ADDR|BYTE|CELLS|CHARS|TRUE|FALSE|CFL)(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(off_[!-¤]+|\/[!-¤]+|to_[!-¤]+|\&[!-¤]+)(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(S0|R0|BL|comma|point|imm_word|std_word)(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(NewLine|C\/L)(?=\s|$)
; константы: R/W R/O W/O
RegKeyWords Color lightgreen (\s|^)(R|W)/(O|W)(?=\s|$)

; литеральные значения
RegKeyWords Color lightgreen (\s|^)(POSTPONE|COMPILE|\[COMPILE\]|\[\'\])\s+[!-¤]+(?=\s|$)
RegKeyWords Color lightgreen (\s|^)(|2|D)LITERAL(?=\s|$)
RegKeyWords Color lightgreen (\s|^)\[CHAR\]\s+[!-■]+
RegKeyWords Color lightgreen (\s|^)CHAR\"\s+[!-¤]+

; порождающие слова
RegKeywords Color yellow (\s|^)(<:|;>)(?=\s|$)
RegKeywords Color yellow (\s|^)[!-¤]*\:\s+[!-¤]+
RegKeywords Color yellow ^\s*\:NONAME(?=\s|$)
RegKeywords Color yellow (\s|^)(HEADER|SHEADER|SVOCAB|CREATED|EXIT|DOES\>|S:)(?=\s|$)

RegKeywords Color yellow (\s|^)\;[!-¤]*(?=\s|$)
RegKeywords Color yellow (\s|^):>\s[!-¤]*,(\s|^)ALIAS\s+[!-¤]+\s+[!-¤]+
RegKeywords Color yellow (\s|^)(CREATE|VECT|VARIABLE|VOCABULARY|fld)\s+[!-¤]*(?=\s|$)
RegKeywords Color yellow (\s|^)(USER-VECT|USER-VALUE|USER|USER-CREATE)\s+[!-¤]*(?=\s|$)

RegKeywords Color yellow (\s|^)(EndUnit)(?=\s|$)
RegKeywords Color yellow (\s|^)(VALUE|CONSTANT)\s+[!-¤]*(?=\s|$)

; структуры
RegKeywords Color yellow (\s|^)(struct)\s+[!-¤]+
RegKeywords Color yellow (\s|^)(\/struct)(?=\s|$)
RegKeywords Color brown (\s|^)(zero|cfl|byte|word|cell|scnt|fld|addr)(\[\])\s+[!-¤]+(?=\s|$)
RegKeywords Color yellow (\s|^)(--)\s+[!-¤]+

; работа со стеком возвратов
RegKeywords Color LIGHTRED (\s|^)(AR\x2B|R\x2B|AR>|>AR|AR\@|ARDROP|A>R)(?=\s|$)
RegKeywords Color LIGHTRED (\s|^)(DR@|2R@|R@|DR>|2R>|R>|RDROP)(?=\s|$)
RegKeywords Color LIGHTRED (\s|^)(D>R|2>R|>R|N>R|NR>)(?=\s|$)

; потенциально опасные слова
RegKeywords Color LIGHTRED (\s|^)(execute|tEXECUTE|PERFORM|CATCH|SP\!|RP\!)(?=\s|$)
RegKeyWords Color LIGHTRED (\s|^)(THROW|HALT|UNLOOP|LEAVE|SERROR|BYE|WARNING|STATE)(?=\s|$)
RegKeyWords Color LIGHTRED (\s|^)(IMMEDIATE|tIMMEDIATE|EXECUTE|unfeasible)(?=\s|$)

RegKeywords Color LIGHTRED (\s|^)'(?=\s|$),(\s+|^)\[[!-¤]*\](?=\s|$)
RegKeyWords Color LIGHTRED (\s|^)(ABORT|ERROR)\"\s+.+\"(?=\s|$)

; переключение основания текущей системы исчисления тоже опасно
RegKeyWords Color LIGHTRED (\s|^)(DECIMAL|HEX|BASE)(?=\s|$)

RegKeyWords Color RED (\s|^)(ON-ERROR|EXIT-ERROR)(?=\s|$)



; -- макросы -------------------------------------------------------------------------------------

Macro 1
GoToX 0
InsLine
Print '\ '
InsertDate
Print ' ~mOleg'^M
Print '\ Сopyright [C] 2009 mOleg mininoleg@yahoo.com'^M
Print '\ ???'^M^M
Print ^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M
Print ^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M'\'
GotoY 2
GotoX 2
InsertOff

EndMacro

Macro 2
GoToX 0
InsLine
Print ^M'\ '^M': ( --> )'^M
Tab
Print ';'^M^E^E^S
EndMacro

Macro 3
Print 'BEGIN WHILE'^M
Print 'REPEAT'^M^E^E^F^S
EndMacro

END
</pre>

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 15, 2009 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
А можно ли изменить цвет общего фона в редакторе ???


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 15, 2009 20:40 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_Harry писал(а):
А можно ли изменить цвет общего фона в редакторе ???

это в общих настройках. Там можно выбирать цвета для всего.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB