| 
									
										
										
										
											1995-03-02 14:05:29 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # Example input file for modulator if you don't have tk. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # You may also have to strip some imports out of modulator to make | 
					
						
							|  |  |  | # it work. | 
					
						
							| 
									
										
										
										
											1995-05-16 13:43:09 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | import genmodule | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-03-02 14:05:29 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # Generate code for a simple object with a method called sample | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | o = genmodule.object() | 
					
						
							|  |  |  | o.name = 'simple object' | 
					
						
							|  |  |  | o.abbrev = 'simp' | 
					
						
							|  |  |  | o.methodlist = ['sample'] | 
					
						
							|  |  |  | o.funclist = ['new'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Generate code for an object that looks numberish | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | o2 = genmodule.object() | 
					
						
							|  |  |  | o2.name = 'number-like object' | 
					
						
							|  |  |  | o2.abbrev = 'nl' | 
					
						
							|  |  |  | o2.typelist = ['tp_as_number'] | 
					
						
							|  |  |  | o2.funclist = ['new', 'tp_repr', 'tp_compare'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Generate code for a method with a full complement of functions, | 
					
						
							|  |  |  | # some methods, accessible as sequence and allowing structmember.c type | 
					
						
							|  |  |  | # structure access as well. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | o3 = genmodule.object() | 
					
						
							|  |  |  | o3.name = 'over-the-top object' | 
					
						
							|  |  |  | o3.abbrev = 'ot' | 
					
						
							|  |  |  | o3.methodlist = ['method1', 'method2'] | 
					
						
							|  |  |  | o3.funclist = ['new', 'tp_dealloc', 'tp_print', 'tp_getattr', 'tp_setattr', | 
					
						
							| 
									
										
										
										
											2003-10-24 20:09:23 +00:00
										 |  |  |             'tp_compare', 'tp_repr', 'tp_hash'] | 
					
						
							| 
									
										
										
										
											1995-03-02 14:05:29 +00:00
										 |  |  | o3.typelist = ['tp_as_sequence', 'structure'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Now generate code for a module that incorporates these object types. | 
					
						
							|  |  |  | # Also add the boilerplates for functions to create instances of each | 
					
						
							|  |  |  | # type. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | m = genmodule.module() | 
					
						
							|  |  |  | m.name = 'sample' | 
					
						
							|  |  |  | m.abbrev = 'sample' | 
					
						
							|  |  |  | m.methodlist = ['newsimple', 'newnumberish', 'newott'] | 
					
						
							|  |  |  | m.objects = [o, o2, o3] | 
					
						
							| 
									
										
										
										
											1995-05-16 13:43:09 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | fp = open('EXAMPLEmodule.c', 'w') | 
					
						
							|  |  |  | genmodule.write(fp, m) | 
					
						
							|  |  |  | fp.close() |