Skip to content

Compiler v2.6.0

Latest
Compare
Choose a tag to compare
@Victor-Y-Fadeev Victor-Y-Fadeev released this 16 Feb 11:03
· 101 commits to master since this release
ef441d5

Реализован новый препроцессор РуСи:

  • Новый алгоритм позиционирования на основе #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, #конецп, #КОНЕЦП

Список операторов вычислителя по приоритетам:

  • Унарные:
    • ~, !, -, +
  • Бинарные:
    • *, /, %
    • +, -
    • >>, <<
    • <, >, <=, >=
    • ==, !=
    • &
    • |
    • &&
    • ||