void run(int num) { int k = num, s=0; cls2(); while(k--) while(data[s++] != 0); gotoxy(10, 6); printf("Loading..."); gotoxy((32-strlen(data+s))/2, 8); printf("%s", data+s); pload2(num); }
int main(int argc, char* argv[]) { std::cout << "\n Testing ActionsAndRules class\n " << std::string(30,'=') << std::endl; RelationshipAnal* p = new RelationshipAnal; TypeAnal* q = new TypeAnal; try { PrintPreproc pp; PreprocStatement pps; pps.addAction(&pp); FunctionDefinition fnd; PrintFunction prt; fnd.addAction(&prt); ClassStructEnumDefinition cls1; std::vector<std::string> classResult; PrintClass cls2(&classResult); cls1.addAction(&cls2); InheritanceDetection* cls3 = new InheritanceDetection; InheritanceAction* cls4 = new InheritanceAction(q, p); cls3->addAction(cls4); Toker toker("../ActionsAndRules.h"); SemiExp se(&toker); Parser parser(&se); parser.addRule(&pps); parser.addRule(&fnd); parser.addRule(&cls1); parser.addRule(cls3); while(se.get()) parser.parse(); std::cout << "\n\n"; } catch(std::exception& ex) { std::cout << "\n\n " << ex.what() << "\n\n"; } }
void tst_QScriptClass::newInstance() { QScriptEngine eng; TestClass cls(&eng); QScriptValue obj1 = eng.newObject(&cls); QVERIFY(!obj1.data().isValid()); QVERIFY(obj1.prototype().strictlyEquals(cls.prototype())); QEXPECT_FAIL("", "classname is not implemented", Continue); QCOMPARE(obj1.toString(), QString::fromLatin1("[object TestClass]")); QCOMPARE(obj1.scriptClass(), (QScriptClass*)&cls); QScriptValue num(&eng, 456); QScriptValue obj2 = eng.newObject(&cls, num); QVERIFY(obj2.data().strictlyEquals(num)); QVERIFY(obj2.prototype().strictlyEquals(cls.prototype())); QCOMPARE(obj2.scriptClass(), (QScriptClass*)&cls); QScriptValue obj3 = eng.newObject(); QCOMPARE(obj3.scriptClass(), (QScriptClass*)0); obj3.setScriptClass(&cls); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls); obj3.setScriptClass(0); QCOMPARE(obj3.scriptClass(), (QScriptClass*)0); obj3.setScriptClass(&cls); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls); TestClass cls2(&eng); obj3.setScriptClass(&cls2); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls2); // undefined behavior really, but shouldn't crash QScriptValue arr = eng.newArray(); QVERIFY(arr.isArray()); QCOMPARE(arr.scriptClass(), (QScriptClass*)0); QTest::ignoreMessage(QtWarningMsg, "QScriptValue::setScriptClass() failed: cannot change class of non-QScriptObject"); arr.setScriptClass(&cls); QEXPECT_FAIL("", "Changing class of arbitrary script object is not allowed (it's OK)", Continue); QCOMPARE(arr.scriptClass(), (QScriptClass*)&cls); QEXPECT_FAIL("", "Changing class of arbitrary script object is not allowed (it's OK)", Continue); QVERIFY(!arr.isArray()); QVERIFY(arr.isObject()); }
void tst_QScriptClass::newInstance() { QScriptEngine eng; TestClass cls(&eng); QScriptValue obj1 = eng.newObject(&cls); QVERIFY(!obj1.data().isValid()); QVERIFY(obj1.prototype().strictlyEquals(cls.prototype())); QCOMPARE(obj1.toString(), QString::fromLatin1("[object TestClass]")); QCOMPARE(obj1.scriptClass(), (QScriptClass*)&cls); QScriptValue num(&eng, 456); QScriptValue obj2 = eng.newObject(&cls, num); QVERIFY(obj2.data().strictlyEquals(num)); QVERIFY(obj2.prototype().strictlyEquals(cls.prototype())); QCOMPARE(obj2.scriptClass(), (QScriptClass*)&cls); QScriptValue obj3 = eng.newObject(); QCOMPARE(obj3.scriptClass(), (QScriptClass*)0); obj3.setScriptClass(&cls); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls); obj3.setScriptClass(0); QCOMPARE(obj3.scriptClass(), (QScriptClass*)0); obj3.setScriptClass(&cls); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls); TestClass cls2(&eng); obj3.setScriptClass(&cls2); QCOMPARE(obj3.scriptClass(), (QScriptClass*)&cls2); // undefined behavior really, but shouldn't crash QScriptValue arr = eng.newArray(); QVERIFY(arr.isArray()); QCOMPARE(arr.scriptClass(), (QScriptClass*)0); arr.setScriptClass(&cls); QCOMPARE(arr.scriptClass(), (QScriptClass*)&cls); QVERIFY(!arr.isArray()); QVERIFY(arr.isObject()); }