| QBE
    | 

| Макросы | |
| #define | O(op, t, cf) [O##op]={#op, t, cf}, | 
| #define | X(j) [J##j] = #j, | 
| Перечисления | |
| enum | { Ke = -2, Km = Kl } | 
| enum | PState { PXXX, PLbl, PPhi, PIns, PEnd } | 
| enum | { Txxx = 0, Tloadw = NPubOp, Tloadl, Tloads, Tloadd, Talloc1, Talloc2, Tcall, Tenv, Tphi, Tjmp, Tjnz, Tret, Texport, Tfunc, Ttype, Tdata, Talign, Tl, Tw, Th, Tb, Td, Ts, Tz, Tint, Tflts, Tfltd, Ttmp, Tlbl, Tglo, Ttyp, Tstr, Tplus, Teq, Tcomma, Tlparen, Trparen, Tlbrace, Trbrace, Tnl, Tdots, Teof, Ntok } | 
| enum | { BMask = 8191, K = 3233235, M = 23 } | 
| Функции | |
| void | err (char *s,...) | 
| void | parse (FILE *f, char *path, void(*data)(Dat *), void(*func)(Fn *)) | 
| Парсит файл с программой на QBE IL.  Подробнее... | |
| void | printref (Ref r, Fn *fn, FILE *f) | 
| void | printfn (Fn *fn, FILE *f) | 
| Переменные | |
| Op | optab [NOp] | 
| Массив всех операций.  Подробнее... | |
| #define X | ( | j | ) | [J##j] = #j, | 
| anonymous enum | 
| void err | ( | char * | s, | 
| ... | |||
| ) | 
См. определение в файле parse.c строка 134
Используется в gasemitdat() и ssacheck().
Парсит файл с программой на QBE IL.
Центральная функция, входная точка для запуска механизма парсинга программы на QBE IL из вашей программы, управляет процессом парсинга и дёргает коллбэки
| f | Файл с текстом программы | 
| path | Путь к файлу с текстом программы | 
| data | Указатель на функцию (принимающую на вход указатель на структуру Dat), которой передаётся управление для обработки глобального объекта данных из кода программы | 
| func | Указатель на функцию (принимающую на вход указатель на структуру Fn), которой передаётся управление для обработки функций из кода программы | 
| void printfn | ( | Fn * | fn, | 
| FILE * | f | ||
| ) |