Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
...тестовый скрипт временно отключен...
...тестовый скрипт временно отключен...
|
|
|
|
Добавлено: Ср май 09, 2007 17:58 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
profiT писал(а): Расцвечивать JS-ом -- это не очень хорошо. А вдруг я js у себя отключу? (например именно щас так и есть)
просто хотелось помочь, схему уже набросал, работает. С другой стороны этот подход снижает трафик и нагрузку на сервер.
требует минимум доработок существующего форума. :)
При отключенных JS не будет подсветки :( зато все остальное будет.
[quote="profiT"] Расцвечивать JS-ом -- это не очень хорошо. А вдруг я js у себя отключу? (например именно щас так и есть)[/quote]
просто хотелось помочь, схему уже набросал, работает. С другой стороны этот подход снижает трафик и нагрузку на сервер.
требует минимум доработок существующего форума. :)
При отключенных JS не будет подсветки :( зато все остальное будет.
|
|
|
|
Добавлено: Ср май 09, 2007 14:33 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Цвета из pro.hrd схемы расцветки (та что используется в блоге) :
текст #000000
строки #0000ff
числа #008c00
комментарии #808080
слова #000084 (bold)
IMMEDIATE слова #800000
Цвета из pro.hrd схемы расцветки (та что используется в блоге) :
текст #000000
строки #0000ff
числа #008c00
комментарии #808080
слова #000084 (bold)
IMMEDIATE слова #800000
|
|
|
|
Добавлено: Ср май 09, 2007 12:36 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Проблема у меня сейчас в том, что в regexpах надо каким-то образом указывать начало и конец слова, а они не обязательно пробелы...
Ну, и слова, по идее надо как-то иначе перекомпоновать в списки,
чтобы было нормально, а не как бог на душу положил...
кислотнозеленый -- от того, что он в предпоследнем списке $words[9]
а буковки a и b попадают под попытку расцветить числа
числа сейчас просто отключу, чтобы не мешались...
THEN проглотило от того, что за ним нету пробела...
Проблема у меня сейчас в том, что в regexpах надо каким-то образом указывать начало и конец слова, а они не обязательно пробелы...
Ну, и слова, по идее надо как-то иначе перекомпоновать в списки,
чтобы было нормально, а не как бог на душу положил...
кислотнозеленый -- от того, что он в предпоследнем списке $words[9]
а буковки a и b попадают под попытку расцветить числа
числа сейчас просто отключу, чтобы не мешались...
THEN проглотило от того, что за ним нету пробела...
|
|
|
|
Добавлено: Ср май 09, 2007 12:31 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Цитата:
Код: [colorer] : ^2 ( a b -- ) 12 DUP * SWAP IF ROT ELSE THEN S" gf" ; [/colorer]
IF и ELSE синие и почему-то зачёркнуты (тэг <s>). А THEN -- чёрный.
Весь стековый комментарий не выделен. Зато внутри помечены кислотно-зелёным только "a" и "--".
По цветам -- это долгая история. Лучше сначала обеспечить само срабатывание.
(видимо, придётся во второй раз в жизни попробовать на PHP что-то сделать)
[quote]Попробовать, как он работает, можно на http://fforum.winglion.ru/colorer/test.php[/quote]
[code][colorer] : ^2 ( a b -- ) 12 DUP * SWAP IF ROT ELSE THEN S" gf" ; [/colorer][/code]
IF и ELSE синие и почему-то зачёркнуты (тэг <s>). А THEN -- чёрный.
Весь стековый комментарий не выделен. Зато внутри помечены кислотно-зелёным только "a" и "--".
По цветам -- это долгая история. Лучше сначала обеспечить само срабатывание.
(видимо, придётся во второй раз в жизни попробовать на PHP что-то сделать)
|
|
|
|
Добавлено: Ср май 09, 2007 12:21 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
AlexF
По поводу Colorer'а -- это то что мы сразу предлагали. Но Winglion описал выше почему не может так делать.
Расцвечивать JS-ом -- это не очень хорошо. А вдруг я js у себя отключу? (например именно щас так и есть)
(при этом к Сагалевской разработке отношусь строго положительно, хорошая вещь)
[b]AlexF[/b]
По поводу Colorer'а -- это то что мы сразу предлагали. Но Winglion описал выше почему не может так делать.
Расцвечивать JS-ом -- это не очень хорошо. А вдруг я js у себя отключу? (например именно щас так и есть)
(при этом к Сагалевской разработке отношусь строго положительно, хорошая вещь)
|
|
|
|
Добавлено: Ср май 09, 2007 12:15 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
цвета заданы отбалды, поэтому, прошу предлагать варианты (желательно сразу с указанием RGB кодов)
цвета заданы отбалды, поэтому, прошу предлагать варианты (желательно сразу с указанием RGB кодов)
|
|
|
|
Добавлено: Ср май 09, 2007 12:02 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Ерунда какя-то. Вроде, постил последний вариант функции, а моего сообщения не видно
последний вариант colorer.php:
Код: <?php
function colorer($text){
// слова с < > # = ' обрабатываются отдельно! // слова $words[0] = 'CLOSE-FILE CREATE-FILE-SHARED CREATE-FILE DELETE-FILE FILE-POSITION FILE-SIZE FORTH-WORDLIST GET-CURRENT GET-ORDER INCLUDE-FILE OPEN-FILE-SHARED OPEN-FILE READ-FILE READ-LINE REPOSITION-FILE RESIZE-FILE SEARCH-WORDLIST SET-CURRENT SET-ORDER SOURCE-ID TO-LOG WRITE-FILE WRITE-LINE'; $words[] = '0</ 0<>/ 0= 0! << >> -> 1+ 2+ 1- 2- D+ D. D0= D< D>S S>D C! C, C/L C@ C@ >BODY >IN >NUMBER >R -ROT -TRAILING <# <> +! ", */ #>'; $words[] = '#S #TIB */MOD /MOD 2/ 2>R FM/MOD R/O R/W SM/REM U>D UM/MOD W/O'; $words[] = '! .S (.") (ABORT") * + , - . .0 ?COMP 2DROP 2DUP 2LITERAL 2OVER 2R> 2R@ 2SWAP ?DUP @ ABORT ABS ACCEPT ALIGN ALIGNED ALLOCATE ALLOT ALSO AND ASCIIZ> AT BASE BETWEEN BL BLK BUFFER: BYE CATCH CELL CELL+ CELL- CELLS CHAR CHAR+ CHARS CLITERAL CMOVE CMOVE> COMPARE CONTEXT COUNT CR CURRENT DABS DECIMAL DEFER DEFINITIONS DEPTH DIGIT DNEGATE DP DROP DUMP DUP EKEY EKEY? EMIT ENVIRONMENT? END-CODE ERASE EXECUTE EXIT EVALUATE FALSE FIELD FILL FIND FORTH FREE HANDLER HEADER HERE HEX HIDE HLD HOLD IMMEDIATE INCLUDED INTERPRET INVERT IS KEY KEY? LATEST LEAVE LITERAL LSHIFT M* MAX MIN MOD MOVE NAME> NEGATE NIP NLIST NOOP NOT ONLY OR ORDER OVER PAD PARSE PICK PREVIOUS QUIT R0 ROLL R> R@ RDROP RECURSE REFILL RESIZE ROT RP! RP@ RSHIFT S0 SEARCH SIGN SKIP SLITERAL SMUDGE SOURCE SP! SP@ SPACE SPACES STATE SWAP THROW TIB TRUE TUCK TYPE U. U/ U< U> UM* UMOD W! W, W@ WARNING WITHIN WORD WORDLIST WORDS XOR COMPILE INCLUDE VOCS NextWord SFIND HALT OK LT LTL'; $words[] = 'F! F* F+ F. F, F- F/ F< F= F> F@ FABORT FABS FALIGN FALIGNED FDEPTH FDROP FDUP FEXP FLN FLG FLITERAL FLOATS FMAX FMIN FNEGATE'; $words[] = '!nt @nt br+ br- br0 ddo decode-2int decode-int decode-phys decode-string device-name DICTLIST encode+ encode-2int encode-bytes encode-int encode-phys encode-string end0 end1 ex ex+ ex- ex0 external finish-device headers if+ if- if0 my-self NAMEBASE new-device PROPERTY rp TVOCABULARY'; $words[] = 'OF ENDOF CASE END-CASE ENDCASE IF ELSE THEN BEGIN WHILE REPEAT BEGIN UNTIL AGAIN RECURSE ?DO DO +LOOP LOOP UNLOOP I J LEAVE DOES> {{ }}'; $words[] = ': ... WINAPI: CREATE VARIABLE USER CONSTANT VOCABULARY VECT VALUE FVALUE -- CODE REQUIRE'; $words[] = '> < = \\\' #';
// color_o[] -- открытие выделения (можно добавить не только цвет, но и bold и italic) // color_c[] -- закрытие выделения
$color_о[0] = '<font color=#000088>';$color_c[0] = '</font>'; $color_о[] = '<font color=#008800>'; $color_c[] = '</font>'; $color_о[] = '<font color=#880000>'; $color_c[] = '</font>'; $color_о[] = '<font color=#0000FF>'; $color_c[] = '</font>'; $color_о[] = '<font color=#00FF00>'; $color_c[] = '</font>'; $color_о[] = '<font color=#FF0000>'; $color_c[] = '</font>'; $color_о[] = '<font color=#0000FF><s>'; $color_c[] = '</s></font>'; $color_о[] = '<font color=#00FF00><i>'; $color_c[] = '</i></font>'; $color_о[] = '<font color=#FFFF00><b>'; $color_c[] = '</b></font>';
// замена через через unix-регулярные выражения
// замена управляющих символов
$text = str_replace('>', '>', $text); $text = str_replace('<', '<', $text); $text = str_replace('\\'.chr(39), chr(39), $text);
// обезьянничаем regexp из ббкода $text = preg_replace( "#\[colorer\](.*?)\[/colorer\]#si", "<pre>\\1</pre>", $text);
// строки $text = preg_replace("#S.\"(.*?).\"#si", "<font color=orange>S\"\\1\"</font>", $text); $text = preg_replace("#\..\"(.*?).\"#si", "<font color=orange>.\"\\1\"</font>", $text);
// коментарий, начинающийся с / // $text = preg_replace("#\n\/ .* \n"#si", "<font color=darkyellow>\\1</font>", $text);
// $text = preg_replace("#(0-9A-F)#si", "<font color=green>\\1</font>", $text); // числа (не работают нормально!) // $text = preg_replace("#(\d|A|B|C|D|E|F).\s#si", " <font color=lightgreen>\\1</font> ", $text);
// убрать лишние слеши $text = str_replace('\"', '"', $text); $text = str_replace('\\\'', '\'', $text);
// собственно расцвечивание
$w=0; // номер массива слов и цвета для расцветки
while (isset($words[$w])){ // пока есть слова: $xx = $words[$w]; // замена управляющих символов html в расцвечиваемых словах $xx = str_replace('>', '>', $xx); $xx = str_replace('<', '<', $xx); $mas = split((chr(32)),$xx); // вытаскиваем слова в массив // echo "<hr>".$mas[1].$mas[2].$mas[3]; $i=1; while (isset($mas[$i])){ // пока есть слова, заменяем: // для слов окруженных пробелами $text = str_replace(" $mas[$i] "," $color_о[$w]$mas[$i]$color_c[$w] ",$text);
// для слов в конце строки $text = str_replace(" $mas[$i]".'\n'," $color_о[$w]$mas[$i]$color_c[$w]".'\n',$text); // для слов в начале строки $text = str_replace('\n'."$mas[$i] ",'\n'."$color_о[$w]$mas[$i]$color_c[$w] ",$text); // для одиночных слов $text= str_replace('\n'."$mas[$i]\n",'\n'."$color_о[$w]$mas[$i]$color_c[$w]".'\n',$text); $i++; // /^stroka$/ - строка с началом и концом //$text = str_replace(" $mas[$i] "," $color_о[$w]$mas[$i]$color_c[$w] ",$text); }; $w++; };
$text = str_replace(" CREATE "," <font color=#FF0000>CREATE</font> ",$text);
// $text = str_replace(' # ', '<b>#</b>', $text);
return ($text);};
?>
Попробовать, как он работает, можно на http://fforum.winglion.ru/colorer/test.php
в окошко вводится тестовый код, окруженный тегами [colorer] [/colorer]
и получается некий результат
Ерунда какя-то. Вроде, постил последний вариант функции, а моего сообщения не видно :(
последний вариант [b]colorer.php:[/b]
[code] <?php
function colorer($text){
// слова с < > # = ' обрабатываются отдельно! // слова $words[0] = 'CLOSE-FILE CREATE-FILE-SHARED CREATE-FILE DELETE-FILE FILE-POSITION FILE-SIZE FORTH-WORDLIST GET-CURRENT GET-ORDER INCLUDE-FILE OPEN-FILE-SHARED OPEN-FILE READ-FILE READ-LINE REPOSITION-FILE RESIZE-FILE SEARCH-WORDLIST SET-CURRENT SET-ORDER SOURCE-ID TO-LOG WRITE-FILE WRITE-LINE'; $words[] = '0</ 0<>/ 0= 0! << >> -> 1+ 2+ 1- 2- D+ D. D0= D< D>S S>D C! C, C/L C@ C@ >BODY >IN >NUMBER >R -ROT -TRAILING <# <> +! ", */ #>'; $words[] = '#S #TIB */MOD /MOD 2/ 2>R FM/MOD R/O R/W SM/REM U>D UM/MOD W/O'; $words[] = '! .S (.") (ABORT") * + , - . .0 ?COMP 2DROP 2DUP 2LITERAL 2OVER 2R> 2R@ 2SWAP ?DUP @ ABORT ABS ACCEPT ALIGN ALIGNED ALLOCATE ALLOT ALSO AND ASCIIZ> AT BASE BETWEEN BL BLK BUFFER: BYE CATCH CELL CELL+ CELL- CELLS CHAR CHAR+ CHARS CLITERAL CMOVE CMOVE> COMPARE CONTEXT COUNT CR CURRENT DABS DECIMAL DEFER DEFINITIONS DEPTH DIGIT DNEGATE DP DROP DUMP DUP EKEY EKEY? EMIT ENVIRONMENT? END-CODE ERASE EXECUTE EXIT EVALUATE FALSE FIELD FILL FIND FORTH FREE HANDLER HEADER HERE HEX HIDE HLD HOLD IMMEDIATE INCLUDED INTERPRET INVERT IS KEY KEY? LATEST LEAVE LITERAL LSHIFT M* MAX MIN MOD MOVE NAME> NEGATE NIP NLIST NOOP NOT ONLY OR ORDER OVER PAD PARSE PICK PREVIOUS QUIT R0 ROLL R> R@ RDROP RECURSE REFILL RESIZE ROT RP! RP@ RSHIFT S0 SEARCH SIGN SKIP SLITERAL SMUDGE SOURCE SP! SP@ SPACE SPACES STATE SWAP THROW TIB TRUE TUCK TYPE U. U/ U< U> UM* UMOD W! W, W@ WARNING WITHIN WORD WORDLIST WORDS XOR COMPILE INCLUDE VOCS NextWord SFIND HALT OK LT LTL'; $words[] = 'F! F* F+ F. F, F- F/ F< F= F> F@ FABORT FABS FALIGN FALIGNED FDEPTH FDROP FDUP FEXP FLN FLG FLITERAL FLOATS FMAX FMIN FNEGATE'; $words[] = '!nt @nt br+ br- br0 ddo decode-2int decode-int decode-phys decode-string device-name DICTLIST encode+ encode-2int encode-bytes encode-int encode-phys encode-string end0 end1 ex ex+ ex- ex0 external finish-device headers if+ if- if0 my-self NAMEBASE new-device PROPERTY rp TVOCABULARY'; $words[] = 'OF ENDOF CASE END-CASE ENDCASE IF ELSE THEN BEGIN WHILE REPEAT BEGIN UNTIL AGAIN RECURSE ?DO DO +LOOP LOOP UNLOOP I J LEAVE DOES> {{ }}'; $words[] = ': ... WINAPI: CREATE VARIABLE USER CONSTANT VOCABULARY VECT VALUE FVALUE -- CODE REQUIRE'; $words[] = '> < = \\\' #';
// color_o[] -- открытие выделения (можно добавить не только цвет, но и bold и italic) // color_c[] -- закрытие выделения
$color_о[0] = '<font color=#000088>';$color_c[0] = '</font>'; $color_о[] = '<font color=#008800>'; $color_c[] = '</font>'; $color_о[] = '<font color=#880000>'; $color_c[] = '</font>'; $color_о[] = '<font color=#0000FF>'; $color_c[] = '</font>'; $color_о[] = '<font color=#00FF00>'; $color_c[] = '</font>'; $color_о[] = '<font color=#FF0000>'; $color_c[] = '</font>'; $color_о[] = '<font color=#0000FF><s>'; $color_c[] = '</s></font>'; $color_о[] = '<font color=#00FF00><i>'; $color_c[] = '</i></font>'; $color_о[] = '<font color=#FFFF00><b>'; $color_c[] = '</b></font>';
// замена через через unix-регулярные выражения
// замена управляющих символов
$text = str_replace('>', '>', $text); $text = str_replace('<', '<', $text); $text = str_replace('\\'.chr(39), chr(39), $text);
// обезьянничаем regexp из ббкода $text = preg_replace( "#\[colorer\](.*?)\[/colorer\]#si", "<pre>\\1</pre>", $text);
// строки $text = preg_replace("#S.\"(.*?).\"#si", "<font color=orange>S\"\\1\"</font>", $text); $text = preg_replace("#\..\"(.*?).\"#si", "<font color=orange>.\"\\1\"</font>", $text);
// коментарий, начинающийся с / // $text = preg_replace("#\n\/ .* \n"#si", "<font color=darkyellow>\\1</font>", $text);
// $text = preg_replace("#(0-9A-F)#si", "<font color=green>\\1</font>", $text); // числа (не работают нормально!) // $text = preg_replace("#(\d|A|B|C|D|E|F).\s#si", " <font color=lightgreen>\\1</font> ", $text);
// убрать лишние слеши $text = str_replace('\"', '"', $text); $text = str_replace('\\\'', '\'', $text);
// собственно расцвечивание
$w=0; // номер массива слов и цвета для расцветки
while (isset($words[$w])){ // пока есть слова: $xx = $words[$w]; // замена управляющих символов html в расцвечиваемых словах $xx = str_replace('>', '>', $xx); $xx = str_replace('<', '<', $xx); $mas = split((chr(32)),$xx); // вытаскиваем слова в массив // echo "<hr>".$mas[1].$mas[2].$mas[3]; $i=1; while (isset($mas[$i])){ // пока есть слова, заменяем: // для слов окруженных пробелами $text = str_replace(" $mas[$i] "," $color_о[$w]$mas[$i]$color_c[$w] ",$text);
// для слов в конце строки $text = str_replace(" $mas[$i]".'\n'," $color_о[$w]$mas[$i]$color_c[$w]".'\n',$text); // для слов в начале строки $text = str_replace('\n'."$mas[$i] ",'\n'."$color_о[$w]$mas[$i]$color_c[$w] ",$text); // для одиночных слов $text= str_replace('\n'."$mas[$i]\n",'\n'."$color_о[$w]$mas[$i]$color_c[$w]".'\n',$text); $i++; // /^stroka$/ - строка с началом и концом //$text = str_replace(" $mas[$i] "," $color_о[$w]$mas[$i]$color_c[$w] ",$text); }; $w++; };
$text = str_replace(" CREATE "," <font color=#FF0000>CREATE</font> ",$text);
// $text = str_replace(' # ', '<b>#</b>', $text);
return ($text);};
?> [/code]
Попробовать, как он работает, можно на http://fforum.winglion.ru/colorer/test.php
в окошко вводится тестовый код, окруженный тегами [colorer] [/colorer]
и получается некий результат
|
|
|
|
Добавлено: Ср май 09, 2007 11:55 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
с запуском бинарника - не хочется рисковать.
Мало ли чего произойдет, и выкинут с хоста из-за какого-нибудь левого бага...
К тому же, мне не кажется слишком тяжелым способ раскрашивания через php-функцию.
Начало уже сделал, а дальше посмотрим.
с запуском бинарника - не хочется рисковать.
Мало ли чего произойдет, и выкинут с хоста из-за какого-нибудь левого бага...
К тому же, мне не кажется слишком тяжелым способ раскрашивания через php-функцию.
Начало уже сделал, а дальше посмотрим.
|
|
|
|
Добавлено: Ср май 09, 2007 10:58 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
описание подключения colorer-а к форуму: http://forum.dklab.ru/about/todo/ThereIsAnIdeaToAddRaskraskuForPiecesOfACode.html
но есть один недостаток -- требует установки и запуска бинарника
Есть уже разработанный JS -скрипт который прямо в браузере выполняет подсветку синтаксиса. Пока не разбирался : http://softwaremaniacs.org/soft/highlight/ но описание заманчиво
поставил FF расширение, не срабатывает:
- нет Forth в списке поддерживаемых языков
- фрагменты кода оформлены без тегов Код: < pre >< code >...< /code >< /pre > и поэтому скрипт не срабатывает...
Думаю, что использование этого скрипта -- самый оптимальный вариант.
Шо скаже шановне панство?
описание подключения colorer-а к форуму: [url]http://forum.dklab.ru/about/todo/ThereIsAnIdeaToAddRaskraskuForPiecesOfACode.html[/url]
но есть один недостаток -- требует установки и запуска бинарника
Есть уже разработанный JS -скрипт который прямо в браузере выполняет подсветку синтаксиса. Пока не разбирался : [url]http://softwaremaniacs.org/soft/highlight/[/url] но описание заманчиво :)
поставил FF расширение, не срабатывает:
- нет Forth в списке поддерживаемых языков :(
- фрагменты кода оформлены без тегов [code]< pre >< code >...< /code >< /pre >[/code] и поэтому скрипт не срабатывает...
Думаю, что использование этого скрипта -- самый оптимальный вариант.
Шо скаже шановне панство? :)
|
|
|
|
Добавлено: Ср май 09, 2007 10:50 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
forth@km.ru писал(а): учитывая один из базовых принцпов кодинга на Форте -- расширение до задаче-ориентированного языка -- сделать подцветку нереально Smile
Tak это, что, значит, бросать это "грязное дело?" forth@km.ru писал(а): учитывая популярность этого форумного движка (phpbb если не ошибаюсь), разве еще не сделали автоколорер для тега code ?
Не понял... А как же первое утверждeние про нереальность?
[quote="forth@km.ru"]учитывая один из базовых принцпов кодинга на Форте -- расширение до задаче-ориентированного языка -- сделать подцветку нереально Smile [/quote]
Tak это, что, значит, бросать это "грязное дело?"
[quote="forth@km.ru"]учитывая популярность этого форумного движка (phpbb если не ошибаюсь), разве еще не сделали автоколорер для тега code ?[/quote]
Не понял... А как же первое утверждeние про нереальность? :shock:
|
|
|
|
Добавлено: Ср май 09, 2007 08:58 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): примерно понял, что надо, буду думать, как это на php сделать...
учитывая популярность этого форумного движка (phpbb если не ошибаюсь), разве еще не сделали автоколорер для тега code ?
[quote="WingLion"]примерно понял, что надо, буду думать, как это на php сделать...[/quote]
учитывая популярность этого форумного движка (phpbb если не ошибаюсь), разве еще не сделали автоколорер для тега code ?
|
|
|
|
Добавлено: Ср май 09, 2007 08:18 |
|
|
|
|
|
Заголовок сообщения: |
Re: О расцветке Форт-исходников на форуме |
|
|
WingLion писал(а): Начинаю попытку делать расцветку для форт-исходников на форуме.
учитывая один из базовых принцпов кодинга на Форте -- расширение до задаче-ориентированного языка -- сделать подцветку нереально
[quote="WingLion"]Начинаю попытку делать расцветку для форт-исходников на форуме. [/quote]
учитывая один из базовых принцпов кодинга на Форте -- расширение до задаче-ориентированного языка -- сделать подцветку нереально :-)
|
|
|
|
Добавлено: Ср май 09, 2007 08:15 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Вот. Список слов по категориям. Всё остальное в схеме расцветок Colorer'а распознаётся регулярными выражениями.
Код: forWord CLOSE-FILE CREATE-FILE-SHARED CREATE-FILE DELETE-FILE FILE-POSITION FILE-SIZE FORTH-WORDLIST GET-CURRENT GET-ORDER INCLUDE-FILE OPEN-FILE-SHARED OPEN-FILE READ-FILE READ-LINE REPOSITION-FILE RESIZE-FILE SEARCH-WORDLIST SET-CURRENT SET-ORDER SOURCE-ID TO-LOG WRITE-FILE WRITE-LINE forWord 0</ 0<>/ 0= 0! << >> -> 1+ 2+ 1- 2- D+ D. D0= D< D>S S>D C! C, C/L C@ C@ >BODY >IN >NUMBER >R -ROT -TRAILING <# <> +! ", */ #> forWord #S #TIB */MOD /MOD 2/ 2>R FM/MOD R/O R/W SM/REM U>D UM/MOD W/O forWord ! .S # (.") (ABORT") * + , - . .0 ?COMP 2DROP 2DUP 2LITERAL 2OVER 2R> 2R@ 2SWAP < = > ?DUP @ ABORT ABS ACCEPT ALIGN ALIGNED ALLOCATE ALLOT ALSO AND ASCIIZ> AT BASE BETWEEN BL BLK BUFFER: BYE CATCH CELL CELL+ CELL- CELLS CHAR CHAR+ CHARS CLITERAL CMOVE CMOVE> COMPARE CONTEXT COUNT CR CURRENT DABS DECIMAL DEFER DEFINITIONS DEPTH DIGIT DNEGATE DP DROP DUMP DUP EKEY EKEY? EMIT ENVIRONMENT? END-CODE ERASE EXECUTE EXIT EVALUATE FALSE FIELD FILL FIND FORTH FREE HANDLER HEADER HERE HEX HIDE HLD HOLD IMMEDIATE INCLUDED INTERPRET INVERT IS KEY KEY? LATEST LEAVE LITERAL LSHIFT M* MAX MIN MOD MOVE NAME> NEGATE NIP NLIST NOOP NOT ONLY OR ORDER OVER PAD PARSE PICK PREVIOUS QUIT R0 ROLL R> R@ RDROP RECURSE REFILL RESIZE ROT RP! RP@ RSHIFT S0 SEARCH SIGN SKIP SLITERAL SMUDGE SOURCE SP! SP@ SPACE SPACES STATE SWAP THROW TIB TRUE TUCK TYPE U. U/ U< U> UM* UMOD W! W, W@ WARNING WITHIN WORD WORDLIST WORDS XOR COMPILE INCLUDE VOCS NextWord SFIND HALT OK LT LTL forWord F! F* F+ F. F, F- F/ F< F= F> F@ FABORT FABS FALIGN FALIGNED FDEPTH FDROP FDUP FEXP FLN FLG FLITERAL FLOATS FMAX FMIN FNEGATE FSWAP forExtWords !nt @nt br+ br- br0 ddo decode-2int decode-int decode-phys decode-string device-name DICTLIST encode+ encode-2int encode-bytes encode-int encode-phys encode-string end0 end1 ex ex+ ex- ex0 external finish-device headers if+ if- if0 my-self NAMEBASE new-device PROPERTY rp TVOCABULARY forResWord OF ENDOF CASE END-CASE ENDCASE IF ELSE THEN BEGIN WHILE REPEAT BEGIN UNTIL AGAIN RECURSE ?DO DO +LOOP LOOP UNLOOP I J LEAVE DOES> {{ }} forWord : ' ... WINAPI: CREATE VARIABLE USER CONSTANT VOCABULARY VECT VALUE FVALUE -- CODE REQUIRE
(что такое forWord -- не знаю, за что купил.. В смысле что выдрал из xml-ки)
Вот. Список слов по категориям. Всё остальное в схеме расцветок Colorer'а распознаётся регулярными выражениями.
[code]forWord CLOSE-FILE CREATE-FILE-SHARED CREATE-FILE DELETE-FILE FILE-POSITION FILE-SIZE FORTH-WORDLIST GET-CURRENT GET-ORDER INCLUDE-FILE OPEN-FILE-SHARED OPEN-FILE READ-FILE READ-LINE REPOSITION-FILE RESIZE-FILE SEARCH-WORDLIST SET-CURRENT SET-ORDER SOURCE-ID TO-LOG WRITE-FILE WRITE-LINE forWord 0</ 0<>/ 0= 0! << >> -> 1+ 2+ 1- 2- D+ D. D0= D< D>S S>D C! C, C/L C@ C@ >BODY >IN >NUMBER >R -ROT -TRAILING <# <> +! ", */ #> forWord #S #TIB */MOD /MOD 2/ 2>R FM/MOD R/O R/W SM/REM U>D UM/MOD W/O forWord ! .S # (.") (ABORT") * + , - . .0 ?COMP 2DROP 2DUP 2LITERAL 2OVER 2R> 2R@ 2SWAP < = > ?DUP @ ABORT ABS ACCEPT ALIGN ALIGNED ALLOCATE ALLOT ALSO AND ASCIIZ> AT BASE BETWEEN BL BLK BUFFER: BYE CATCH CELL CELL+ CELL- CELLS CHAR CHAR+ CHARS CLITERAL CMOVE CMOVE> COMPARE CONTEXT COUNT CR CURRENT DABS DECIMAL DEFER DEFINITIONS DEPTH DIGIT DNEGATE DP DROP DUMP DUP EKEY EKEY? EMIT ENVIRONMENT? END-CODE ERASE EXECUTE EXIT EVALUATE FALSE FIELD FILL FIND FORTH FREE HANDLER HEADER HERE HEX HIDE HLD HOLD IMMEDIATE INCLUDED INTERPRET INVERT IS KEY KEY? LATEST LEAVE LITERAL LSHIFT M* MAX MIN MOD MOVE NAME> NEGATE NIP NLIST NOOP NOT ONLY OR ORDER OVER PAD PARSE PICK PREVIOUS QUIT R0 ROLL R> R@ RDROP RECURSE REFILL RESIZE ROT RP! RP@ RSHIFT S0 SEARCH SIGN SKIP SLITERAL SMUDGE SOURCE SP! SP@ SPACE SPACES STATE SWAP THROW TIB TRUE TUCK TYPE U. U/ U< U> UM* UMOD W! W, W@ WARNING WITHIN WORD WORDLIST WORDS XOR COMPILE INCLUDE VOCS NextWord SFIND HALT OK LT LTL forWord F! F* F+ F. F, F- F/ F< F= F> F@ FABORT FABS FALIGN FALIGNED FDEPTH FDROP FDUP FEXP FLN FLG FLITERAL FLOATS FMAX FMIN FNEGATE FSWAP forExtWords !nt @nt br+ br- br0 ddo decode-2int decode-int decode-phys decode-string device-name DICTLIST encode+ encode-2int encode-bytes encode-int encode-phys encode-string end0 end1 ex ex+ ex- ex0 external finish-device headers if+ if- if0 my-self NAMEBASE new-device PROPERTY rp TVOCABULARY forResWord OF ENDOF CASE END-CASE ENDCASE IF ELSE THEN BEGIN WHILE REPEAT BEGIN UNTIL AGAIN RECURSE ?DO DO +LOOP LOOP UNLOOP I J LEAVE DOES> {{ }} forWord : ' ... WINAPI: CREATE VARIABLE USER CONSTANT VOCABULARY VECT VALUE FVALUE -- CODE REQUIRE[/code]
(что такое forWord -- не знаю, за что купил.. В смысле что выдрал из xml-ки)
|
|
|
|
Добавлено: Вт май 08, 2007 23:32 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
примерно понял, что надо, буду думать, как это на php сделать...
начал делать php-функцию. Пока она вот такая:
Код: function colorer($text){ // immediate слова $immediate[0] = "IF"; $immediate[] = "THEN"; $immediate[] = "ELSE";
// начало расцветки $text = str_replace('[colorer]','<pre>',$text); // конец расцветки $text = str_replace('[/colorer]','</pre>',$text); // проверки на правильную последовательность тегов - пока нету
// цикл с выделением IMMEDIATE слов $i = 0; while (isset($immediate[$i])){ $text = // заменить все вхождения слова $immediate[$i] на подсвеченные str_replace($immediate[$i],'[color=red]'.$immediate[$i].'[/color]',$text); $i++; }
return ($text);};
примерно понял, что надо, буду думать, как это на php сделать...
начал делать php-функцию. Пока она вот такая:
[code] function colorer($text){ // immediate слова $immediate[0] = "IF"; $immediate[] = "THEN"; $immediate[] = "ELSE";
// начало расцветки $text = str_replace('[colorer]','<pre>',$text); // конец расцветки $text = str_replace('[/colorer]','</pre>',$text); // проверки на правильную последовательность тегов - пока нету
// цикл с выделением IMMEDIATE слов $i = 0; while (isset($immediate[$i])){ $text = // заменить все вхождения слова $immediate[$i] на подсвеченные str_replace($immediate[$i],'[color=red]'.$immediate[$i].'[/color]',$text); $i++; }
return ($text);};
[/code]
|
|
|
|
Добавлено: Вт май 08, 2007 21:24 |
|
|
|
|