translator.c:main translator.c:doBatchSpec parser.y:obj_heading action routine EnterObjectName -- initial entry of obj name into symtab chkForObjRedef -- do what the name says HashAllocSymtabEntry Enter PutCppList -- put obj sym in decl-order list, for subsequent traversal NewLevel -- create and enter a new symtab for this obj AllocSymtab parser.y:object_spec action routine ExitObject -- do a bit of init, including putting pointer to symtab entry in obj's parse tree addObject -- doesn't do anything; don't know wtf it ever did LeaveLevel -- move back up to parent symtab, from this obj's symtab parser.y:entity_spec action routine EnterObject -- "Enter" is a misnomer here; what's happening is pass 1.0 of type construction; the function comment explains things further MakeNameList -- make flat list of components, mostly for browser MakeNameList1 -- helper CopyAtomNode -- not sure when/if this is called; see its comment BuildCompType -- build the actual type struct; see the comments BuildOpaqueType -- one-liner that builds a new opaque TypeStruct BuildCompType1 -- little brother BuildAtomType -- builds an ident type for an atom node BuildOrFetchSymLitType BuildNameTypePairType BuildList BuildAnd BuildAndOrFields BuildRightField BuildOr BuildOp