Вы можете увидеть реализацию в https://rosettacode.org/wiki/Compiler/AST_interpreter#COBOL
Познакомьтесь с остальными решениями набора задач компилятора, которые Стив Уильямс записал как набор записей COBOL.
Он выполнил все шаги в задаче
- Лексический анализатор
- Задача синтаксического анализатора
- Задача генератора кода
- Задача интерпретатора виртуальной машины
- AST Задача интерпретатора
Компилятор mini C, интерпретатор, VM. Работает шарм. См. https://rosettacode.org/wiki/Compiler/syntax_analyzer для грамматики языка. Назначение, строки, в то время как, если, печать, положить c, математические выражения и сравнения. Squiggly скобки блоков. Я почти уверен, что набор задач компилятора - это лучшее место для Rosetta Code.
Пример тестирования:
count = 1;
while (count < 10) {
print("count is: ", count, "\n");
count = count + 1;
}
Все источники COBOL работают так, как было объявлено при сборке. с GnuCOBOL. Вы получаете простой в управлении и расширении язык программирования, скомпилированный или интерпретированный. Различные решения, перечисленные в Rosetta Code, стоят времени, потраченного на чтение и испытание.