void symeSetLib(Syme syme, Lib lib) { Lib clib = NULL; if (syme->kind != SYME_Trigger && syme->lib != NULL && symeSameLibs(syme)) clib = symeConstLib(syme); syme->lib = lib; if (clib) symeSetConstLib(syme, clib); }
void otTransferFoamInfoToSyme(Syme syme, Foam unit) { Foam def, prog; int cNum = symeConstNum(syme); if (symeConstLib(syme) == NULL && cNum != SYME_NUMBER_UNASSIGNED) { def = unit->foamUnit.defs->foamDDef.argv[cNum]; prog = def->foamDef.rhs; if (foamTag(prog) == FOAM_Prog && foamProgHasNoEnvUse(prog)) otSymeConstSetEnvIndep(syme); else otSymeConstClrEnvIndep(syme); } }
Bool genHasConstNum(Syme syme) { Length dindex; if (symeExtension(syme)) syme = symeExtension(syme); if (symeHasConstNum(syme) && symeConstLib(syme) != NULL) return true; dindex = symeDefnNum(syme); if (0 < dindex && dindex < gen0SymeTableC && gen0SymeTableV[dindex]) { symeSetConstNum(syme, symeConstNum(gen0SymeTableV[dindex])); symeSetHashNum(syme, symeHashNum(gen0SymeTableV[dindex])); symeSetDVMark(syme, symeDVMark(gen0SymeTableV[dindex])); } return symeHasConstNum(syme); }