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