В чем разница между предварительной обработкой, директивами и дополнительными модулями?
Я работаю инструментом разработчика, и в нем вы можете экспортировать HTML. Он также сохраняет в свой собственный формат файла (не HTML). С помощью этого инструмента я экспортирую, заменяю и генерирую код, но я не уверен, какова терминология для каждой из вещей, которые я делаю.
В инструменте разработчика у меня есть представление дизайна и возможность экспорта в HTML. Основываясь на параметрах пользовательских настроек на одной из панелей, я добавлю дополнительный код вокруг сгенерированного HTML-кода разметки. Это происходит в коде инструмента, когда пользователь нажимает кнопку экспорта. Это инструкция предварительной обработки?
Позже пользователь сохраняет свой файл. Я сохраняю эту информацию, инструкции по добавлению дополнительного кода при экспорте, в текстовый файл. Это называется директивами?
Что такое смешанные модули?
Я надеюсь это имеет смысл.
Также этот инструмент генерирует разметку HTML и в приведенном выше примере вставляет некоторый код выше. Это компилятор?
ОБНОВИТЬ:
Это относится к проекту с виртуальной машиной Flash Player и ActionScript, поэтому язык с такими словами, как "mixins", "preprocessing" и "[compiler] директивы", может быть локализован в этом поле. Я предполагаю, что именно поэтому люди понижают. Я думаю, что кто-то должен оставить комментарий, если он понизит исходный пост.
1 ответ
Я постараюсь ответить на некоторые из вопросов, которые, я думаю, вы задаете.
Что такое предварительная обработка в контексте ActionScript 3?
Предварительная обработка означает выполнение макроязыка перед компиляцией, который изменяет код непосредственно перед его компиляцией. Самым близким к препроцессору для ActionScript3, который я могу найти, является компилятор MXMLC для Flex SDK, который поддерживает нечто эквивалентное #define
с.
Это то, что вы называете директивой компилятора, о чем свидетельствует документация MXMLC об условной компиляции.
Что такое смешанные модули?
Согласно Adobe, "Миксин предоставляет простой способ динамически добавлять методы существующего класса в пользовательский класс без использования наследования. Вы смешиваете класс, а затем добавляете члены этого класса в объект-прототип пользовательского класса".
Основываясь на параметрах пользовательских настроек на одной из панелей, я добавлю дополнительный код вокруг сгенерированного HTML-кода разметки. Это происходит в коде инструмента, когда пользователь нажимает кнопку экспорта. Это инструкция предварительной обработки?
В зависимости от того, как выглядит этот дополнительный код, вы можете назвать его шаблоном кода, если это просто обычный код ActionScript3. Если вы добавляете дополнительные методы к существующим классам, назовите их mixins. Если вы просто добавляете дополнительный код, вы можете назвать его смешанным и конфликтовать с терминологией Adobe, что, вероятно, нежелательно.
Ваш инструмент сам по себе может рассматриваться как своего рода препроцессор - я ожидаю, что препроцессор использует подсказки, приведенные в коде (например, используя специальные директивы препроцессора, такие как #define
или сам код ActionScript3) для преобразования кода.
Что касается формулировки вашего вопроса, я чувствую, что он задан немного задом наперед. Я мог бы сформулировать тот же вопрос следующим образом (если я правильно понял):
В ActionScript3, в чем разница между терминами предварительной обработки, директивами и миксинами? Причина, по которой я спрашиваю, заключается в том, что я делаю инструмент разработчика, который берет код ActionScript3 и добавляет дополнительный код вокруг него. Для GUI этого инструмента я должен ссылаться на этот код, и я не уверен, что любое из этих трех слов соответствует.