Victor-Y-Fadeev
released this
16 Feb 11:03
·
101 commits
to master
since this release
Реализован новый препроцессор РуСи:
- Новый алгоритм позиционирования на основе
#line
с Си совместимостью - Полноценная поддержка многофайловости
- Добавлена поддержка
-D
флага для определения макросов из консоли - Запрещены плавающие операции в выражениях препроцессора
- Все директивы теперь строго однострочные, за исключением блочных
- Поддержка переноса строки обратным слешем
- Поддержка отделения
#
символа от имени директивы - Добавлены операторы препроцессора
#
и##
для однострочных макросов - Добавлена предварительная обработка аргументов вызова макроса
- Учтены области видимости аргументов
#macro
директивы - Контроль глубины подключения:
MAX_INCLUDE_DEPTH
- Контроль глубины рекурсии вызовов:
MAX_CALL_DEPTH
- Контроль количества итераций циклов:
MAX_ITERATION
- Вычислитель на основе алгоритма Бауэра и Замельзона
Список директив препроцессора:
#include
,#INCLUDE
,#подключить
,#ПОДКЛЮЧИТЬ
#line
,#LINE
,#строка
,#СТРОКА
#define
,#DEFINE
,#определить
,#ОПРЕДЕЛИТЬ
#set
,#SET
,#переопределить
,#ПЕРЕОПРЕДЕЛИТЬ
#undef
,#UNDEF
,#разопределить
,#РАЗОПРЕДЕЛИТЬ
#macro
,#MACRO
,#макро
,#МАКРО
#endm
,#ENDM
,#конецм
,#КОНЕЦМ
#ifdef
,#IFDEF
,#еслибыл
,#ЕСЛИБЫЛ
#ifndef
,#IFNDEF
,#еслинебыл
,#ЕСЛИНЕБЫЛ
#if
,#IF
,#если
,#ЕСЛИ
#elif
,#ELIF
,#инесли
,#ИНЕСЛИ
#else
,#ELSE
,#иначе
,#ИНАЧЕ
#endif
,#ENDIF
,#конецесли
,#КОНЕЦЕСЛИ
#eval
,#EVAL
,#вычислить
,#ВЫЧИСЛИТЬ
#while
,#WHILE
,#пока
,#ПОКА
#endw
,#ENDW
,#конецп
,#КОНЕЦП
Список операторов вычислителя по приоритетам:
- Унарные:
~
,!
,-
,+
- Бинарные:
*
,/
,%
+
,-
>>
,<<
<
,>
,<=
,>=
==
,!=
&
|
&&
||