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