Контексты файлов
 
Поскольку #includes может быть посреди входных файлов, лексер должен втолкнуть (Push) контексты файла в стек. Файловый входной буфер, буфер макрорасширения и очередь маркера образуют так называемый "контекст". Это определенный файл, и он должен быть записан (Pushed) в стек, так, чтобы лексер мог вернуть родителя (после парсинга #include), не теряя маркеров или текст макроса. Обратите внимание на то, что макросы могут содержать #includes тоже.

fb.bas:fbIncludeFile() в основном состоит из:
lexPush()
cProgram()
lexPop()