Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт дек 05, 2019 23:28

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пн апр 26, 2010 21:18 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4997
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 58 раз.
chess писал(а):
У меня отношение к раскрашиванию текстов на Форте не изменилось - я их вообще не крашу

я тоже так делал раньше, но, окраска исходников, если она сделана разумно, выделяет структуру текста так же удобно, как отступы (которые кое кто тоже не использует). Вобщем, в раскрашенном тексте таки чуточку легче разбираться.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Вт апр 27, 2010 14:31 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2129
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 40 раз.
mOleg писал(а):
chess писал(а):
У меня отношение к раскрашиванию текстов на Форте не изменилось - я их вообще не крашу

я тоже так делал раньше, но, окраска исходников, если она сделана разумно, выделяет структуру текста так же удобно, как отступы (которые кое кто тоже не использует). Вобщем, в раскрашенном тексте таки чуточку легче разбираться.

Дак за что цепляться-то при окрашивании(за двоеточия и точки с запятыми что-ли) - чем дальше по тексту, тем все меньше становится слов из ядра - сплошь все новые слова(на глазах переходим на проблемно-ориентированный лексикон).:(

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Вт апр 27, 2010 15:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4997
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 58 раз.
chess писал(а):
Дак за что цепляться-то при окрашивании(за двоеточия и точки с запятыми что-ли)

и за : с ;
а вообще, на самом деле тут надо самому попробовать, и лишь потом делать выводы. Причем, скорее всего раскрасить текст надо по своим правилам и понятиям.

chess писал(а):
ем дальше по тексту, тем все меньше становится слов из ядра - сплошь все новые слова(на глазах переходим на проблемно-ориентированный лексикон

Всеравно остается достаточно много знакомых слов. Да и раскраску можно править достаточно просто и оперативно.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 19:56 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4997
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 58 раз.
очерденой приступ раскрашивания текста ;)
source file: colorer.fts
\ 24.04.2010 ~mOleg
\ Сopyright [C] 2009 mOleg mOlegg@ya.ru
\ Раскраска исходных текстов для публикования на форуме

branch/ case.fts
string/ add.fts
transl/ useful.fts
vocs/ shadow.fts
vocs/ vocab.fts
exc/ demand.fts

CONTAINER COLORER \ отдельный словарь, чтобы "не мусорить" в FORTH

\ список цветов
0x000000 CONSTANT Black
0x0000F0 CONSTANT Blue
0x00F000 CONSTANT Green
0x00A0A0 CONSTANT Cyan
0xC00000 CONSTANT Red
0x800080 CONSTANT Magenta
0x808000 CONSTANT Brown
0xC0C0C0 CONSTANT LightGray
0x808080 CONSTANT DarkGray
0x0080C0 CONSTANT LightBlue
0x00FF00 CONSTANT LightGreen
0x00FFFF CONSTANT LightСyan
0xFF0000 CONSTANT LightRed
0xFF00FF CONSTANT LightMagenta
0xE0E000 CONSTANT Yellow
0xFFFFFF CONSTANT White
0xFF8000 CONSTANT Orange

\ для работы с файлами менять тут!
\ слово выводит раскрашенный текст в stdout
: >OUT ( asc # --> ) TYPE ;

USER-VALUE latestlex \ адрес последней лексемы во входном потоке

\ все пробельные символы передаются без изменений
: lexx ( --> )
BEGIN system_buff ?COMPLETE WHILENOT
PeekChar ?separator WHILE
CharAddr DUP C# >OUT
SkipChar
REPEAT
THEN ;

\ является ли лексема числом?
: ?num ( asc # --> flag )
[ ALSO HIDDEN ] snNumber [ PREVIOUS ]
*IF 2 = IF DDROP ELSE DROP THEN TRUE ;THEN ;

VOCABULARY COL \ словарь в котором будет храниться список раскрашивающих слов

\ создать имя правила, начать описание
: rule: ( / name --> )
ALSO COL THIS
:
;


\ завершить создание правила
: ;r ( --> )
[COMPILE] ;
DEFINITIONS
; IMMEDIATE

\ ------------------------------------------------------------------------------

\ "раскрасить" строку в заданный цвет
: cline ( asc # color --> asc # )
S>D 0x10 {# s" [/color\]" HOLDS DSWAP HOLDS s" ]" HOLDS
# # # # # # s" [color\=#" HOLDS #> ;

\ откатить входной поток на одну позицию влево
: <prev CharAddr <C 1 <BACK ;

\ вернуть адрес начала и длину выполняемого слова
: myself ( --> asc # ) latestlex CharAddr OVER - ;

\ раскраска для одно
: simple ( color --> ) >L myself L> cline >OUT ;

\ укорачиваем запись rule: name Color simple ;r до Color alone: name
: alone: ( color / name --> )
rule: LIT, COMPILE simple [COMPILE] ;r ;

\ цвет для пары: путь/ имя.либы
: cpath ( color --> )
>L latestlex ParseFileName DDROP <prev
CharAddr OVER - L> cline >OUT ;

\ раскрасить заданный короткий путь к библиотеке с ее именем
: cpath: ( color / name --> )
rule: LIT, COMPILE cpath [COMPILE] ;r ;

\ цвет для строки
: string ( color / string" --> )
>L latestlex system_buff [CHAR] " MISSTILL SkipChar
CharAddr OVER - L> cline
>OUT ;

\ раскрасить в указанный цвет строковой литерал
: string: ( color / string" --> )
rule: LIT, COMPILE string [COMPILE] ;r ;

\ цвет для пары лексем
: pair ( color / lexeme --> )
>L latestlex NEXT-WORD DDROP <prev
CharAddr OVER - L> cline
>OUT ;

\ раскрасить пару слово параметр в цвет color
: pair: ( color / lexeme --> )
rule: LIT, COMPILE pair [COMPILE] ;r ;

\ цвет до конца строки
: 2eol ( color --> )
>L latestlex system_buff Cr_ MISSTILL CharAddr OVER -
L> cline >OUT ;

\ раскрасить в указанный цвет color текст до конца строки
: ToEol: ( color / lexeme --> )
rule: LIT, COMPILE 2eol [COMPILE] ;r ;

\ выполнить над всеми словами до конца строки действие name c параметром color
: All ( color / name lex1 lex2 .. lexN --> )
>L ' >L
<: BEGIN SeeForw NIP WHILE DL@ EXECUTE REPEAT LDROP ;>
Cr_ PARSE ROT EVALUATE-WITH ;

\ -----------------------------------------------------------------------------

\ ветвления одним цветом
Cyan All alone: BEGIN WHILE WHILENOT *WHILE REPEAT UNTIL AGAIN
Cyan All alone: IF IFNOT *IF -IF ELSE THEN
\ работа со словарями и имена словарей
LightMagenta All alone: ALSO ONLY SEAL THIS WITH PREVIOUS DEFINITIONS
LightMagenta All alone: GET-CURRENT SET-CURRENT SAVE-ORDER RESTORE-ORDER
LightMagenta All alone: ROOT HIDDEN FORTH
\
Cyan alone: DEMAND
\ опасные операции и обработка ошибок
Red All alone: THROW EXECUTE REJECT [ ] IMMEDIATE LEAP
\ подключение библиотек
Green All cpath: os/ lib/ branch/ compat/ list/ math/ memory/ string/ stack/
Green All cpath: transl/ util/ vocs/ synch/ hard/ exc/ alg/ comp/
\
строковые литералы
Green All string: s" S" ."
\ компилирующие слова
Green All pair: [CHAR] [COMPILE] ['] COMPILE
\
константы
Green All alone: Bl_ Cr_ Lf_ Tab_
\ определяющие слова
Orange All pair: VALUE VARIABLE VECT USER USER-VALUE USER-VECT
Orange
All pair: CONSTANT VOCABULARY CONTAINER
\ слова форматного преобразования
Blue All alone: <# {# # S# #> #} HOLD HOLDS KEEP KEEPS <| |>
\ различные коментарии до конца строки
LightGray ToEol: \
LightBlue All ToEol: \? \!
\ условное выполнение кода до конца строки
Red All ToEol: ?EXISTS ?ABSENT ?DEFINED N?DEFINED

\ скобочный коментарий
rule: ( ( --> )
CharAddr <C system_buff [CHAR] ) MISSTILL SkipChar
CharAddr OVER - LightBlue cline
>OUT ;r

\ коментарий до конца текста
rule: \EOF ( / text --> )
latestlex system_buff CONTENT + OVER -
LightGray cline >OUT
SOURCE >IN ! DROP ;r

\ -----------------------------------------------------------------------------

\ попытка распознать слово как литерал, определяющее слово, завершающее слово
: ?def ( asc # --> )
\ ежели в конце имени содержится двоеточие, считаем слово определяющим
DDUP + <C C@ [CHAR] : =
IF latestlex NextWord DDROP <prev CharAddr OVER - Orange cline >OUT ;THEN
\ все, что в начале слова содержит ';' считаем завершаюшим определение
OVER C@ [CHAR] ; = IF Orange cline >OUT ;THEN
\ все опознанное числом красим в зеленый
DDUP ?num IF Green cline >OUT ;THEN
\ все незнакомое не красим
>OUT ;

\ основной цикл трансляции текста
: (defoult) ( --> )
BEGIN lexx
system_buff LEXEME *WHILE OVER TO latestlex
SFIND IFNOT ?def ELSE EXECUTE THEN
REPEAT DDROP ;

\ раскрашивает содержимое указанного файла
: 2COL ( / file.name --> )
SAVE-ORDER
DEMAND COL SEAL
s" [pre\]\n\r source file: " >OUT
ParseFileName DDUP >OUT
s" \n\r[b\]" >OUT
FileSource ['] (defoult) EvalSrcWith
s" [\/b][/pre\]" >OUT
-1 THROW
REJECT RESTORE-ORDER ;

\EOF
использовать можно так:

fork.exe colorer.f 2COL name.fts BYE >result.txt

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:27 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
да, это хорошо, включить в форум нельзя :?:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:34 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4997
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 58 раз.
вопрос писал(а):
да, это хорошо, включить в форум нельзя

не знаю. В принципе-то можно, только не знаю как ;)
если у кого есть какие соображения, то велкам!

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:39 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
fork.exe colorer.f 2COL name.fts BYE >result.txt
достаточно сделать, чтобы форк брал не из файла а из потока и перенаправить в запущенный средствами php форк (кажется)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:41 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
вопрос писал(а):
включить в форум нельзя

mOleg писал(а):
не знаю. В принципе-то можно, только не знаю как если у кого есть какие соображения, то велкам!

Написать на пхп.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:46 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4997
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 58 раз.
вопрос писал(а):
файла а из потока и перенаправить в запущенный

вот это запросто, т.к. в форке как и в СПФе STDIN & STDOUT перенаправляются запросто штатными консольными средствами.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 20:51 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
вопрос писал(а):
файла а из потока и перенаправить в запущенный

вот это запросто, т.к. в форке как и в СПФе STDIN & STDOUT перенаправляются запросто штатными консольными средствами.

осталось выяснить, как форум хранит содержимое тега кода и
1. запустить форк (должна быть функция в php)
2. передать ему содержимое


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 21:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
1. запустить форк (должна быть функция в php)
2. передать ему содержимое


На сервере хостера никакой форк мне запускать и не дадут.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 22:17 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 339
Благодарил (а): 1 раз.
Поблагодарили: 9 раз.
Узко смотрите, господа. Если раскрашивать, то не только forth тексты, а вообще любые тексты. Существительные синим, глаголы рыжим. Нецензурное красным.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 22:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
а бесплатным восьмипроцессорным сервером обеспечите?

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 22:27 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 339
Благодарил (а): 1 раз.
Поблагодарили: 9 раз.
бесплатным? в смысле навесной монтаж?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: раскрашиваем исходые тексты на форуме
СообщениеДобавлено: Пт апр 30, 2010 22:32 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
WingLion писал(а):
На сервере хостера никакой форк мне запускать и не дадут.

сейчас везде так или только у этого хостера?


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

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


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

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


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

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