Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте или
создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Правка может быть отменена.
Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия |
Ваш текст |
Строка 65: |
Строка 65: |
| colon-definition. A blank after the leading parenthesis is required. | | colon-definition. A blank after the leading parenthesis is required. |
|
| |
|
| == Реализация == | | == Реализация ( == |
| <pre>
| |
| 3417 ;#p
| |
| 3418 ; ( I ( −− ) Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
| |
| 3419 ; Комментарий. Игнорировать всё до первой встречной ")" или конца строки (терминал) / экрана (интерпретация блока).
| |
| 3420 LPAREN: .DB 81H
| |
| 3421 .TEXT "("
| |
| 3422 .DW LVOCAB
| |
| 3423 PAREN: .DW CALL, LITB
| |
| 3424 .DB 41 ; ")"
| |
| 3425 .DW WORD, DROP, EXIT
| |
| </pre>
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| : ( ( "ccc<paren>" -- ) \ 94 FILE
| |
| \ Расширить семантику CORE (, включив:
| |
| \ Когда разбирается текстовый файл, если конец разбираемой области достигнут
| |
| \ раньше, чем найдена правая скобка, снова заполнить входной буфер следующей
| |
| \ строкой из файла, установить >IN в ноль и продолжать разбор, повторяя
| |
| \ этот процесс до тех пор, пока не будет найдена правая скобка или не
| |
| \ будет достигнут конец файла.
| |
| BEGIN
| |
| [CHAR] ) DUP PARSE + C@ = 0=
| |
| WHILE
| |
| REFILL 0= IF EXIT THEN
| |
| REPEAT
| |
| ; IMMEDIATE
| |
| </pre>
| |
| <pre>
| |
| : ( [COMPILE] ( ; IMMEDIATE
| |
| </pre>
| |
| | |
| === Советская реализация ===
| |
| В Thinking FORTH (стр. 169, "More Tips for Readability") приводится такая реализация слова ( : | | В Thinking FORTH (стр. 169, "More Tips for Readability") приводится такая реализация слова ( : |
| : ( ')' WORD DROP ; IMMEDIATE | | : ( ')' WORD DROP ; IMMEDIATE |