• 1 Введение
    • 1.1 Что такое M++
    • 1.2 Пример использования шаблонов M++ для проектов на C++
    • 1.3 Пример использования языка M++
  • 2 Инсталляция M++
    • 2.1 Компиляция M++
    • 2.2 Настройка скомпилированной версии M++
    • 2.3 Как M++ настроен у меня
  • 3 Готовые шаблоны M++ v.4
    • 3.1 Общая архитектура шаблонов
    • 3.2 Особенности языка
    • 3.3 Учитывание особенностей языка M++ при использовании шаблонов
  • 4 Шаблон для C++
    • 4.1 Возможности и требования шаблона для C++
      • 4.1.1 Проектный файл
      • 4.1.2 Управление построением проекта
      • 4.1.3 Каталоги для объектных файлов
      • 4.1.4 Анализатор C++ зависимостей
      • 4.1.5 Переносимость проектных файлов
    • 4.2 Структура шаблона для C++
    • 4.3 Переменные шаблона для C++
      • 4.3.1 appMode
      • 4.3.2 screenMode
      • 4.3.3 target
      • 4.3.4 cppSource
      • 4.3.5 libs, sysLibs, libPaths
      • 4.3.6 defines
      • 4.3.7 stdIncludePath
      • 4.3.8 dependOnPrjs
      • 4.3.9 resourceSource
      • 4.3.10 resFileDepends
      • 4.3.11 pchHeaderFile, pchCppFile
      • 4.3.12 objPath
      • 4.3.13 impLib
      • 4.3.14 targetCopies
      • 4.3.15 impLibCopies
      • 4.3.17 cppOptions, linkOptions, libOptions, resCompOptions, resBuildOptions, impLibOptions
    • 4.4 Символы препроцессора шаблона для C++
      • 4.4.1 BORLAND
      • 4.4.2 CLEANUP
      • 4.4.3 DEBUG
      • 4.4.4 GNU
      • 4.4.5 IBM
      • 4.4.6 ICC
      • 4.4.7 MINGW
      • 4.4.8 MSC
      • 4.4.9 MXX4_PRINT_MAKE_TREE
      • 4.4.10 MXX4_VERBOSE
      • 4.4.11 NOAUTODEP
      • 4.4.12 NOBUILD
      • 4.4.13 NODELTEMPFILES
      • 4.4.14 NT
      • 4.4.15 OS2
      • 4.4.16 REBUILD
      • 4.4.17 RELEASE
      • 4.4.18 UNIX
      • 4.4.19 WATCOM
    • 4.5 Примеры и советы по применению шаблона M++ для C++
      • 4.5.1 Примеры организации файловой структуры каталогов
      • 4.5.2 Пример включения в проект собственных make-правил
      • 4.5.3 Простой пример использования dependOnPrjs и default.4xx
      • 4.5.4 Пример использования MFC и запуска mxxc из VisualStudio
  • 5 Шаблон для составных проектов
    • 5.1 Назначение
    • 5.2 Принцип работы
    • 5.3 Состав шаблона
    • 5.4 Переменные шаблона
      • 5.4.1 prjs
      • 5.4.2 ignore_result
    • 5.5 Особенность
  • 6 Утилита mxxc
    • 6.1 Общие правила оформления аргументов
    • 6.2 Аргументы mxxc
      • 6.2.1 -a
      • 6.2.2 -aa
      • 6.2.3 -api
      • 6.2.4 -c
      • 6.2.5 -d
      • 6.2.6 -i
      • 6.2.7 -pre
      • 6.2.8 -sf
      • 6.2.9 -u
  • 7 Язык M++
    • 7.1 Структура программы
    • 7.2 Элементы языка
      • 7.2.1 Алфавит и лексические элементы
      • 7.2.2 Комментарии
      • 7.2.3 Зарезервированные ключевые слова
      • 7.2.4 Строки
    • 7.3 Переменные
      • 7.3.1 Декларация строковой переменной
      • 7.3.2 Декларация переменной-вектора
    • 7.4 Выражения
    • 7.5 Операции
      • 7.5.1 Операции присваивания
      • 7.5.2 Логические операции
      • 7.5.3 Операции равенства
      • 7.5.4 Операция сложения
      • 7.5.5 Приоритеты операций и порядок вычисления выражений
    • 7.6 Оператор if
    • 7.7 Оператор выражения
    • 7.8 Оператор foreach
    • 7.9 Оператор halt
    • 7.10 Пустой оператор
    • 7.11 Составной оператор
    • 7.12 Препроцессор языка M++
  • 8 M++ API
    • 8.1 cpp_add_file
    • 8.2 cpp_add_include_path
    • 8.3 cpp_query_dependences_for
    • 8.4 cpp_run_analyzer
    • 8.5 io_file_close
    • 8.6 io_file_create
    • 8.7 io_file_open
    • 8.8 io_print
    • 8.9 io_print_err
    • 8.10 make_build_node
    • 8.11 make_define_node
    • 8.12 make_is_node_exists
    • 8.13 make_print_tree_from
    • 8.14 make_query_node_build_cmds
    • 8.15 make_query_node_dependences
    • 8.16 mxxc_query_cmd_line_args
    • 8.17 mxxc_query_main_file
    • 8.18 mxxc_set_exit_code
    • 8.19 str_array_to_str
    • 8.20 str_correct_path_separators
    • 8.21 str_escape_encode
    • 8.22 str_exclude_file_ext
    • 8.23 str_exclude_file_path
    • 8.24 str_extract_file_ext
    • 8.25 str_extract_file_name
    • 8.26 str_extract_file_path
    • 8.27 sys_change_cwd
    • 8.28 sys_change_file_mtime
    • 8.29 sys_exists
    • 8.30 sys_find_directories
    • 8.31 sys_find_directories_subdir
    • 8.32 sys_find_files
    • 8.33 sys_find_files_subdir
    • 8.34 sys_get_cwd
    • 8.35 sys_get_env
    • 8.36 sys_get_file_atime
    • 8.37 sys_get_file_ctime
    • 8.38 sys_get_file_mtime
    • 8.39 sys_get_file_size
    • 8.40 sys_remove
    • 8.41 sys_run
    • 8.42 utime_is_later_than
    • 8.43 utime_to_str