static void lAddToTree(Symbol **fSymbols, Symbol *fSymb) { Symbol *lSymb; int lrev, frev; lSymb = *fSymbols; if (lSymb) { frev = GetReversedAtom(atable, fSymb->name); while (lSymb) { lrev = GetReversedAtom(atable, lSymb->name); if (lrev == frev) { CPPErrorToInfoLog("GetAtomString(atable, fSymb->name)"); break; } else { if (lrev > frev) { if (lSymb->left) { lSymb = lSymb->left; } else { lSymb->left = fSymb; break; } } else { if (lSymb->right) { lSymb = lSymb->right; } else { lSymb->right = fSymb; break; } } } } } else { *fSymbols = fSymb; } } // lAddToTree
Symbol *LookUpLocalSymbol(Scope *fScope, int atom) { Symbol *lSymb; int rname, ratom; ratom = GetReversedAtom(atable, atom); if (!fScope) fScope = CurrentScope; lSymb = fScope->symbols; while (lSymb) { rname = GetReversedAtom(atable, lSymb->name); if (rname == ratom) { return lSymb; } else { if (rname > ratom) { lSymb = lSymb->left; } else { lSymb = lSymb->right; } } } return NULL; } // LookUpLocalSymbol
static void lAddToTree(Symbol **fSymbols, Symbol *fSymb, Type *fType) { Symbol *lSymb; int lrev, frev; lSymb = *fSymbols; if (lSymb) { frev = GetReversedAtom(atable, fSymb->name); while (lSymb) { lrev = GetReversedAtom(atable, lSymb->name); if (lrev == frev) { InternalError(Cg->tokenLoc, 9999, "symbol \"%s\" already in table", GetAtomString(atable, fSymb->name)); break; } else { if (lrev > frev) { if (lSymb->left) { lSymb = lSymb->left; } else { lSymb->left = fSymb; break; } } else { if (lSymb->right) { lSymb = lSymb->right; } else { lSymb->right = fSymb; break; } } } } } else { *fSymbols = fSymb; } } // lAddToTree