Changeset 79d8c07 in git
- Timestamp:
- Feb 21, 2017, 2:44:47 PM (7 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 080559c737ebc125b730ba125bdc1a1f5cb19587
- Parents:
- 2224177fc97923cba919ec6fe72b9521585e4b11
- Location:
- Singular/dyn_modules/python
- Files:
-
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/python/python.cc
r222417 r79d8c07 1 /*2 * This was automatically generated by modgen3 * version 0.24 * module python5 * Don't edit this file6 */7 8 9 #line 10 "python.cc"10 1 #include <stdlib.h> 11 2 #include <stdio.h> … … 25 16 #include <omalloc.h> 26 17 #include "python.h" 27 #line 19 "python.cc"28 29 idhdl enter_id(char *name, char *value, idtyp t)30 {31 idhdl h;32 33 h=enterid(omStrDup(name),0, t, &(currPack->idroot), TRUE/*FALSE*/);34 if(h!=NULL) {35 switch(t) {36 case STRING_CMD:37 omFree(IDSTRING(h));38 IDSTRING(h) = omStrDup(value);39 break;40 case PACKAGE_CMD: break;41 case PROC_CMD: break;42 }43 } else44 Warn("Cannot create '%s'\n", name);45 return(h);46 }47 48 #line 37 "python.cc"49 50 idhdl add_singular_proc(FILE* binfp, char *procname,int line,51 long pos, long end, BOOLEAN pstatic)52 {53 idhdl h;54 procinfov pi;55 char *tempstr;56 h = enter_id(procname, NULL, PROC_CMD);57 if(h == NULL) return NULL;58 59 pi = IDPROC(h);60 61 pi->libname = omStrDup(currPack->libname);62 pi->procname = omStrDup(procname);63 pi->language = LANG_SINGULAR;64 pi->ref = 1;65 pi->is_static = pstatic;66 pi->data.s.proc_start = pos;67 pi->data.s.def_end = pos;68 pi->data.s.help_start = 0L;69 pi->data.s.help_end = 0L;70 pi->data.s.body_start = pos;71 pi->data.s.body_end = end;72 pi->data.s.proc_end = end;73 pi->data.s.example_start = 0L;74 pi->data.s.proc_lineno = line;75 pi->data.s.body_lineno = line;76 pi->data.s.example_lineno = 0;77 pi->data.s.help_chksum = 0;78 79 rewind(binfp);80 fseek(binfp,pos,SEEK_CUR);81 tempstr=(char *)omAlloc(end-pos+2);82 memset(tempstr,0,end-pos+2);83 fread(tempstr,sizeof(char),end-pos+1,binfp);84 pi->data.s.body = omStrDup(tempstr);85 omFree(tempstr);86 87 return(h);88 }89 90 unsigned long crccheck(91 char *file92 )93 {94 unsigned char buf[BUFLEN1];95 unsigned long crc = 0;96 long length = 0;97 long bytes_read;98 register FILE *fp;99 100 // open the file101 fp = fopen (file, "rb");102 if (fp == NULL) return 0;103 104 // read the file chunk by chunk, determine the lenght and105 // start computing the checksum106 while ((bytes_read = fread (buf, 1, BUFLEN1, fp)) > 0)107 {108 unsigned char *cp = buf;109 length += bytes_read;110 while (bytes_read--)111 crc = (crc << 8) ^ crctab[((crc >> 24) ^ *(cp++)) & 0xFF];112 }113 114 // check if something went wrong and close the file115 if (ferror (fp)) return 0;116 if (fclose(fp)==EOF) return 0;117 118 // second part of checksum computation119 bytes_read = length;120 while (bytes_read > 0) {121 crc = (crc << 8) ^ crctab[((crc >> 24) ^ bytes_read) & 0xFF];122 bytes_read >>= 8;123 }124 125 crc = ~crc & 0xFFFFFFFF;126 127 return(crc);128 }129 130 void fill_help_package();131 void fill_example_package();132 133 #line 2 "python.mod"134 /*135 *136 * Test mod fuer modgen137 */138 18 139 19 #include <stdio.h> … … 144 24 #include "wrapper.h" 145 25 146 void mbpython(char* in);147 #line 17 "python.mod"148 149 150 #line 137 "python.cc"151 26 extern "C" { 152 27 //int mod_init( … … 154 29 // BOOLEAN(*func)(leftv res, leftv v)) 155 30 // ) 156 int mod_init( 157 SModulFunctions* psModulFunctions 158 ) 31 int mod_init( SModulFunctions* psModulFunctions) 159 32 { 160 idhdl h;161 char * tempstr;162 FILE * binfp;163 int ret;164 struct stat sb;165 166 tempstr = (char *)omAlloc(strlen(currPack->libname)+5);167 memset(tempstr,0,strlen(currPack->libname)+1);168 memcpy(tempstr,currPack->libname,strlen(currPack->libname));169 memcpy(tempstr+strlen(currPack->libname)-3,".bin",4);170 ret=stat(tempstr,&sb);171 if(ret==0) {172 if ((sb.st_mode & S_IFMT) == S_IFREG) {173 if (crccheck(tempstr)!=crcsum)174 { Warn("file %s does not agree with module version - ignoring file",tempstr);175 ret=-1;176 }177 if ((binfp = fopen(tempstr,"r")) == NULL) return -1;178 }179 else180 ret=-1;181 }182 183 fill_help_package();184 fill_example_package();185 186 #line 20 "python.mod"187 33 enter_id("category","tests", STRING_CMD); 188 #line 22 "python.mod"189 34 enter_id("version","$Id$", STRING_CMD); 190 #line 23 "python.mod"191 35 enter_id("info","LIBRARY: kernel.lib PROCEDURES OF GENERAL TYPE WRITEN IN C python(input); eval a string in python", STRING_CMD); 192 #line 26 "python.mod"193 #line 27 "python.mod"194 36 Py_Initialize(); 195 37 PyRun_SimpleString("from sys import path\n\ … … 198 40 init_Singular(); 199 41 200 #line 36 "python.mod"201 42 psModulFunctions->iiAddCproc(currPack->libname,"python",FALSE, mod_python); 202 //psModulFunctions->iiAddCproc("packagename","procname",FALSE, procedure);203 if(ret!=-1) fclose(binfp);204 43 return 0; 205 44 } 206 }207 45 208 #line 187 "python.cc"209 /* Help section */210 void fill_help_package() {211 212 #line 192 "python.cc"213 } /* End of Help section */214 215 /* Example section */216 void fill_example_package() {217 #line 43 "python.mod"218 enter_id("python_example",219 "\220 python(\"print 1+1\");\221 ", STRING_CMD);222 223 224 #line 206 "python.cc"225 } /* End of Example section */226 227 #line 36 "python.mod"228 46 BOOLEAN mod_python(leftv __res, leftv __h) 229 47 { 230 #line 37 "python.mod"231 #line 214 "python.cc"232 233 #line 38 "python.mod"234 #line 217 "python.cc"235 48 leftv __v = __h, __v_save; 236 49 int __tok = NONE, __index = 0; 237 50 sleftv __sa; leftv __za = &__sa; 238 51 char * a; 239 #line 38 "python.mod"240 241 242 #line 39 "python.mod"243 #line 226 "python.cc"244 52 if(__v==NULL) goto mod_python_error; 245 53 __tok = __v->Typ(); … … 254 62 if(__v!=NULL) { __tok = __v->Typ(); goto mod_python_error; } 255 63 256 #line 39 "python.mod" 257 258 mbpython(a); 259 #line 41 "python.mod" 260 #line 243 "python.cc" 64 PyRun_SimpleString(a); 261 65 __res->data = NULL; 262 66 __res->rtyp = END_RING; … … 268 72 return TRUE; 269 73 } 270 271 272 #line 254 "python.cc"273 #line 53 "python.mod"274 void mbpython(char* inp){275 PyRun_SimpleString(inp);276 } -
Singular/dyn_modules/python/python.h
r222417 r79d8c07 1 /*2 * This was automatically generated by modgen3 * version 0.24 * module python5 * Don't edit this file6 */7 8 9 #line 180 "python.cc"10 11 1 BOOLEAN mod_python(leftv res, leftv h); 12 unsigned long crcsum=3561112453;13 /*********************************************************************14 * crctab.h crctable necessary for the use of crccheck from utils.cc *15 *********************************************************************/16 # define BUFLEN1 (1 << 16)17 18 static unsigned long const crctab[256] =19 {20 0x0,21 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B,22 0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6,23 0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD,24 0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC,25 0x5BD4B01B, 0x569796C2, 0x52568B75, 0x6A1936C8, 0x6ED82B7F,26 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A,27 0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039,28 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58,29 0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033,30 0xA4AD16EA, 0xA06C0B5D, 0xD4326D90, 0xD0F37027, 0xDDB056FE,31 0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95,32 0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4,33 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0,34 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5,35 0x2AC12072, 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16,36 0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 0x7897AB07,37 0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C,38 0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1,39 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA,40 0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B,41 0xBB60ADFC, 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698,42 0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D,43 0x94EA7B2A, 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E,44 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 0xC6BCF05F,45 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34,46 0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80,47 0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB,48 0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A,49 0x58C1663D, 0x558240E4, 0x51435D53, 0x251D3B9E, 0x21DC2629,50 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C,51 0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF,52 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E,53 0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65,54 0xEBA91BBC, 0xEF68060B, 0xD727BBB6, 0xD3E6A601, 0xDEA580D8,55 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3,56 0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2,57 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71,58 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74,59 0x857130C3, 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640,60 0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 0x7B827D21,61 0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A,62 0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, 0x18197087,63 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC,64 0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D,65 0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE,66 0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB,67 0xDBEE767C, 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18,68 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 0x89B8FD09,69 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662,70 0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF,71 0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B472 }; -
Singular/dyn_modules/python/python.mod
r222417 r79d8c07 1 %{2 /*3 *4 * Python module5 */6 7 1 #include <stdio.h> 8 2 #include <stdlib.h> … … 13 7 14 8 void mbpython(char* in); 15 %}16 17 // some comments here18 19 category="tests";20 package="python_module";21 version = "$Id$";22 info ="LIBRARY: kernel.lib PROCEDURES OF GENERAL TYPE WRITEN IN C python(input); eval a string in python";23 //files= wrapper.cc;24 9 %modinitial 25 10 Py_Initialize(); … … 39 24 %declaration; 40 25 %typecheck; 41 mbpython(a);26 PyRun_SimpleString(a); 42 27 %return(); 43 28 } 44 example 45 { 46 python("print 1+1"); 47 } 29 %C 48 30 49 31 50 51 %%52 %C53 54 void mbpython(char* inp){55 56 PyRun_SimpleString(inp);57 58 59 }60 61 62
Note: See TracChangeset
for help on using the changeset viewer.