В моем переводчике есть встроенные функции, доступные на языке, например print
exit
input
и т. Д.
Эти функции, очевидно, могут быть доступны изнутри языка. Затем интерпретатор ищет соответствующую функцию с правильным именем в векторе и вызывает ее через указатель, сохраненный с ее именем.
Итак, я собираю все эти функции в такие файлы, как io.cpp
, string.cpp
, arithmetic.cpp
. Но мне нужно добавить каждую функцию в список функций в интерпретаторе, чтобы ее можно было найти.
Итак, в этих файлах функций у меня есть такие вещи:
void print( arg )
{
cout << arg.ToString;
}
Я бы добавил эту функцию печати в список функций переводчика с помощью:
interpreter.AddFunc( "print", print );
- Но куда мне звонить
interpreter.AddFunc
?
Я не могу просто поместить его там под функцией печати, поскольку она должна быть в функции в соответствии с синтаксисом C ++.
- Где и как все функции должны быть добавлены в список?