Продолжение (глюкнул браузер и ушло неполное письмо)...
При парсинге программы (для последующей кодогенерации) нужно хранить распаренную структуру (AST). Хорошо бы договориться по поводу формата представления, чтобы можно было легко взаимозаменять генераторы/парсеры.
В данный момент я это вижу так:
{
objId: 'module',
name: 'noname',
description: 'some comment for module',
imports: [],
consts: [],
types: [],
vars: [],
procs: [],
code: []
},
{
objId: 'procedure',
name: 'someProc',
description: 'some comment for procedure',
params: [],
result: {},
consts: [],
vars: [],
procs: [],
code: []
}