aboutsummaryrefslogtreecommitdiff
path: root/core/make_binders.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/make_binders.py')
-rw-r--r--core/make_binders.py154
1 files changed, 77 insertions, 77 deletions
diff --git a/core/make_binders.py b/core/make_binders.py
index 758472296..72ca3286f 100644
--- a/core/make_binders.py
+++ b/core/make_binders.py
@@ -168,94 +168,94 @@ MethodBind* create_method_bind($ifret R$ $ifnoret void$ (T::*p_method)($arg, P@$
def make_version(template,nargs,argmax,const,ret):
- intext=template
- from_pos=0
- outtext=""
+ intext=template
+ from_pos=0
+ outtext=""
- while(True):
- to_pos=intext.find("$",from_pos)
- if (to_pos==-1):
- outtext+=intext[from_pos:]
- break
- else:
- outtext+=intext[from_pos:to_pos]
- end=intext.find("$",to_pos+1)
- if (end==-1):
- break # ignore
- macro=intext[to_pos+1:end]
- cmd=""
- data=""
+ while(True):
+ to_pos=intext.find("$",from_pos)
+ if (to_pos==-1):
+ outtext+=intext[from_pos:]
+ break
+ else:
+ outtext+=intext[from_pos:to_pos]
+ end=intext.find("$",to_pos+1)
+ if (end==-1):
+ break # ignore
+ macro=intext[to_pos+1:end]
+ cmd=""
+ data=""
- if (macro.find(" ")!=-1):
- cmd=macro[0:macro.find(" ")]
- data=macro[macro.find(" ")+1:]
- else:
- cmd=macro
+ if (macro.find(" ")!=-1):
+ cmd=macro[0:macro.find(" ")]
+ data=macro[macro.find(" ")+1:]
+ else:
+ cmd=macro
- if (cmd=="argc"):
- outtext+=str(nargs)
- if (cmd=="ifret" and ret):
- outtext+=data
- if (cmd=="ifargs" and nargs):
- outtext+=data
- if (cmd=="ifretargs" and nargs and ret):
- outtext+=data
- if (cmd=="ifconst" and const):
- outtext+=data
- elif (cmd=="ifnoconst" and not const):
- outtext+=data
- elif (cmd=="ifnoret" and not ret):
- outtext+=data
- elif (cmd=="iftempl" and (nargs>0 or ret)):
- outtext+=data
- elif (cmd=="arg,"):
- for i in range(1,nargs+1):
- if (i>1):
- outtext+=", "
- outtext+=data.replace("@",str(i))
- elif (cmd=="arg"):
- for i in range(1,nargs+1):
- outtext+=data.replace("@",str(i))
- elif (cmd=="noarg"):
- for i in range(nargs+1,argmax+1):
- outtext+=data.replace("@",str(i))
- elif (cmd=="noarg"):
- for i in range(nargs+1,argmax+1):
- outtext+=data.replace("@",str(i))
+ if (cmd=="argc"):
+ outtext+=str(nargs)
+ if (cmd=="ifret" and ret):
+ outtext+=data
+ if (cmd=="ifargs" and nargs):
+ outtext+=data
+ if (cmd=="ifretargs" and nargs and ret):
+ outtext+=data
+ if (cmd=="ifconst" and const):
+ outtext+=data
+ elif (cmd=="ifnoconst" and not const):
+ outtext+=data
+ elif (cmd=="ifnoret" and not ret):
+ outtext+=data
+ elif (cmd=="iftempl" and (nargs>0 or ret)):
+ outtext+=data
+ elif (cmd=="arg,"):
+ for i in range(1,nargs+1):
+ if (i>1):
+ outtext+=", "
+ outtext+=data.replace("@",str(i))
+ elif (cmd=="arg"):
+ for i in range(1,nargs+1):
+ outtext+=data.replace("@",str(i))
+ elif (cmd=="noarg"):
+ for i in range(nargs+1,argmax+1):
+ outtext+=data.replace("@",str(i))
+ elif (cmd=="noarg"):
+ for i in range(nargs+1,argmax+1):
+ outtext+=data.replace("@",str(i))
- from_pos=end+1
+ from_pos=end+1
- return outtext
+ return outtext
def run(target, source, env):
- versions=10
- versions_ext=6
- text=""
- text_ext=""
+ versions=10
+ versions_ext=6
+ text=""
+ text_ext=""
- for i in range(0,versions+1):
+ for i in range(0,versions+1):
- t=""
- t+=make_version(template,i,versions,False,False)
- t+=make_version(template_typed,i,versions,False,False)
- t+=make_version(template,i,versions,False,True)
- t+=make_version(template_typed,i,versions,False,True)
- t+=make_version(template,i,versions,True,False)
- t+=make_version(template_typed,i,versions,True,False)
- t+=make_version(template,i,versions,True,True)
- t+=make_version(template_typed,i,versions,True,True)
- if (i>=versions_ext):
- text_ext+=t
- else:
- text+=t
+ t=""
+ t+=make_version(template,i,versions,False,False)
+ t+=make_version(template_typed,i,versions,False,False)
+ t+=make_version(template,i,versions,False,True)
+ t+=make_version(template_typed,i,versions,False,True)
+ t+=make_version(template,i,versions,True,False)
+ t+=make_version(template_typed,i,versions,True,False)
+ t+=make_version(template,i,versions,True,True)
+ t+=make_version(template_typed,i,versions,True,True)
+ if (i>=versions_ext):
+ text_ext+=t
+ else:
+ text+=t
- f=open(target[0].path,"w")
- f.write(text)
- f.close()
+ f=open(target[0].path,"w")
+ f.write(text)
+ f.close()
- f=open(target[1].path,"w")
- f.write(text_ext)
- f.close()
+ f=open(target[1].path,"w")
+ f.write(text_ext)
+ f.close()