OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 20 Июнь, 2019 06:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 13 Май, 2010 20:48 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2179
Откуда: Нижний Новгород
Как сделать условную компиляцию на Coco/R?
Т.е. обработку вот такой конструкции:
Код:
<* IF condition THEN *>
<* ELSIF condition THEN *>
<* ELSE *>
<* END *>


По идее в зависимости от condition лексер должен был бы выкидывать всё лишнее. Как бы это покрасивше сделать на Coco/R?

Далее. Прагмы. Но не простые, а влияющие на синтаксис. Прагмы вида:
Код:
<* +O2NUMEXT *>

Если подобная прагма имеется, то в синтаксисе нет "**", если же прагма есть, то в синтаксисе внезапно появляется правило:
Код:
    Exponent =  Factor { "**" Factor }.

Соответственно правило Term модифицируется:
Код:
    Term     =  Exponent { MulOp Exponent }.

Это простейшее. Есть прагмы меняющие (расширяющие) синтаксис сильнее.
Как тут быть?

Ну и наконец наши любимые ассемблерные вставки. Внутри блока начинающегося на "ASM" и оканчивающийся на "END" может быть некий произвольный ассемблер (синтаксис его мы не знаем). Нам нужно его хотя бы научиться игнорировать. А лучше -- выкусывать целиком, чтобы в последствии отдать этот кусок некой внешней утилиты на анализ/компилинг. Как это лучше сделать?


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB