Changeset 5cdbfe in git for dyn_modules/bigintm
- Timestamp:
- Mar 15, 2011, 7:17:48 PM (13 years ago)
- Branches:
- (u'spielwiese', '91e5db82acc17434e4062bcfa44e6efa7d41fd30')
- Children:
- f247337dd844f01e85a8379ff9c1e26fe7eea863
- Parents:
- 92e0ebb492f002a11e78b302b3758d32aedea17e
- Location:
- dyn_modules/bigintm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
dyn_modules/bigintm/bigintm.cc
r92e0eb r5cdbfe 106 106 // interpreter: a1 is ist bigintm 107 107 assume( r->Typ() == bigintm_type_id ); 108 108 /* 109 // "typeof( <blackbox> )" is handled by 'blackboxDefaultOp1' 109 110 if (op==TYPEOF_CMD) 110 111 { … … 113 114 return FALSE; 114 115 } 116 */ 115 117 116 118 if( op=='(' ) // <bigintm> VAR(); … … 246 248 case '.': 247 249 { 248 Werror("bigintm_Op2: Op: '.': 2nd argument-type: '%s'(%d) in", Tok2Cmdname(a2->Typ()), a2->Typ()); 250 251 if (a2->name==NULL) 252 { 253 Werror("bigintm_Op2: Op: '.': 2nd argument-type: '%s'(%d) should be a NAME", Tok2Cmdname(a2->Typ()), a2->Typ()); 254 return TRUE; 255 } 256 257 Werror("bigintm_Op2: Op: '.': 2nd argument-type: '%s'(%d) is called '%s' in ", Tok2Cmdname(a2->Typ()), a2->Typ(), a2->name); 249 258 return blackboxDefaultOp2(op,res,a1,a2); 250 259 return TRUE; -
dyn_modules/bigintm/bigintm.tst
r92e0eb r5cdbfe 2 2 3 3 LIB("./bigintm.so"); 4 5 bigintm_print_load_counter(); 6 printBlackboxTypes(); 7 8 9 LIB("./bigintm.so"); 10 11 bigintm_print_load_counter(); 12 printBlackboxTypes(); 13 14 LIB("./bigintm.so"); 15 16 bigintm_print_load_counter(); 17 printBlackboxTypes(); 18 4 19 5 20 printBlackboxTypes(); … … 81 96 82 97 83 a - s;84 98 85 c == s; 99 100 101 102 86 103 87 104 c.s; 88 105 c.sss; 89 c. 0;106 c."a"; 90 107 108 109 110 option(yacc); 111 c - s; 112 c == s; // BUG? 113 option(noyacc); 114 115 116 117 c.0; // BUG? 118 option(yacc); 119 c.1; // BUG? 120 c. ; // BUG? 121 option(noyacc); 91 122 92 123 -
dyn_modules/bigintm/mod_main.cc
r92e0eb r5cdbfe 24 24 25 25 /// listing all blackbox types (debug stuff) 26 BOOLEAN printBlackboxTypes (leftv __res, leftv __v)26 BOOLEAN printBlackboxTypes0(leftv __res, leftv __v) 27 27 { 28 28 NoReturn(__res); … … 32 32 33 33 /// init the bigintm (a sample blackbox) type 34 BOOLEAN bigintm_setup (leftv __res, leftv __v)34 BOOLEAN bigintm_setup0(leftv __res, leftv __v) 35 35 { 36 36 NoReturn(__res); … … 38 38 } 39 39 40 static long int load_counter = -1; 41 42 /// init the bigintm (a sample blackbox) type 43 BOOLEAN print_load_counter(leftv __res, leftv __v) 44 { 45 Print("print_load_counter: load counter: %ld", load_counter); 46 Print(", printBlackboxTypes: %p", (void*)(printBlackboxTypes0)); 47 Print(", bigintm_setup: %p", (void*)(bigintm_setup0)); 48 PrintLn(); 49 50 NoReturn(__res); 51 return FALSE; 52 } 53 54 40 55 extern "C" 41 56 { 42 57 int mod_init(SModulFunctions* psModulFunctions) 43 58 { 44 psModulFunctions->iiAddCproc(currPack->libname,(char*)"printBlackboxTypes",FALSE, printBlackboxTypes); 45 psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_setup",FALSE, bigintm_setup); 46 return 0; 59 load_counter++; 60 61 if( !load_counter) 62 { 63 64 psModulFunctions->iiAddCproc(currPack->libname,(char*)"printBlackboxTypes",FALSE, printBlackboxTypes0); 65 psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_setup",FALSE, bigintm_setup0); 66 psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_print_load_counter",FALSE, print_load_counter); 67 68 // Q: should we call 'bigintm_setup' here??!?!? 69 return 0; 70 } 71 else 72 { 73 PrintS("ERROR: Sorry this dynamic module was already loaded...!!!"); 74 PrintLn(); 75 // Q: what about loading this module multipple times...? 76 return 0; // -1? - No difference!!! 77 78 } 79 47 80 } 48 81 }
Note: See TracChangeset
for help on using the changeset viewer.