local void testScobindConditionMulti(void) { Stab stabGlobal, stabFile, stab; AbSyn ab; initFile(); stabGlobal = stabNewGlobal(); stabFile = stabNewFile(stabGlobal); stab = stabPushLevel(stabFile, sposNone, STAB_LEVEL_LARGE); finiFile(); return; /* ideally, I'd like to test this here, but comsgNote (used for multiple defs) doesn't play nice. */ #if 0 AbSyn ab = abqParse("if A then { f: X == 1; f: X == 1}"); scopeBind(stab, ab); Symbol sym_f = symInternConst("f"); scobindTestCheckUnique(stab, sym_f); #endif }
AbSynList abqParseLines(StringList lines) { AbSynList result = listNil(AbSyn); while (lines != listNil(String)) { result = listCons(AbSyn)(abqParse(car(lines)), result); lines = listFreeCons(String)(lines); } return listNReverse(AbSyn)(result); }
local void testScobind(void) { Stab stabGlobal, stabFile, stab; AbSyn ab; initFile(); stabGlobal = stabNewGlobal(); stabFile = stabNewFile(stabGlobal); stab = stabPushLevel(stabFile, sposNone, STAB_LEVEL_LARGE); ab = abqParse("X: with == add"); scopeBind(stab, ab); scobindTestCheckUnique(stab, symInternConst("X")); finiFile(); }
local void testScobindCondition(void) { Stab stabGlobal, stabFile, stab; AbSyn ab; Symbol sym_f; initFile(); stabGlobal = stabNewGlobal(); stabFile = stabNewFile(stabGlobal); stab = stabPushLevel(stabFile, sposNone, STAB_LEVEL_LARGE); ab = abqParse("if A then f: () -> ()"); scopeBind(stab, ab); sym_f = symInternConst("f"); scobindTestCheckUnique(stab, sym_f); finiFile(); }