Code archives/Algorithms/The Ambiguity Engine.
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
This engine parses text, and builds up scope and object maps. You can very easily define your own scope entry points with nScop("Type") for example. It'll work on any type of source code. It's just the front end, but you can use it to convert code from one language to another, optimization..anything that relies on knowing the structrual relationship of parsed text. Some functions are not present, because they are not so free. Big plans for this(mark 2 obviously) once bmax is out for us window users(Aka the damned.) - Here's some example output, after running the actual bb source code through it. (It produces two text files) -- --Scope Name: --Obj Maps:35 --[ nswi("print","printf") --[ --[ const max_lines =5000 --[ ;-[] --[ const scope_main=1,scope_function =2,scope_class=3 --[ main.scope=new scope --[ ;-define seperators --[ nsep("*"):nsep("(") --[ nsep(")"):nsep("/") --[ nsep(","):nsep("'") --[ nsep(":"):nsep("*") --[ nsep("-"):nsep("(") --[ nsep(")"):nsep("+") --[ nsep("<"):nsep("[") --[ nsep("]"):nsep(chr(34)) --[ nsep(">"):nsep("\") --[ nsep(" "):nsep("->") --[ nsep("="):nres("function") --[ nres("if") --[ fscop.scop=nscop( "function") --[ cscop.scop=nscop( "class") --[ tscop.scop=nscop("type") --[ ;test.code=loadcode("helloworld.vnx") --[ test.code=loadcode("vcom.bb") --[ code_tocpp(test) --[ code_toconsoleapp(test,"simpletest.txt") --[ debug_code(test,"debugprisim.txt") --[ ;objmap("function(test,nope )") --[ ;lm.map=genmap("if a->2 then b=(5*6)+2",map) --[ waitkey --[ end --[ ;--c++ back end. --[ global l_file,l_life --[ ;-[ simple example prisim operation. a simple text compression algo] --[ const move_up=1,move_down=2 /\/\ ----Scope Name:sep ----Obj Maps:3 ----[ type sep ----[ field dat$ ----[ end type /\/\/\/\ ----Scope Name:scope ----Obj Maps:6 ----[ type scope ----[ field scopetype ;in most cases we can blindly assume ----[ field m.map[ max_lines],mc ----[ field sub.scope[2555],sc ----[ field name$ ----[ end type /\/\/\/\ ----Scope Name:chunk ----Obj Maps:6 ----[ type chunk ----[ field real$,issep ----[ field map$,entry ----[ field c_name$,amb ;ambiguity flag. nice.. ----[ field ext$ ;extra dat field, for code operations. ----[ end type /\/\/\/\ ----Scope Name:map ----Obj Maps:4 ----[ type map ----[ field c.chunk[2555],cc ----[ field dat$ ----[ end type /\/\/\/\ ----Scope Name:code ----Obj Maps:4 ----[ type code ----[ field m.map[ max_lines],mc ----[ field file$ ----[ end type /\/\/\/\ ----Scope Name:nsep ----Obj Maps:4 ----[ function nsep(c$) ----[ s.sep=new sep ----[ s\dat=c ----[ end function /\/\/\/\ ----Scope Name:genmap ----Obj Maps:2 ----[ function genmap(real$,map$) ----[ end function /\/\/\/\ ----Scope Name:loadcode.code ----Obj Maps:16 ----[ function loadcode.code( file$) ----[ fo=readfile(file) ----[ if not fo return ----[ out.code=new code ----[ while not eof(fo) ----[ dat$=readline( fo) ----[ if len(dat)>2 ----[ m.map=objmap(dat) ----[ out\m[out\mc]=m ----[ out\mc=out\mc+1 ----[ endif ----[ wend ----[ print "loaded >"+out\mc+" lines of raw code" ----[ closefile fo ----[ return out ----[ end function /\/\/\/\ ----Scope Name:code_toconsoleapp ----Obj Maps:9 ----[ function code_toconsoleapp(in.code,file$) ----[ fo=writefile(file) ----[ l_life=fo ----[ if not fo return ----[ write_consoleheaderc() ----[ write_codec(in) ----[ write_consolefooterc() ----[ closefile fo ----[ end function /\/\/\/\ ----Scope Name:write_codec ----Obj Maps:9 ----[ function write_codec(in.code) ----[ for j=0 to in\mc-1 ----[ out$="" ----[ for k=0 to in\m[j]\cc-1 ----[ out=out+in\m[j]\c[k]\c_name ----[ next ----[ writeline l_life,out ----[ next ----[ end function /\/\/\/\ ----Scope Name:write_consoleheaderc ----Obj Maps:4 ----[ function write_consoleheaderc() ----[ writeline l_life,"#include <stdio.h>" ----[ writeline l_life,"int main(){" ----[ end function /\/\/\/\ ----Scope Name:write_consolefooterc ----Obj Maps:4 ----[ function write_consolefooterc() ----[ writeline l_life," return 0; /* program termination. */" ----[ writeline l_life,"}" ----[ end function /\/\/\/\ ----Scope Name:code_towindowapp ----Obj Maps:2 ----[ function code_towindowapp(in.code) ----[ end function /\/\/\/\ ----Scope Name:code_tocpp ----Obj Maps:53 ----[ function code_tocpp( in.code) ----[ for j=0 to in\mc-1 ----[ m.map=in\m[j] ----[ amb=false ----[ amb_m$="" ----[ if m=null runtimeerror "Bleep" ----[ for k=0 to m\cc-1 ----[ c.chunk=m\c[k] ----[ map$=c\map ----[ if c\issep ----[ ;-raw data enclapsulators ----[ if amb ----[ select map ----[ case chr(34) ----[ if map=amb_m ----[ amb=false ----[ amb_m="" ----[ endif ----[ end select ----[ else ----[ select map ----[ case chr(34) ----[ amb=true ----[ amb_m$=map ----[ over_amb=true ----[ end select ----[ endif ----[ c\c_name=map ----[ else ----[ c\c_name=map ----[ if isres( map) ----[ ----[ else ----[ c\c_name=switch(map) ----[ endif ----[ ----[ endif ----[ if amb ----[ if over_amb ----[ over_amb=0 ----[ else ----[ c\c_name=map ----[ c\amb=true ----[ endif ----[ endif ----[ next ----[ next ----[ ;-- scope set up. ----[ main.scope=new scope ----[ main\scopetype=scope_main ----[ feedscope(main,in) ----[ debug_scope(main,"scope_debug.txt") ----[ end function /\/\/\/\ ----Scope Name:feedscope ----Obj Maps:51 ----[ function feedscope(base.scope,c.code,from=0,endat$="") ----[ print "scope from >"+from ----[ for j=from to c\mc-1 ----[ .redo ----[ if j=>c\mc exit ----[ m.map=c\m[j] ----[ print "obj line" ----[ for k=0 to m\cc-1 ----[ a.chunk=m\c[k] ----[ n.chunk=nobj(m,k) ----[ p.chunk=nobj(m,k) ----[ if isscop(a\map) and j<>from and a\amb=false;can't scope into thyself. ----[ ns.scope=new scope ----[ base\sub[base\sc]=ns ----[ base\sc=base\sc+1 ----[ if n<>null ----[ print "scope called >"+n\map ----[ ns\name=n\map ----[ else ----[ print "warning -? nameless scope" ----[ ns\name="none specified" ----[ endif ----[ j=feedscope( ns,c,j,a\map) ----[ goto redo ----[ else ----[ ;-determine if exit point. ----[ select a\map ----[ case "end" ----[ if n<>null ----[ select n\map ----[ case endat ----[ exitscope=true ----[ exit ;no need to parse on. anything else is excess. ----[ end select ----[ endif ----[ end select ----[ ;--- ----[ endif ----[ next ----[ base\m[base\mc]=m ----[ base\mc=base\mc+1 ----[ if exitscope return j+1 ----[ next ----[ if from>0 ----[ stop ----[ print "compile error" ----[ print endat+" without end "+endat ----[ endif ----[ print "scope out" ----[ return j ----[ end function /\/\/\/\ ----Scope Name:debug_scope ----Obj Maps:26 ----[ function debug_scope(base.scope,file$,debugsubs=true,usefile=0,pad$="--") ----[ if not usefile ----[ fo=writefile( file) ----[ if not fo return ----[ else ----[ fo=usefile ----[ endif ----[ writeline fo,pad+"scope name:"+base\name ----[ writeline fo,pad+"obj maps:"+base\mc ----[ for j=0 to base\mc-1 ----[ out$="" ----[ for k=0 to base\m[j]\cc-1 ----[ out=out+base\m[j]\c[k]\map ----[ next ----[ writeline fo,pad+"["+out ----[ next ----[ writeline fo,string("/\",len(pad)) ----[ if debugsubs ----[ for j=0 to base\sc-1 ----[ debug_scope( base\sub[j],file,true,fo,pad+"--") ----[ next ----[ endif ----[ if not usefile ----[ closefile fo ----[ endif ----[ end function /\/\/\/\ ----Scope Name:nobj.chunk ----Obj Maps:7 ----[ function nobj.chunk( m.map,from=0) ----[ from=from+1 ----[ if from=>m\cc return ----[ for j=from to m\cc-1 ----[ if not m\c[j]\issep return m\c[j] ----[ next ----[ end function /\/\/\/\ ----Scope Name:poibj.chunk ----Obj Maps:7 ----[ function poibj.chunk( m.map,from=0) ----[ from=from-1 ----[ if from<0 return ----[ for j=from to 0 step -1 ----[ if not m\c[j]\issep return m\c[j] ----[ next ----[ end function /\/\/\/\ ----Scope Name:switch ----Obj Maps:3 ----[ type switch ----[ field from$,go$ ----[ end type /\/\/\/\ ----Scope Name:nswi ----Obj Maps:5 ----[ function nswi(from$,go$) ----[ s.switch=new switch ----[ s\from=from ----[ s\go=go ----[ end function /\/\/\/\ ----Scope Name:switch$ ----Obj Maps:6 ----[ function switch$(dat$) ----[ for s.switch=each switch ----[ if dat=s\from return s\go ----[ next ----[ return dat ----[ end function /\/\/\/\ ----Scope Name:debug_code ----Obj Maps:22 ----[ function debug_code( in.code,file$) ----[ fo=writefile(file) ----[ if not fo return ----[ for j=0 to in\mc-1 ----[ out$="" ----[ for k=0 to in\m[j]\cc-1 ----[ out=out+" "+string(in\m[j]\c[k]\amb,len(in\m[j]\c[k]\c_name))+" " ----[ next ----[ writeline fo,out ----[ out$="" ----[ for k=0 to in\m[j]\cc-1 ----[ out=out+"_/"+in\m[j]\c[k]\c_name+"\_" ----[ next ----[ writeline fo,out ----[ out="" ----[ for k=0 to in\m[j]\cc-1 ----[ out=out+" \"+string("_",len(in\m[j]\c[k]\c_name))+"/ " ----[ next ----[ writeline fo,out ----[ next ----[ closefile fo ----[ end function /\/\/\/\ ----Scope Name:objmap.map ----Obj Maps:29 ----[ function objmap.map(dat$) ----[ dat=lower(clean(dat)) ----[ l=len(dat) ----[ out="" ----[ fs=1 ----[ m.map=new map ----[ m\dat=dat ----[ for j=1 to l ;examine single char seps ----[ c$=mid( dat,j,1) ----[ if issep(c) ----[ if j-lj>1 ----[ obj$=lower(mid( dat,lj+1,j-lj-1)) ----[ nc.chunk =new chunk ----[ nc\map=obj ----[ m\c[m\cc]=nc ----[ m\cc=m\cc+1 ----[ endif ----[ lj=j ----[ ----[ nc.chunk =new chunk ----[ nc\map=c ----[ nc\issep=true ----[ m\c[m\cc]=nc ----[ m\cc=m\cc+1 ----[ else ----[ endif ----[ next ----[ return m ----[ end function /\/\/\/\ ----Scope Name:issep ----Obj Maps:5 ----[ function issep(v$) ----[ for s.sep=each sep ----[ if v=s\dat return true ----[ next ----[ end function /\/\/\/\ ----Scope Name:compresscode ----Obj Maps:31 ----[ function compresscode(in.code,out$) ----[ ;-compression phase ----[ fo=writefile( out) ----[ if not fo return ----[ local cache$[25000],cc ;temp string buffer. ----[ for j=0 to in\mc-1 ----[ m.map=in\m[j] ----[ for k=0 to m\cc-1 ----[ dat$=m\c[k]\map ----[ linkto=-1 ----[ for a=0 to cc-1 ----[ if cache[a]=dat ----[ linkto=a ----[ exit ----[ endif ----[ next ----[ if linkto=-1 ----[ cache[cc]=dat ----[ cc=cc+1 ----[ endif ----[ if linkto>-1 ----[ writebyte fo,1 ----[ writeint fo,linkto ----[ else ----[ writebyte fo,0 ----[ writestring fo,dat ----[ endif ----[ next ----[ next ----[ closefile fo ----[ end function /\/\/\/\ ----Scope Name:clean$ ----Obj Maps:4 ----[ function clean$(dat$) ----[ out$=dat ----[ return " "+trim(out)+" " ----[ end function /\/\/\/\ ----Scope Name:res ----Obj Maps:3 ----[ type res ----[ field dat$ ----[ end type /\/\/\/\ ----Scope Name:scop ----Obj Maps:4 ----[ type scop ;scope indentifier only. ----[ field dat$ ----[ field movemode ----[ end type /\/\/\/\ ----Scope Name:nscop.scop ----Obj Maps:5 ----[ function nscop.scop(txt$) ----[ s.scop=new scop ----[ s\dat=txt ----[ return s ----[ end function /\/\/\/\ ----Scope Name:scopmove ----Obj Maps:3 ----[ function scopmove(n.scop,move) ----[ n\movemode=move ----[ end function /\/\/\/\ ----Scope Name:isscop ----Obj Maps:6 ----[ function isscop(txt$) ----[ for s.scop=each scop ----[ if s\dat=txt return true ----[ next ----[ return false ----[ end function /\/\/\/\ ----Scope Name:nres ----Obj Maps:4 ----[ function nres(txt$) ----[ n.res=new res ----[ n\dat=lower(txt) ----[ end function /\/\/\/\ ----Scope Name:isres ----Obj Maps:5 ----[ function isres(txt$) ----[ for n.res= each res ----[ if n\dat=txt return true ----[ next ----[ end function /\/\/\/\ It also produces a symbolic-ish map of the text file parsed. \_/ \__/ \_/ \_/ \_/ \_/ \___/ \_/ \______/ \_/ \_/ \_/ \_/ 0 0000 0 0 11111 0 0 0 111111 0 0 0 _/ \__/nswi\__/(\__/"\__/print\__/"\__/,\__/"\__/printf\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_____/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ 0 0 0 0 000000 0 0 _/ \__/;\__/-\__/[\__/consts\__/]\__/ \_ \_/ \_/ \_/ \_/ \______/ \_/ \_/ 0 00000 0 000000000 0 0 0000 0 _/ \__/const\__/ \__/max_lines\__/ \__/=\__/5000\__/ \_ \_/ \_____/ \_/ \_________/ \_/ \_/ \____/ \_/ 0 0 0 0 0 0 _/ \__/;\__/-\__/[\__/]\__/ \_ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 000 0 _/ \__/type\__/ \__/sep\__/ \_ \_/ \____/ \_/ \___/ \_/ 0 00000 0 0000 0 _/ \__/field\__/ \__/dat$\__/ \_ \_/ \_____/ \_/ \____/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 0000 0 00000 0 _/ \__/type\__/ \__/scope\__/ \_ \_/ \____/ \_/ \_____/ \_/ 0 00000 0 000000000 0 000 0 0000 0 00000 0 00 0 000 0 0000000 0 000000 0 _/ \__/field\__/ \__/scopetype\__/ \__/;in\__/ \__/most\__/ \__/cases\__/ \__/we\__/ \__/can\__/ \__/blindly\__/ \__/assume\__/ \_ \_/ \_____/ \_/ \_________/ \_/ \___/ \_/ \____/ \_/ \_____/ \_/ \__/ \_/ \___/ \_/ \_______/ \_/ \______/ \_/ 0 00000 0 00000 0 0 000000000 0 0 00 0 _/ \__/field\__/ \__/m.map\__/[\__/ \__/max_lines\__/]\__/,\__/mc\__/ \_ \_/ \_____/ \_/ \_____/ \_/ \_/ \_________/ \_/ \_/ \__/ \_/ 0 00000 0 000000000 0 0000 0 0 00 0 _/ \__/field\__/ \__/sub.scope\__/[\__/2555\__/]\__/,\__/sc\__/ \_ \_/ \_____/ \_/ \_________/ \_/ \____/ \_/ \_/ \__/ \_/ 0 00000 0 00000 0 _/ \__/field\__/ \__/name$\__/ \_ \_/ \_____/ \_/ \_____/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 00000 0 0000000000 0 0 0 00000000000000 0 0 0 0 00000000000 0 0 0 _/ \__/const\__/ \__/scope_main\__/=\__/1\__/,\__/scope_function\__/ \__/=\__/2\__/,\__/scope_class\__/=\__/3\__/ \_ \_/ \_____/ \_/ \__________/ \_/ \_/ \_/ \______________/ \_/ \_/ \_/ \_/ \___________/ \_/ \_/ \_/ 0 0000 0 00000 0 _/ \__/type\__/ \__/chunk\__/ \_ \_/ \____/ \_/ \_____/ \_/ 0 00000 0 00000 0 00000 0 _/ \__/field\__/ \__/real$\__/,\__/issep\__/ \_ \_/ \_____/ \_/ \_____/ \_/ \_____/ \_/ 0 00000 0 0000 0 00000 0 _/ \__/field\__/ \__/map$\__/,\__/entry\__/ \_ \_/ \_____/ \_/ \____/ \_/ \_____/ \_/ 0 00000 0 0000000 0 000 0 0000000000 0 00000 0 000000 0 _/ \__/field\__/ \__/c_name$\__/,\__/amb\__/ \__/;ambiguity\__/ \__/flag.\__/ \__/nice..\__/ \_ \_/ \_____/ \_/ \_______/ \_/ \___/ \_/ \__________/ \_/ \_____/ \_/ \______/ \_/ 0 00000 0 0000 0 000000 0 000 0 00000 0 0 000 0 0000 0 00000000000 0 _/ \__/field\__/ \__/ext$\__/ \__/;extra\__/ \__/dat\__/ \__/field\__/,\__/ \__/for\__/ \__/code\__/ \__/operations.\__/ \_ \_/ \_____/ \_/ \____/ \_/ \______/ \_/ \___/ \_/ \_____/ \_/ \_/ \___/ \_/ \____/ \_/ \___________/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 0000 0 000 0 _/ \__/type\__/ \__/map\__/ \_ \_/ \____/ \_/ \___/ \_/ 0 00000 0 0000000 0 0000 0 0 00 0 _/ \__/field\__/ \__/c.chunk\__/[\__/2555\__/]\__/,\__/cc\__/ \_ \_/ \_____/ \_/ \_______/ \_/ \____/ \_/ \_/ \__/ \_/ 0 00000 0 0000 0 _/ \__/field\__/ \__/dat$\__/ \_ \_/ \_____/ \_/ \____/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 0000 0 0000 0 _/ \__/type\__/ \__/code\__/ \_ \_/ \____/ \_/ \____/ \_/ 0 00000 0 00000 0 0 000000000 0 0 00 0 _/ \__/field\__/ \__/m.map\__/[\__/ \__/max_lines\__/]\__/,\__/mc\__/ \_ \_/ \_____/ \_/ \_____/ \_/ \_/ \_________/ \_/ \_/ \__/ \_/ 0 00000 0 00000 0 _/ \__/field\__/ \__/file$\__/ \_ \_/ \_____/ \_/ \_____/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 0000000000 0 000 0 00000 0 _/ \__/main.scope\__/=\__/new\__/ \__/scope\__/ \_ \_/ \__________/ \_/ \___/ \_/ \_____/ \_/ 0 0 0 000000 0 0000000000 0 _/ \__/;\__/-\__/define\__/ \__/seperators\__/ \_ \_/ \_/ \_/ \______/ \_/ \__________/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/*\__/"\__/)\__/:\__/nsep\__/(\__/"\__/(\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/)\__/"\__/)\__/:\__/nsep\__/(\__/"\__//\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/,\__/"\__/)\__/:\__/nsep\__/(\__/"\__/'\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/:\__/"\__/)\__/:\__/nsep\__/(\__/"\__/*\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/-\__/"\__/)\__/:\__/nsep\__/(\__/"\__/(\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/)\__/"\__/)\__/:\__/nsep\__/(\__/"\__/+\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/<\__/"\__/)\__/:\__/nsep\__/(\__/"\__/[\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 000 0 00 0 0 0 _/ \__/nsep\__/(\__/"\__/]\__/"\__/)\__/:\__/nsep\__/(\__/chr\__/(\__/34\__/)\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 0 0 0 _/ \__/nsep\__/(\__/"\__/>\__/"\__/)\__/:\__/nsep\__/(\__/"\__/\\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 1 1 0 0 0 _/ \__/nsep\__/(\__/"\__/ \__/"\__/)\__/:\__/nsep\__/(\__/"\__/-\__/>\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 1 0 0 0 0000 0 0 11111111 0 0 0 _/ \__/nsep\__/(\__/"\__/=\__/"\__/)\__/:\__/nres\__/(\__/"\__/function\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \________/ \_/ \_/ \_/ 0 0000 0 0 11 0 0 0 _/ \__/nres\__/(\__/"\__/if\__/"\__/)\__/ \_ \_/ \____/ \_/ \_/ \__/ \_/ \_/ \_/ 0 0000000000 0 00000 0 0 0 11111111 0 0 0 _/ \__/fscop.scop\__/=\__/nscop\__/(\__/ \__/"\__/function\__/"\__/)\__/ \_ \_/ \__________/ \_/ \_____/ \_/ \_/ \_/ \________/ \_/ \_/ \_/ 0 0000000000 0 00000 0 0 0 11111 0 0 0 _/ \__/cscop.scop\__/=\__/nscop\__/(\__/ \__/"\__/class\__/"\__/)\__/ \_ \_/ \__________/ \_/ \_____/ \_/ \_/ \_/ \_____/ \_/ \_/ \_/ 0 0000000000 0 00000 0 0 1111 0 0 0 _/ \__/tscop.scop\__/=\__/nscop\__/(\__/"\__/type\__/"\__/)\__/ \_ \_/ \__________/ \_/ \_____/ \_/ \_/ \____/ \_/ \_/ \_/ 0 0000000000 0 00000000 0 0 11111111111111 0 0 0 _/ \__/;test.code\__/=\__/loadcode\__/(\__/"\__/helloworld.vnx\__/"\__/)\__/ \_ \_/ \__________/ \_/ \________/ \_/ \_/ \______________/ \_/ \_/ \_/ 0 000000000 0 00000000 0 0 1111111 0 0 0 _/ \__/test.code\__/=\__/loadcode\__/(\__/"\__/vcom.bb\__/"\__/)\__/ \_ \_/ \_________/ \_/ \________/ \_/ \_/ \_______/ \_/ \_/ \_/ 0 0000000000 0 0000 0 0 _/ \__/code_tocpp\__/(\__/test\__/)\__/ \_ \_/ \__________/ \_/ \____/ \_/ \_/ 0 00000000000000000 0 0000 0 0 11111111111111 0 0 0 _/ \__/code_toconsoleapp\__/(\__/test\__/,\__/"\__/simpletest.txt\__/"\__/)\__/ \_ \_/ \_________________/ \_/ \____/ \_/ \_/ \______________/ \_/ \_/ \_/ 0 0000000000 0 0000 0 0 111111111111111 0 0 0 _/ \__/debug_code\__/(\__/test\__/,\__/"\__/debugprisim.txt\__/"\__/)\__/ \_ \_/ \__________/ \_/ \____/ \_/ \_/ \_______________/ \_/ \_/ \_/ 0 0000000 0 0 11111111 1 1111 1 1111 1 1 1 0 0 0 _/ \__/;objmap\__/(\__/"\__/function\__/(\__/test\__/,\__/nope\__/ \__/ \__/)\__/"\__/)\__/ \_ \_/ \_______/ \_/ \_/ \________/ \_/ \____/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000000 0 000000 0 0 11 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 0 0 000 0 0 _/ \__/;lm.map\__/=\__/genmap\__/(\__/"\__/if\__/ \__/a\__/-\__/>\__/2\__/ \__/then\__/ \__/b\__/=\__/(\__/5\__/*\__/6\__/)\__/+\__/2\__/"\__/,\__/map\__/)\__/ \_ \_/ \_______/ \_/ \______/ \_/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ \_/ 0 0000000 0 _/ \__/waitkey\__/ \_ \_/ \_______/ \_/ 0 000 0 _/ \__/end\__/ \_ \_/ \___/ \_/ 0 00000000 0 0000 0 00 0 0 _/ \__/function\__/ \__/nsep\__/(\__/c$\__/)\__/ \_ \_/ \________/ \_/ \____/ \_/ \__/ \_/ \_/ 0 00000 0 000 0 000 0 _/ \__/s.sep\__/=\__/new\__/ \__/sep\__/ \_ \_/ \_____/ \_/ \___/ \_/ \___/ \_/ 0 0 0 000 0 0 0 _/ \__/s\__/\\__/dat\__/=\__/c\__/ \_ \_/ \_/ \_/ \___/ \_/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 000000 0 00000 0 0000 0 0 _/ \__/function\__/ \__/genmap\__/(\__/real$\__/,\__/map$\__/)\__/ \_ \_/ \________/ \_/ \______/ \_/ \_____/ \_/ \____/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000000 0 0 00000 0 0 _/ \__/function\__/ \__/loadcode.code\__/(\__/ \__/file$\__/)\__/ \_ \_/ \________/ \_/ \_____________/ \_/ \_/ \_____/ \_/ \_/ 0 00 0 00000000 0 0000 0 0 _/ \__/fo\__/=\__/readfile\__/(\__/file\__/)\__/ \_ \_/ \__/ \_/ \________/ \_/ \____/ \_/ \_/ 0 00 0 000 0 00 0 000000 0 _/ \__/if\__/ \__/not\__/ \__/fo\__/ \__/return\__/ \_ \_/ \__/ \_/ \___/ \_/ \__/ \_/ \______/ \_/ 0 00000000 0 000 0 0000 0 _/ \__/out.code\__/=\__/new\__/ \__/code\__/ \_ \_/ \________/ \_/ \___/ \_/ \____/ \_/ 0 00000 0 000 0 000 0 00 0 0 _/ \__/while\__/ \__/not\__/ \__/eof\__/(\__/fo\__/)\__/ \_ \_/ \_____/ \_/ \___/ \_/ \___/ \_/ \__/ \_/ \_/ 0 0000 0 00000000 0 0 00 0 0 _/ \__/dat$\__/=\__/readline\__/(\__/ \__/fo\__/)\__/ \_ \_/ \____/ \_/ \________/ \_/ \_/ \__/ \_/ \_/ 0 00 0 000 0 000 0 0 0 0 _/ \__/if\__/ \__/len\__/(\__/dat\__/)\__/>\__/2\__/ \_ \_/ \__/ \_/ \___/ \_/ \___/ \_/ \_/ \_/ \_/ 0 00000 0 000000 0 000 0 0 _/ \__/m.map\__/=\__/objmap\__/(\__/dat\__/)\__/ \_ \_/ \_____/ \_/ \______/ \_/ \___/ \_/ \_/ 0 000 0 0 0 000 0 00 0 0 0 0 _/ \__/out\__/\\__/m\__/[\__/out\__/\\__/mc\__/]\__/=\__/m\__/ \_ \_/ \___/ \_/ \_/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_/ 0 000 0 00 0 000 0 00 0 0 0 _/ \__/out\__/\\__/mc\__/=\__/out\__/\\__/mc\__/+\__/1\__/ \_ \_/ \___/ \_/ \__/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0000 0 _/ \__/wend\__/ \_ \_/ \____/ \_/ 0 000000 0 0 111111 1 1 0 0 000 0 00 0 0 1 11111 1 11 1 111 1 1111 0 0 _/ \__/printf\__/ \__/"\__/loaded\__/ \__/>\__/"\__/+\__/out\__/\\__/mc\__/+\__/"\__/ \__/lines\__/ \__/of\__/ \__/raw\__/ \__/code\__/"\__/ \_ \_/ \______/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_____/ \_/ \__/ \_/ \___/ \_/ \____/ \_/ \_/ 0 000000000 0 00 0 _/ \__/closefile\__/ \__/fo\__/ \_ \_/ \_________/ \_/ \__/ \_/ 0 000000 0 000 0 _/ \__/return\__/ \__/out\__/ \_ \_/ \______/ \_/ \___/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 0 0 0 0 0 0 0 0000 0 0000 0 _/ \__/;\__/-\__/-\__/c\__/+\__/+\__/ \__/back\__/ \__/end.\__/ \_ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ \____/ \_/ 0 000000 0 000000 0 000000 0 _/ \__/global\__/ \__/l_file\__/,\__/l_life\__/ \_ \_/ \______/ \_/ \______/ \_/ \______/ \_/ 0 00000000 0 00000000000000000 0 0000000 0 00000 0 0 _/ \__/function\__/ \__/code_toconsoleapp\__/(\__/in.code\__/,\__/file$\__/)\__/ \_ \_/ \________/ \_/ \_________________/ \_/ \_______/ \_/ \_____/ \_/ \_/ 0 00 0 000000000 0 0000 0 0 _/ \__/fo\__/=\__/writefile\__/(\__/file\__/)\__/ \_ \_/ \__/ \_/ \_________/ \_/ \____/ \_/ \_/ 0 000000 0 00 0 _/ \__/l_life\__/=\__/fo\__/ \_ \_/ \______/ \_/ \__/ \_/ 0 00 0 000 0 00 0 000000 0 _/ \__/if\__/ \__/not\__/ \__/fo\__/ \__/return\__/ \_ \_/ \__/ \_/ \___/ \_/ \__/ \_/ \______/ \_/ 0 00000000000000000000 0 0 0 _/ \__/write_consoleheaderc\__/(\__/)\__/ \_ \_/ \____________________/ \_/ \_/ \_/ 0 00000000000 0 00 0 0 _/ \__/write_codec\__/(\__/in\__/)\__/ \_ \_/ \___________/ \_/ \__/ \_/ \_/ 0 00000000000000000000 0 0 0 _/ \__/write_consolefooterc\__/(\__/)\__/ \_ \_/ \____________________/ \_/ \_/ \_/ 0 000000000 0 00 0 _/ \__/closefile\__/ \__/fo\__/ \_ \_/ \_________/ \_/ \__/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 00000000000 0 0000000 0 0 _/ \__/function\__/ \__/write_codec\__/(\__/in.code\__/)\__/ \_ \_/ \________/ \_/ \___________/ \_/ \_______/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/mc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 0 0 0 _/ \__/out$\__/=\__/"\__/"\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 0 0 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 000 0 000 0 00 0 0 0 0 0 0 0 0 0 0 0 000000 0 _/ \__/out\__/=\__/out\__/+\__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/c_name\__/ \_ \_/ \___/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 000000 0 000 0 _/ \__/writeline\__/ \__/l_life\__/,\__/out\__/ \_ \_/ \_________/ \_/ \______/ \_/ \___/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 00000000000000000000 0 0 0 _/ \__/function\__/ \__/write_consoleheaderc\__/(\__/)\__/ \_ \_/ \________/ \_/ \____________________/ \_/ \_/ \_/ 0 000000000 0 000000 0 0 11111111 1 1 1111111 1 0 0 _/ \__/writeline\__/ \__/l_life\__/,\__/"\__/#include\__/ \__/<\__/stdio.h\__/>\__/"\__/ \_ \_/ \_________/ \_/ \______/ \_/ \_/ \________/ \_/ \_/ \_______/ \_/ \_/ \_/ 0 000000000 0 000000 0 0 111 1 1111 1 1 1 0 0 _/ \__/writeline\__/ \__/l_life\__/,\__/"\__/int\__/ \__/main\__/(\__/)\__/{\__/"\__/ \_ \_/ \_________/ \_/ \______/ \_/ \_/ \___/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 00000000000000000000 0 0 0 _/ \__/function\__/ \__/write_consolefooterc\__/(\__/)\__/ \_ \_/ \________/ \_/ \____________________/ \_/ \_/ \_/ 0 000000000 0 000000 0 0 1 1 1 1 111111 1 11 1 1 1 1 1111111 1 111111111111 1 1 1 0 0 _/ \__/writeline\__/ \__/l_life\__/,\__/"\__/ \__/ \__/ \__/ \__/return\__/ \__/0;\__/ \__//\__/*\__/ \__/program\__/ \__/termination.\__/ \__/*\__//\__/"\__/ \_ \_/ \_________/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \__/ \_/ \_/ \_/ \_/ \_______/ \_/ \____________/ \_/ \_/ \_/ \_/ \_/ 0 000000000 0 000000 0 0 1 0 0 _/ \__/writeline\__/ \__/l_life\__/,\__/"\__/}\__/"\__/ \_ \_/ \_________/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000000000 0 0000000 0 0 _/ \__/function\__/ \__/code_towindowapp\__/(\__/in.code\__/)\__/ \_ \_/ \________/ \_/ \________________/ \_/ \_______/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000 0 0 0000000 0 0 _/ \__/function\__/ \__/code_tocpp\__/(\__/ \__/in.code\__/)\__/ \_ \_/ \________/ \_/ \__________/ \_/ \_/ \_______/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/mc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ 0 00000 0 00 0 0 0 0 0 0 _/ \__/m.map\__/=\__/in\__/\\__/m\__/[\__/j\__/]\__/ \_ \_/ \_____/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ 0 000 0 00000 0 _/ \__/amb\__/=\__/false\__/ \_ \_/ \___/ \_/ \_____/ \_/ 0 000000 0 0 0 0 _/ \__/amb_m$\__/=\__/"\__/"\__/ \_ \_/ \______/ \_/ \_/ \_/ \_/ 0 00 0 0 0 0000 0 000000000000 0 0 1111 1 1111 0 0 _/ \__/if\__/ \__/m\__/=\__/null\__/ \__/runtimeerror\__/ \__/"\__/\__/ \__/!\__/"\__/ \_ \_/ \__/ \_/ \_/ \_/ \____/ \_/ \____________/ \_/ \_/ \____/ \_/ \____/ \_/ \_/ 0 000 0 0 0 0 0 00 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/m\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 0000000 0 0 0 0 0 0 0 0 _/ \__/c.chunk\__/=\__/m\__/\\__/c\__/[\__/k\__/]\__/ \_ \_/ \_______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 0 0 000 0 _/ \__/map$\__/=\__/c\__/\\__/map\__/ \_ \_/ \____/ \_/ \_/ \_/ \___/ \_/ 0 00 0 0 0 00000 0 _/ \__/if\__/ \__/c\__/\\__/issep\__/ \_ \_/ \__/ \_/ \_/ \_/ \_____/ \_/ 0 0 0 000 0 0000 0 00000000000000 0 _/ \__/;\__/-\__/raw\__/ \__/data\__/ \__/enclapsulators\__/ \_ \_/ \_/ \_/ \___/ \_/ \____/ \_/ \______________/ \_/ 0 00 0 000 0 _/ \__/if\__/ \__/amb\__/ \_ \_/ \__/ \_/ \___/ \_/ 0 000000 0 000 0 _/ \__/select\__/ \__/map\__/ \_ \_/ \______/ \_/ \___/ \_/ 0 0000 0 000 0 00 0 0 _/ \__/case\__/ \__/chr\__/(\__/34\__/)\__/ \_ \_/ \____/ \_/ \___/ \_/ \__/ \_/ \_/ 0 00 0 000 0 00000 0 _/ \__/if\__/ \__/map\__/=\__/amb_m\__/ \_ \_/ \__/ \_/ \___/ \_/ \_____/ \_/ 0 000 0 00000 0 _/ \__/amb\__/=\__/false\__/ \_ \_/ \___/ \_/ \_____/ \_/ 0 00000 0 0 0 0 _/ \__/amb_m\__/=\__/"\__/"\__/ \_ \_/ \_____/ \_/ \_/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 000 0 000000 0 _/ \__/end\__/ \__/select\__/ \_ \_/ \___/ \_/ \______/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 000000 0 000 0 _/ \__/select\__/ \__/map\__/ \_ \_/ \______/ \_/ \___/ \_/ 0 0000 0 000 0 00 0 0 _/ \__/case\__/ \__/chr\__/(\__/34\__/)\__/ \_ \_/ \____/ \_/ \___/ \_/ \__/ \_/ \_/ 0 000 0 0000 0 _/ \__/amb\__/=\__/true\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 000000 0 000 0 _/ \__/amb_m$\__/=\__/map\__/ \_ \_/ \______/ \_/ \___/ \_/ 0 00000000 0 0000 0 _/ \__/over_amb\__/=\__/true\__/ \_ \_/ \________/ \_/ \____/ \_/ 0 000 0 000000 0 _/ \__/end\__/ \__/select\__/ \_ \_/ \___/ \_/ \______/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0 0 000000 0 000 0 _/ \__/c\__/\\__/c_name\__/=\__/map\__/ \_ \_/ \_/ \_/ \______/ \_/ \___/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 0 0 000000 0 000 0 _/ \__/c\__/\\__/c_name\__/=\__/map\__/ \_ \_/ \_/ \_/ \______/ \_/ \___/ \_/ 0 00 0 00000 0 0 000 0 0 _/ \__/if\__/ \__/isres\__/(\__/ \__/map\__/)\__/ \_ \_/ \__/ \_/ \_____/ \_/ \_/ \___/ \_/ \_/ 0 0 _/ \__/ \_ \_/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 0 0 000000 0 000000 0 000 0 0 _/ \__/c\__/\\__/c_name\__/=\__/switch\__/(\__/map\__/)\__/ \_ \_/ \_/ \_/ \______/ \_/ \______/ \_/ \___/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0 _/ \__/ \_ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 00 0 000 0 _/ \__/if\__/ \__/amb\__/ \_ \_/ \__/ \_/ \___/ \_/ 0 00 0 00000000 0 _/ \__/if\__/ \__/over_amb\__/ \_ \_/ \__/ \_/ \________/ \_/ 0 00000000 0 0 0 _/ \__/over_amb\__/=\__/0\__/ \_ \_/ \________/ \_/ \_/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 0 0 000000 0 000 0 _/ \__/c\__/\\__/c_name\__/=\__/map\__/ \_ \_/ \_/ \_/ \______/ \_/ \___/ \_/ 0 0 0 000 0 0000 0 _/ \__/c\__/\\__/amb\__/=\__/true\__/ \_ \_/ \_/ \_/ \___/ \_/ \____/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 0 0 0 0 00000 0 000 0 000 0 _/ \__/;\__/-\__/-\__/ \__/scope\__/ \__/set\__/ \__/up.\__/ \_ \_/ \_/ \_/ \_/ \_/ \_____/ \_/ \___/ \_/ \___/ \_/ 0 0000000000 0 000 0 00000 0 _/ \__/main.scope\__/=\__/new\__/ \__/scope\__/ \_ \_/ \__________/ \_/ \___/ \_/ \_____/ \_/ 0 0000 0 000000000 0 0000000000 0 _/ \__/main\__/\\__/scopetype\__/=\__/scope_main\__/ \_ \_/ \____/ \_/ \_________/ \_/ \__________/ \_/ 0 000000000 0 0000 0 00 0 0 _/ \__/feedscope\__/(\__/main\__/,\__/in\__/)\__/ \_ \_/ \_________/ \_/ \____/ \_/ \__/ \_/ \_/ 0 00000000000 0 0000 0 0 111111111111111 0 0 0 _/ \__/debug_scope\__/(\__/main\__/,\__/"\__/scope_debug.txt\__/"\__/)\__/ \_ \_/ \___________/ \_/ \____/ \_/ \_/ \_______________/ \_/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 000000000 0 0000000000 0 000000 0 0000 0 0 0 000000 0 0 0 0 0 _/ \__/function\__/ \__/feedscope\__/(\__/base.scope\__/,\__/c.code\__/,\__/from\__/=\__/0\__/,\__/endat$\__/=\__/"\__/"\__/)\__/ \_ \_/ \________/ \_/ \_________/ \_/ \__________/ \_/ \______/ \_/ \____/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ 0 000000 0 0 11111 1 1111 1 1 0 0 0000 0 _/ \__/printf\__/ \__/"\__/scope\__/ \__/from\__/ \__/>\__/"\__/+\__/from\__/ \_ \_/ \______/ \_/ \_/ \_____/ \_/ \____/ \_/ \_/ \_/ \_/ \____/ \_/ 0 000 0 0 0 0000 0 00 0 0 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/from\__/ \__/to\__/ \__/c\__/\\__/mc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 00000 0 _/ \__/.redo\__/ \_ \_/ \_____/ \_/ 0 00 0 0 0 0 0 0 00 0 0000 0 _/ \__/if\__/ \__/j\__/=\__/>\__/c\__/\\__/mc\__/ \__/exit\__/ \_ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \____/ \_/ 0 00000 0 0 0 0 0 0 0 0 _/ \__/m.map\__/=\__/c\__/\\__/m\__/[\__/j\__/]\__/ \_ \_/ \_____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 000000 0 0 111 1 1111 0 0 _/ \__/printf\__/ \__/"\__/obj\__/ \__/line\__/"\__/ \_ \_/ \______/ \_/ \_/ \___/ \_/ \____/ \_/ \_/ 0 000 0 0 0 0 0 00 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/m\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 0000000 0 0 0 0 0 0 0 0 _/ \__/a.chunk\__/=\__/m\__/\\__/c\__/[\__/k\__/]\__/ \_ \_/ \_______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000000 0 0000 0 0 0 0 0 0 _/ \__/n.chunk\__/=\__/nobj\__/(\__/m\__/,\__/k\__/)\__/ \_ \_/ \_______/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000000 0 0000 0 0 0 0 0 0 _/ \__/p.chunk\__/=\__/nobj\__/(\__/m\__/,\__/k\__/)\__/ \_ \_/ \_______/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ 0 00 0 000000 0 0 0 000 0 0 000 0 0 0 0 0000 0 000 0 0 0 000 0 000000000 0 0 0 00000 0 0000 0 00000000 0 _/ \__/if\__/ \__/isscop\__/(\__/a\__/\\__/map\__/)\__/ \__/and\__/ \__/j\__/<\__/>\__/from\__/ \__/and\__/ \__/a\__/\\__/amb\__/=\__/false;can\__/'\__/t\__/ \__/scope\__/ \__/into\__/ \__/thyself.\__/ \_ \_/ \__/ \_/ \______/ \_/ \_/ \_/ \___/ \_/ \_/ \___/ \_/ \_/ \_/ \_/ \____/ \_/ \___/ \_/ \_/ \_/ \___/ \_/ \_________/ \_/ \_/ \_/ \_____/ \_/ \____/ \_/ \________/ \_/ 0 00000000 0 000 0 00000 0 _/ \__/ns.scope\__/=\__/new\__/ \__/scope\__/ \_ \_/ \________/ \_/ \___/ \_/ \_____/ \_/ 0 0000 0 000 0 0000 0 00 0 0 00 0 _/ \__/base\__/\\__/sub\__/[\__/base\__/\\__/sc\__/]\__/=\__/ns\__/ \_ \_/ \____/ \_/ \___/ \_/ \____/ \_/ \__/ \_/ \_/ \__/ \_/ 0 0000 0 00 0 0000 0 00 0 0 0 _/ \__/base\__/\\__/sc\__/=\__/base\__/\\__/sc\__/+\__/1\__/ \_ \_/ \____/ \_/ \__/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ 0 00 0 0 0 0 0 0000 0 _/ \__/if\__/ \__/ \__/n\__/<\__/>\__/null\__/ \_ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \____/ \_/ 0 000000 0 0 11111 1 111111 1 1 0 0 0 0 000 0 _/ \__/printf\__/ \__/"\__/scope\__/ \__/called\__/ \__/>\__/"\__/+\__/n\__/\\__/map\__/ \_ \_/ \______/ \_/ \_/ \_____/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ 0 00 0 0000 0 0 0 000 0 _/ \__/ns\__/\\__/name\__/=\__/n\__/\\__/map\__/ \_ \_/ \__/ \_/ \____/ \_/ \_/ \_/ \___/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 000000 0 0 1111111 1 1 1 1 11111111 1 11111 0 0 _/ \__/printf\__/ \__/"\__/warning\__/ \__/-\__/?\__/ \__/nameless\__/ \__/scope\__/"\__/ \_ \_/ \______/ \_/ \_/ \_______/ \_/ \_/ \_/ \_/ \________/ \_/ \_____/ \_/ \_/ 0 00 0 0000 0 0 1111 1 111111111 0 0 _/ \__/ns\__/\\__/name\__/=\__/"\__/none\__/ \__/specified\__/"\__/ \_ \_/ \__/ \_/ \____/ \_/ \_/ \____/ \_/ \_________/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0 0 000000000 0 0 00 0 0 0 0 0 0 0 000 0 0 _/ \__/j\__/=\__/feedscope\__/(\__/ \__/ns\__/,\__/c\__/,\__/j\__/,\__/a\__/\\__/map\__/)\__/ \_ \_/ \_/ \_/ \_________/ \_/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ \_/ 0 0000 0 0000 0 _/ \__/goto\__/ \__/redo\__/ \_ \_/ \____/ \_/ \____/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 0 0 000000000 0 00 0 0000 0 000000 0 _/ \__/;\__/-\__/determine\__/ \__/if\__/ \__/exit\__/ \__/point.\__/ \_ \_/ \_/ \_/ \_________/ \_/ \__/ \_/ \____/ \_/ \______/ \_/ 0 000000 0 0 0 000 0 _/ \__/select\__/ \__/a\__/\\__/map\__/ \_ \_/ \______/ \_/ \_/ \_/ \___/ \_/ 0 0000 0 0 111 0 0 _/ \__/case\__/ \__/"\__/end\__/"\__/ \_ \_/ \____/ \_/ \_/ \___/ \_/ \_/ 0 00 0 0 0 0 0000 0 _/ \__/if\__/ \__/n\__/<\__/>\__/null\__/ \_ \_/ \__/ \_/ \_/ \_/ \_/ \____/ \_/ 0 000000 0 0 0 000 0 _/ \__/select\__/ \__/n\__/\\__/map\__/ \_ \_/ \______/ \_/ \_/ \_/ \___/ \_/ 0 0000 0 00000 0 _/ \__/case\__/ \__/endat\__/ \_ \_/ \____/ \_/ \_____/ \_/ 0 000000000 0 0000 0 _/ \__/exitscope\__/=\__/true\__/ \_ \_/ \_________/ \_/ \____/ \_/ 0 0000 0 000 0 0000 0 00 0 00000 0 000 0 00000000 0 0000 0 00 0 0000000 0 _/ \__/exit\__/ \__/;no\__/ \__/need\__/ \__/to\__/ \__/parse\__/ \__/on.\__/ \__/anything\__/ \__/else\__/ \__/is\__/ \__/excess.\__/ \_ \_/ \____/ \_/ \___/ \_/ \____/ \_/ \__/ \_/ \_____/ \_/ \___/ \_/ \________/ \_/ \____/ \_/ \__/ \_/ \_______/ \_/ 0 000 0 000000 0 _/ \__/end\__/ \__/select\__/ \_ \_/ \___/ \_/ \______/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 000 0 000000 0 _/ \__/end\__/ \__/select\__/ \_ \_/ \___/ \_/ \______/ \_/ 0 0 0 0 0 0 _/ \__/;\__/-\__/-\__/-\__/ \_ \_/ \_/ \_/ \_/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 0000 0 0 0 0000 0 00 0 0 0 0 _/ \__/base\__/\\__/m\__/[\__/base\__/\\__/mc\__/]\__/=\__/m\__/ \_ \_/ \____/ \_/ \_/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ \_/ 0 0000 0 00 0 0000 0 00 0 0 0 _/ \__/base\__/\\__/mc\__/=\__/base\__/\\__/mc\__/+\__/1\__/ \_ \_/ \____/ \_/ \__/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ 0 00 0 000000000 0 000000 0 0 0 0 0 _/ \__/if\__/ \__/exitscope\__/ \__/return\__/ \__/j\__/+\__/1\__/ \_ \_/ \__/ \_/ \_________/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 00 0 0000 0 0 0 _/ \__/if\__/ \__/from\__/>\__/0\__/ \_ \_/ \__/ \_/ \____/ \_/ \_/ \_/ 0 0000 0 _/ \__/stop\__/ \_ \_/ \____/ \_/ 0 000000 0 0 1111111 1 11111 0 0 _/ \__/printf\__/ \__/"\__/compile\__/ \__/error\__/"\__/ \_ \_/ \______/ \_/ \_/ \_______/ \_/ \_____/ \_/ \_/ 0 000000 0 00000 0 0 1 1111111 1 111 1 0 0 00000 0 _/ \__/printf\__/ \__/endat\__/+\__/"\__/ \__/without\__/ \__/end\__/ \__/"\__/+\__/endat\__/ \_ \_/ \______/ \_/ \_____/ \_/ \_/ \_/ \_______/ \_/ \___/ \_/ \_/ \_/ \_____/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 000000 0 0 11111 1 111 0 0 _/ \__/printf\__/ \__/"\__/scope\__/ \__/out\__/"\__/ \_ \_/ \______/ \_/ \_/ \_____/ \_/ \___/ \_/ \_/ 0 000000 0 0 0 _/ \__/return\__/ \__/j\__/ \_ \_/ \______/ \_/ \_/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 00000000000 0 0000000000 0 00000 0 000000000 0 0000 0 0000000 0 0 0 0000 0 0 1 1 0 0 0 _/ \__/function\__/ \__/debug_scope\__/(\__/base.scope\__/,\__/file$\__/,\__/debugsubs\__/=\__/true\__/,\__/usefile\__/=\__/0\__/,\__/pad$\__/=\__/"\__/-\__/-\__/"\__/)\__/ \_ \_/ \________/ \_/ \___________/ \_/ \__________/ \_/ \_____/ \_/ \_________/ \_/ \____/ \_/ \_______/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 00 0 000 0 0000000 0 _/ \__/if\__/ \__/not\__/ \__/usefile\__/ \_ \_/ \__/ \_/ \___/ \_/ \_______/ \_/ 0 00 0 000000000 0 0 0000 0 0 _/ \__/fo\__/=\__/writefile\__/(\__/ \__/file\__/)\__/ \_ \_/ \__/ \_/ \_________/ \_/ \_/ \____/ \_/ \_/ 0 00 0 000 0 00 0 000000 0 _/ \__/if\__/ \__/not\__/ \__/fo\__/ \__/return\__/ \_ \_/ \__/ \_/ \___/ \_/ \__/ \_/ \______/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 00 0 0000000 0 _/ \__/fo\__/=\__/usefile\__/ \_ \_/ \__/ \_/ \_______/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 000000000 0 00 0 000 0 0 11111 1 1111 1 0 0 0000 0 0000 0 _/ \__/writeline\__/ \__/fo\__/,\__/pad\__/+\__/"\__/scope\__/ \__/name\__/:\__/"\__/+\__/base\__/\\__/name\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ \_/ \_____/ \_/ \____/ \_/ \_/ \_/ \____/ \_/ \____/ \_/ 0 000000000 0 00 0 000 0 0 111 1 1111 1 0 0 0000 0 00 0 _/ \__/writeline\__/ \__/fo\__/,\__/pad\__/+\__/"\__/obj\__/ \__/maps\__/:\__/"\__/+\__/base\__/\\__/mc\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ \_/ \___/ \_/ \____/ \_/ \_/ \_/ \____/ \_/ \__/ \_/ 0 000 0 0 0 0 0 00 0 0000 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/0\__/ \__/to\__/ \__/base\__/\\__/mc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 0 0 0 _/ \__/out$\__/=\__/"\__/"\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ 0 000 0 0 0 0 0 00 0 0000 0 0 0 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/base\__/\\__/m\__/[\__/j\__/]\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 000 0 000 0 0000 0 0 0 0 0 0 0 0 0 0 0 000 0 _/ \__/out\__/=\__/out\__/+\__/base\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/map\__/ \_ \_/ \___/ \_/ \___/ \_/ \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 000 0 0 1 0 0 000 0 _/ \__/writeline\__/ \__/fo\__/,\__/pad\__/+\__/"\__/[\__/"\__/+\__/out\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 000000 0 0 1 1 0 0 000 0 000 0 0 0 _/ \__/writeline\__/ \__/fo\__/,\__/string\__/(\__/"\__//\__/\\__/"\__/,\__/len\__/(\__/pad\__/)\__/)\__/ \_ \_/ \_________/ \_/ \__/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ \___/ \_/ \_/ \_/ 0 00 0 000000000 0 _/ \__/if\__/ \__/debugsubs\__/ \_ \_/ \__/ \_/ \_________/ \_/ 0 000 0 0 0 0 0 00 0 0000 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/0\__/ \__/to\__/ \__/base\__/\\__/sc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ 0 00000000000 0 0 0000 0 000 0 0 0 0 0000 0 0000 0 00 0 000 0 0 1 1 0 0 0 _/ \__/debug_scope\__/(\__/ \__/base\__/\\__/sub\__/[\__/j\__/]\__/,\__/file\__/,\__/true\__/,\__/fo\__/,\__/pad\__/+\__/"\__/-\__/-\__/"\__/)\__/ \_ \_/ \___________/ \_/ \_/ \____/ \_/ \___/ \_/ \_/ \_/ \_/ \____/ \_/ \____/ \_/ \__/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 00 0 000 0 0000000 0 _/ \__/if\__/ \__/not\__/ \__/usefile\__/ \_ \_/ \__/ \_/ \___/ \_/ \_______/ \_/ 0 000000000 0 00 0 _/ \__/closefile\__/ \__/fo\__/ \_ \_/ \_________/ \_/ \__/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000 0 0 00000 0 0000 0 0 0 0 _/ \__/function\__/ \__/nobj.chunk\__/(\__/ \__/m.map\__/,\__/from\__/=\__/0\__/)\__/ \_ \_/ \________/ \_/ \__________/ \_/ \_/ \_____/ \_/ \____/ \_/ \_/ \_/ \_/ 0 0000 0 0000 0 0 0 _/ \__/from\__/=\__/from\__/+\__/1\__/ \_ \_/ \____/ \_/ \____/ \_/ \_/ \_/ 0 00 0 0000 0 0 0 0 00 0 000000 0 _/ \__/if\__/ \__/from\__/=\__/>\__/m\__/\\__/cc\__/ \__/return\__/ \_ \_/ \__/ \_/ \____/ \_/ \_/ \_/ \_/ \__/ \_/ \______/ \_/ 0 000 0 0 0 0000 0 00 0 0 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/from\__/ \__/to\__/ \__/m\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 00 0 000 0 0 0 0 0 0 0 0 00000 0 000000 0 0 0 0 0 0 0 0 _/ \__/if\__/ \__/not\__/ \__/m\__/\\__/c\__/[\__/j\__/]\__/\\__/issep\__/ \__/return\__/ \__/m\__/\\__/c\__/[\__/j\__/]\__/ \_ \_/ \__/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_____/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 00000000000 0 0 00000 0 0000 0 0 0 0 _/ \__/function\__/ \__/poibj.chunk\__/(\__/ \__/m.map\__/,\__/from\__/=\__/0\__/)\__/ \_ \_/ \________/ \_/ \___________/ \_/ \_/ \_____/ \_/ \____/ \_/ \_/ \_/ \_/ 0 0000 0 0000 0 0 0 _/ \__/from\__/=\__/from\__/-\__/1\__/ \_ \_/ \____/ \_/ \____/ \_/ \_/ \_/ 0 00 0 0000 0 0 0 000000 0 _/ \__/if\__/ \__/from\__/<\__/0\__/ \__/return\__/ \_ \_/ \__/ \_/ \____/ \_/ \_/ \_/ \______/ \_/ 0 000 0 0 0 0000 0 00 0 0 0 0000 0 0 0 0 _/ \__/for\__/ \__/j\__/=\__/from\__/ \__/to\__/ \__/0\__/ \__/step\__/ \__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \____/ \_/ \__/ \_/ \_/ \_/ \____/ \_/ \_/ \_/ \_/ 0 00 0 000 0 0 0 0 0 0 0 0 00000 0 000000 0 0 0 0 0 0 0 0 _/ \__/if\__/ \__/not\__/ \__/m\__/\\__/c\__/[\__/j\__/]\__/\\__/issep\__/ \__/return\__/ \__/m\__/\\__/c\__/[\__/j\__/]\__/ \_ \_/ \__/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_____/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 0000 0 000000 0 _/ \__/type\__/ \__/switch\__/ \_ \_/ \____/ \_/ \______/ \_/ 0 00000 0 00000 0 000 0 _/ \__/field\__/ \__/from$\__/,\__/go$\__/ \_ \_/ \_____/ \_/ \_____/ \_/ \___/ \_/ 0 000 0 0000 0 _/ \__/end\__/ \__/type\__/ \_ \_/ \___/ \_/ \____/ \_/ 0 00000000 0 0000 0 00000 0 000 0 0 _/ \__/function\__/ \__/nswi\__/(\__/from$\__/,\__/go$\__/)\__/ \_ \_/ \________/ \_/ \____/ \_/ \_____/ \_/ \___/ \_/ \_/ 0 00000000 0 000 0 000000 0 _/ \__/s.switch\__/=\__/new\__/ \__/switch\__/ \_ \_/ \________/ \_/ \___/ \_/ \______/ \_/ 0 0 0 0000 0 0000 0 _/ \__/s\__/\\__/from\__/=\__/from\__/ \_ \_/ \_/ \_/ \____/ \_/ \____/ \_/ 0 0 0 00 0 00 0 _/ \__/s\__/\\__/go\__/=\__/go\__/ \_ \_/ \_/ \_/ \__/ \_/ \__/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000 0 0000 0 0 _/ \__/function\__/ \__/switch$\__/(\__/dat$\__/)\__/ \_ \_/ \________/ \_/ \_______/ \_/ \____/ \_/ \_/ 0 000 0 00000000 0 0000 0 000000 0 _/ \__/for\__/ \__/s.switch\__/=\__/each\__/ \__/switch\__/ \_ \_/ \___/ \_/ \________/ \_/ \____/ \_/ \______/ \_/ 0 00 0 000 0 0 0 0000 0 000000 0 0 0 00 0 _/ \__/if\__/ \__/dat\__/=\__/s\__/\\__/from\__/ \__/return\__/ \__/s\__/\\__/go\__/ \_ \_/ \__/ \_/ \___/ \_/ \_/ \_/ \____/ \_/ \______/ \_/ \_/ \_/ \__/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000 0 000 0 _/ \__/return\__/ \__/dat\__/ \_ \_/ \______/ \_/ \___/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000 0 0 0000000 0 00000 0 0 _/ \__/function\__/ \__/debug_code\__/(\__/ \__/in.code\__/,\__/file$\__/)\__/ \_ \_/ \________/ \_/ \__________/ \_/ \_/ \_______/ \_/ \_____/ \_/ \_/ 0 00 0 000000000 0 0000 0 0 _/ \__/fo\__/=\__/writefile\__/(\__/file\__/)\__/ \_ \_/ \__/ \_/ \_________/ \_/ \____/ \_/ \_/ 0 00 0 000 0 00 0 000000 0 _/ \__/if\__/ \__/not\__/ \__/fo\__/ \__/return\__/ \_ \_/ \__/ \_/ \___/ \_/ \__/ \_/ \______/ \_/ 0 000 0 0 0 0 0 00 0 00 0 00 0 0 0 _/ \__/for\__/ \__/j\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/mc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 0 0 0 _/ \__/out$\__/=\__/"\__/"\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 0 0 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 000 0 000 0 0 1 1 0 0 000000 0 00 0 0 0 0 0 0 0 0 0 0 0 000 0 000 0 00 0 0 0 0 0 0 0 0 0 0 0 000000 0 0 0 0 1 1 0 0 _/ \__/out\__/=\__/out\__/+\__/"\__/ \__/ \__/"\__/+\__/string\__/(\__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/amb\__/,\__/len\__/(\__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/c_name\__/)\__/)\__/+\__/"\__/ \__/ \__/"\__/ \_ \_/ \___/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 000 0 _/ \__/writeline\__/ \__/fo\__/,\__/out\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ 0 0000 0 0 0 0 _/ \__/out$\__/=\__/"\__/"\__/ \_ \_/ \____/ \_/ \_/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 0 0 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 000 0 000 0 0 1 1 0 0 00 0 0 0 0 0 0 0 0 0 0 0 000000 0 0 1 1 0 0 _/ \__/out\__/=\__/out\__/+\__/"\__/_\__//\__/"\__/+\__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/c_name\__/+\__/"\__/\\__/_\__/"\__/ \_ \_/ \___/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 000 0 _/ \__/writeline\__/ \__/fo\__/,\__/out\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ 0 000 0 0 0 0 _/ \__/out\__/=\__/"\__/"\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ 0 000 0 0 0 0 0 00 0 00 0 0 0 0 0 0 00 0 0 0 _/ \__/for\__/ \__/k\__/=\__/0\__/ \__/to\__/ \__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/cc\__/-\__/1\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 000 0 000 0 0 1 1 0 0 000000 0 0 1 0 0 000 0 00 0 0 0 0 0 0 0 0 0 0 0 000000 0 0 0 0 1 1 0 0 _/ \__/out\__/=\__/out\__/+\__/"\__/ \__/\\__/"\__/+\__/string\__/(\__/"\__/_\__/"\__/,\__/len\__/(\__/in\__/\\__/m\__/[\__/j\__/]\__/\\__/c\__/[\__/k\__/]\__/\\__/c_name\__/)\__/)\__/+\__/"\__//\__/ \__/"\__/ \_ \_/ \___/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \______/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 000 0 _/ \__/writeline\__/ \__/fo\__/,\__/out\__/ \_ \_/ \_________/ \_/ \__/ \_/ \___/ \_/ 0 0000 0 _/ \__/next\__/ \_ \_/ \____/ \_/ 0 000000000 0 00 0 _/ \__/closefile\__/ \__/fo\__/ \_ \_/ \_________/ \_/ \__/ \_/ 0 000 0 00000000 0 _/ \__/end\__/ \__/function\__/ \_ \_/ \___/ \_/ \________/ \_/ 0 00000000 0 0000000000 0 0000 0 0 _/ \__/function\__/ \__/objmap.map\__/(\__/dat$\__/)\__/ \_ \_/ \________/ \_/ \__________/ \_/ \____/ \_/ \_/ 0 000 0 00000 0 00000 0 000 0 0 0 _/ \__/dat\__/=\__/lower\__/(\__/clean\__/(\__/dat\__/)\__/)\__/ \_ \_/ \___/ \_/ \_____/ \_/ \_____/ \_/ \___/ \_/ \_/ \_/ 0 0 0 000 0 000 0 0 _/ \__/l\__/=\__/len\__/(\__/dat\__/)\__/ \_ \_/ \_/ \_/ \___/ \_/ \___/ \_/ \_/ 0 000 0 0 0 0 _/ \__/out\__/=\__/"\__/"\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ 0 00 0 0 0 _/ \__/fs\__/=\__/1\__/ \_ \_/ \__/ \_/ \_/ \_/ 0 00000 0 000 0 000 0 _/ \__/m.map\__/=\__/new\__/ \__/map\__/ \_ \_/ \_____/ \_/ \___/ \_/ \___/ \_/ 0 0 0 000 0 000 0 _/ \__/m\__/\\__/dat\__/=\__/dat\__/ \_ \_/ \_/ \_/ \___/ \_/ \___/ \_/ 0 000 0 0 0 0 0 00 0 0 0 00000000 0 000000 0 0000 0 0000 0 _/ \__/for\__/ \__/j\__/=\__/1\__/ \__/to\__/ \__/l\__/ \__/;examine\__/ \__/single\__/ \__/char\__/ \__/seps\__/ \_ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \________/ \_/ \______/ \_/ \____/ \_/ \____/ \_/ 0 00 0 000 0 0 000 0 0 0 0 0 0 _/ \__/c$\__/=\__/mid\__/(\__/ \__/dat\__/,\__/j\__/,\__/1\__/)\__/ \_ \_/ \__/ \_/ \___/ \_/ \_/ \___/ \_/ \_/ \_/ \_/ \_/ \_/ 0 00 0 00000 0 0 0 0 _/ \__/if\__/ \__/issep\__/(\__/c\__/)\__/ \_ \_/ \__/ \_/ \_____/ \_/ \_/ \_/ \_/ 0 00 0 0 0 00 0 0 0 _/ \__/if\__/ \__/j\__/-\__/lj\__/>\__/1\__/ \_ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 00000 0 000 0 0 000 0 00 0 0 0 0 0 00 0 0 0 0 0 _/ \__/obj$\__/=\__/lower\__/(\__/mid\__/(\__/ \__/dat\__/,\__/lj\__/+\__/1\__/,\__/j\__/-\__/lj\__/-\__/1\__/)\__/)\__/ \_ \_/ \____/ \_/ \_____/ \_/ \___/ \_/ \_/ \___/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \_/ \_/ 0 00000000 0 0 000 0 00000 0 _/ \__/nc.chunk\__/ \__/=\__/new\__/ \__/chunk\__/ \_ \_/ \________/ \_/ \_/ \___/ \_/ \_____/ \_/ 0 00 0 000 0 000 0 _/ \__/nc\__/\\__/map\__/=\__/obj\__/ \_ \_/ \__/ \_/ \___/ \_/ \___/ \_/ 0 0 0 0 0 0 0 00 0 0 00 0 _/ \__/m\__/\\__/c\__/[\__/m\__/\\__/cc\__/]\__/=\__/nc\__/ \_ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \__/ \_/ 0 0 0 00 0 0 0 00 0 0 0 _/ \__/m\__/\\__/cc\__/=\__/m\__/\\__/cc\__/+\__/1\__/ \_ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 00000 0 _/ \__/endif\__/ \_ \_/ \_____/ \_/ 0 00 0 0 0 _/ \__/lj\__/=\__/j\__/ \_ \_/ \__/ \_/ \_/ \_/ 0 0 _/ \__/ \_ \_/ \_/ 0 00000000 0 0 000 0 00000 0 _/ \__/nc.chunk\__/ \__/=\__/new\__/ \__/chunk\__/ \_ \_/ \________/ \_/ \_/ \___/ \_/ \_____/ \_/ 0 00 0 000 0 0 0 _/ \__/nc\__/\\__/map\__/=\__/c\__/ \_ \_/ \__/ \_/ \___/ \_/ \_/ \_/ 0 00 0 00000 0 0000 0 _/ \__/nc\__/\\__/issep\__/=\__/true\__/ \_ \_/ \__/ \_/ \_____/ \_/ \____/ \_/ 0 0 0 0 0 0 0 00 0 0 00 0 _/ \__/m\__/\\__/c\__/[\__/m\__/\\__/cc\__/]\__/=\__/nc\__/ \_ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \__/ \_/ \_/ \__/ \_/ 0 0 0 00 0 0 0 00 0 0 0 _/ \__/m\__/\\__/cc\__/=\__/m\__/\\__/cc\__/+\__/1\__/ \_ \_/ \_/ \_/ \__/ \_/ \_/ \_/ \__/ \_/ \_/ \_/ 0 0000 0 _/ \__/else\__/ \_ \_/ \____/ \_/ 0 00000 0 | |||||
nSwi("print","printf") ;-[Consts] Const Max_Lines =5000 ;-[] Type Sep Field dat$ End Type Type scope Field scopeType ;In most cases we can blindly assume Field m.map[ Max_Lines],mc Field sub.scope[2555],sc Field name$ End Type Const Scope_Main=1,Scope_Function =2,Scope_Class=3 Type chunk Field real$,isSep Field map$,entry Field C_Name$,amb ;ambiguity flag. Nice.. Field ext$ ;Extra dat field, for code operations. End Type Type map Field c.chunk[2555],cc Field dat$ End Type Type code Field m.map[ Max_Lines],mc Field file$ End Type Main.scope=New scope ;-define seperators nSep("*"):nSep("(") nSep(")"):nSep("/") nSep(","):nSep("'") nSep(":"):nSep("*") nSep("-"):nSep("(") nSep(")"):nSep("+") nSep("<"):nSep("[") nSep("]"):nSep(Chr(34)) nSep(">"):nSep("\") nSep(" "):nSep("->") nsep("="):nRes("function") nRes("if") fScop.scop=nScop( "function") cScop.scop=nScop( "class") tScop.scop=nScop("type") ;test.code=loadCode("helloworld.vnx") test.code=loadCode("vCom.bb") code_toCpp(test) code_toConsoleApp(test,"SimpleTest.txt") debug_code(test,"DebugPrisim.txt") ;objMap("function(test,nope )") ;lM.map=genMap("if a->2 then b=(5*6)+2",map) WaitKey End Function nSep(c$) s.sep=New sep s\dat=c End Function Function genMap(real$,map$) End Function Function loadCode.code( file$) fo=ReadFile(file) If Not fo Return out.code=New code While Not Eof(fo) dat$=ReadLine( fo) If Len(dat)>2 m.map=objMap(dat) out\m[out\mc]=m out\mc=out\mc+1 EndIf Wend Print "Loaded >"+out\mc+" Lines of raw code" CloseFile fo Return out End Function ;--C++ Back end. Global l_file,l_life Function code_toConsoleAPP(in.code,file$) fo=WriteFile(file) l_life=fo If Not fo Return write_ConsoleHeaderC() write_codeC(in) write_consoleFooterC() CloseFile fo End Function Function write_codeC(in.code) For j=0 To in\mc-1 out$="" For k=0 To in\m[j]\cc-1 out=out+in\m[j]\c[k]\c_name Next WriteLine l_life,out Next End Function Function write_ConsoleHeaderC() WriteLine l_life,"#include <stdio.h>" WriteLine l_life,"int main(){" End Function Function write_consoleFooterC() WriteLine l_Life," return 0; /* Program termination. */" WriteLine l_life,"}" End Function Function code_toWindowApp(in.code) End Function Function code_toCPP( in.code) For j=0 To in\mc-1 m.map=in\m[j] amb=False amb_m$="" For k=0 To m\cc-1 c.chunk=m\c[k] map$=c\map If c\isSep ;-raw data enclapsulators If amb Select map Case Chr(34) If map=amb_m amb=False amb_m="" EndIf End Select Else Select map Case Chr(34) amb=True amb_m$=map over_amb=True End Select EndIf c\c_name=map Else c\c_name=map If isRes( map) Else c\c_name=switch(map) EndIf EndIf If amb If over_amb over_amb=0 Else c\c_name=map c\amb=True EndIf EndIf Next Next ;-- Scope Set up. main.scope=New scope main\scopeType=scope_main feedScope(main,in) debug_scope(main,"Scope_Debug.txt") End Function Function feedScope(base.scope,c.code,from=0,endAt$="") Print "Scope From >"+from For j=from To c\mc-1 .redo If j=>c\mc Exit m.map=c\m[j] Print "Obj Line" For k=0 To m\cc-1 a.chunk=m\c[k] n.chunk=nObj(m,k) p.chunk=nObj(m,k) If isScop(a\map) And j<>from And a\amb=False;Can't scope into thyself. ns.scope=New scope base\sub[base\sc]=ns base\sc=base\sc+1 If n<>Null Print "Scope Called >"+n\map ns\name=n\map Else Print "Warning -? Nameless Scope" ns\name="None specified" EndIf j=feedScope( ns,c,j,a\map) Goto redo Else ;-determine if exit point. Select a\map Case "end" If n<>Null Select n\map Case endAt exitScope=True Exit ;no need to parse on. anything else is excess. End Select EndIf End Select ;--- EndIf Next base\m[base\mc]=m base\mc=base\mc+1 If exitScope Return j+1 Next If from>0 Stop Print "Compile Error" Print endAt+" Without end "+endAt EndIf Print "Scope Out" Return j End Function Function debug_scope(base.scope,file$,debugSubs=True,useFile=0,pad$="--") If Not useFile fo=WriteFile( file) If Not fo Return Else fo=useFile EndIf WriteLine fo,pad+"Scope Name:"+base\name WriteLine fo,pad+"Obj Maps:"+base\mc For j=0 To base\mc-1 out$="" For k=0 To base\m[j]\cc-1 out=out+base\m[j]\c[k]\map Next WriteLine fo,pad+"["+out Next WriteLine fo,String("/\",Len(pad)) If debugSubs For j=0 To base\sc-1 debug_scope( base\sub[j],file,True,fo,pad+"--") Next EndIf If Not useFile CloseFile fo EndIf End Function Function nObj.chunk( m.map,from=0) from=from+1 If from=>m\cc Return For j=from To m\cc-1 If Not m\c[j]\isSep Return m\c[j] Next End Function Function pOIbj.chunk( m.map,from=0) from=from-1 If from<0 Return For j=from To 0 Step -1 If Not m\c[j]\isSep Return m\c[j] Next End Function Type switch Field from$,go$ End Type Function nswi(from$,go$) s.switch=New switch s\from=from s\go=go End Function Function switch$(dat$) For s.switch=Each switch If dat=s\from Return s\go Next Return dat End Function Function debug_code( in.code,file$) fo=WriteFile(file) If Not fo Return For j=0 To in\mc-1 out$="" For k=0 To in\m[j]\cc-1 out=out+" "+String(in\m[j]\c[k]\amb,Len(in\m[j]\c[k]\c_name))+" " Next WriteLine fo,out out$="" For k=0 To in\m[j]\cc-1 out=out+"_/"+in\m[j]\c[k]\c_name+"\_" Next WriteLine fo,out out="" For k=0 To in\m[j]\cc-1 out=out+" \"+String("_",Len(in\m[j]\c[k]\c_name))+"/ " Next WriteLine fo,out Next CloseFile fo End Function Function objMap.map(dat$) Dat=Lower(clean(dat)) l=Len(dat) out="" fs=1 m.map=New map m\dat=dat For j=1 To l ;examine single char seps c$=Mid( dat,j,1) If isSep(c) If j-lj>1 obj$=Lower(Mid( dat,lj+1,j-lj-1)) nc.chunk =New chunk nc\map=obj m\c[m\cc]=nc m\cc=m\cc+1 EndIf lj=j nc.chunk =New chunk nc\map=c nc\isSep=True m\c[m\cc]=nc m\cc=m\cc+1 Else EndIf Next Return m End Function Function isSep(v$) For s.sep=Each sep If v=s\dat Return True Next End Function ;-[ Simple Example prisim operation. A simple text compression algo] Function CompressCode(in.code,out$) ;-compression phase fo=WriteFile( out) If Not fo Return Local cache$[25000],cc ;temp string buffer. For j=0 To in\mc-1 m.map=in\m[j] For k=0 To m\cc-1 dat$=m\c[k]\map linkTo=-1 For a=0 To cc-1 If cache[a]=dat linkTo=a Exit EndIf Next If linkTo=-1 cache[cc]=dat cc=cc+1 EndIf If linkTo>-1 WriteByte fo,1 WriteInt fo,linkTo Else WriteByte fo,0 WriteString fo,dat EndIf Next Next CloseFile fo End Function Function clean$(dat$) out$=dat Return " "+Trim(out)+" " End Function Type res Field dat$ End Type Type scop ;scope indentifier only. Field dat$ Field moveMode End Type Const move_Up=1,move_Down=2 Function nScop.scop(txt$) s.scop=New scop s\dat=txt Return s End Function Function scopMove(n.scop,move) n\moveMode=move End Function Function isScop(txt$) For s.scop=Each scop If s\dat=txt Return True Next Return False End Function Function nRes(txt$) n.res=New res n\dat=Lower(txt) End Function Function isRes(txt$) For n.res= Each res If n\dat=txt Return True Next End Function |
Comments
| ||
interesting output... makes my eyes water |
Code Archives Forum