Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб июн 23, 2018 12:31

...
Google Search
Forth-FAQ Spy Grafic

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




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

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 407
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 3 раз.
Код:
ALSO HIDDEN

\ Пропустить символ Lf во входном буфере
: SkipLf ( -- ) CharAddr C@ Lf_ = IF system_buff MissOne THEN ;

\ Неполный! аналог Си-шного #define
\ создает слово /name которое при вызове выдает на стек адрес и длину
\ строки /expression ( макросы не поддерживаются )
: #define ( /name /expression -- ) NextWord
          s" (" SEARCH ABORT" Макросы не поддерживаются!"
          CREATED
          CharAddr <C C@ Cr_ =
                             IF SkipLf CharAddr 0
                             ELSE Cr_ PARSE /*...*/ _//!
                             THEN S", IMMEDIATE
  DOES> ( -- asc # ) COUNT ;
\ С коментариями разбираемся перед сохранением строки что вобщем не соответсвует Си
\ но так лучше.

PREVIOUS

Вот во что в итоге превратился #define :(


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

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

тогда надо в #define парсить строку до конца, и разбирать ее отдельно

так же глянь на слова
\ найти начало текущей строки
: <EOL ( start end --> addr )
\ найти начало следующей строки
\ в случае ненахождения возвращает адрес последнего символа строки
: EOL> ( start end --> addr )

лежат в kernel\compiler\parseradd.f

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4920
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
_Harry писал(а):
Вот во что в итоге превратился #define

ну, в общем не страшно.

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


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

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


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

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


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

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