Я хочу расширить C++ некоторыми ключевыми словами, например, «свойство», чтобы добавить свойства к классу/объекту (например, Visual Studio расширяет C++ в «управляемой» версии). Пример кода:Расширение C++ с новым ключевым словом
class Example {
public:
[...]
property int size {
get: {
return __size;
}
set: {
if(value > 0)
__size = value;
else
throw new Exception("Invalid Size");
}
};
};
Использование:
[...]
int totalSize = example1.size + example2.size + example3.size;
example1.size = 2 * example1.size;
То, что я хочу, чтобы использовать форму переводчика для перевода на C++ «расширенный» исходный код для «нормального» исходного кода, как QT MOC do, он анализирует исходный код C++ и генерирует другой исходный код C++, а QT «вещи» переведены на голый C++. Конечно, мне нужно будет расширить переводчик (напишите код, чтобы он мог понять, что делать с «ключевым словом свойства»). Знаете ли вы о «переводчике», который я могу использовать, чтобы делать то, что хочу?
Как насчет #define – stark
Noop. Я хочу добавить другие ключевые слова рядом с «свойством». Кроме того, как расширить, например, пример1.size использует только определяет? – user2089799
C++ - достаточно сложный язык для синтаксического анализа (или даже просто tokenize), что это будет довольно сложно. Выполнение этой идеи как «плохой» как «свойство» было бы совершенно безумным. Если вы потратите время на это, я надеюсь, что другие вещи, которые вы хотите, больше подходят для оправдания работы, чем «свойство». –