{VERSION 4 0 "IBM INTEL LINUX22" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 12 0 0 255 1 0 2 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 1 }{CSTYLE "" -1 256 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 16 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Cour ier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 6 6 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2 " -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "M aple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "R3 Font 2 " -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 128 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 258 1 {CSTYLE "" -1 -1 "Times" 1 16 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 259 1 {CSTYLE "" -1 -1 "Times" 1 24 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }3 1 0 0 12 12 3 0 3 0 2 2 19 1 }{PSTYLE "Maple Ou tput" -1 260 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 261 1 {CSTYLE "" -1 -1 "Times" 1 36 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }3 1 0 0 12 12 3 0 3 0 2 2 19 1 }{PSTYLE "Normal" -1 262 1 {CSTYLE "" -1 -1 "Times" 1 18 255 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 528 "restart: if kernelo pts(platform)=\"unix\" \n then unix:= true; win98:= false; \n date_st ring:= convert(substring(ssystem(\"date \"\"+%a %d/%m/%Y\"\" \")[2], 1 ..-2), symbol)\n else unix:= false; win98:= evalb(ssystem(\"win\")[2][ 1..13]=\"Vous utilisez\"); \n if win98 then tmp:= ssystem(\"date\")[2 ]; searchtext(\":\", tmp); \n tmp:= cat(substring(tmp, 1..%-2), \" \+ \", substring(tmp, %+1..-1));\n date_string:= substring(tmp, 22.. 35);\n else date_string:= ssystem(\"date /t\")[2][1..-2];\n fi: fi: ' unix'=unix, 'win98'=win98, 'date'= date_string;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/%%unixG%&falseG/%&win98GF%/%%dateGQ,20/06/2006~6\"" }} }{EXCHG {PARA 262 "" 0 "" {TEXT -1 56 "sous win98, taper [entr\351e] p our sortir de la fenetre DOS" }}{PAGEBK }{PARA 262 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "libname: liste0:= anam es(procedure): xmint:= 'xmint': xlyse:='xlyse':" }}}{EXCHG {PARA 261 " " 0 "" {TEXT -1 15 "xmint (V678.19)" }}{PARA 262 "" 0 "" {TEXT -1 39 " chargement automatique (pas de readlib)" }{TEXT 256 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 258 "" 0 "" {TEXT -1 63 "Copyright \+ (c) 1996-2005 Pierre L. Douillet " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 258 "" 0 "" {TEXT -1 11 "Licence GPL" }} {PARA 258 "" 0 "" {TEXT -1 0 "" }}{PARA 258 "" 0 "" {TEXT -1 282 "libr e reproduction pour un usage universitaire sous reserve d'une copie co mpl\350te,\navec reproduction du programme source dont, en particulier , la pr\351sente mention\n \naucune garantie de fiabilit\351. \nen par ticulier, toute utilisation dans un contexte industriel est vivement d \351conseill\351e" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 22 "Rou tines pr\351paratoires" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "gc ( ); kernelopts(ASSERT=true):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 465 "[libname][-1]: racine:= %[1..-4]:\ndo loc:= searchtext(\"//\" ,racine); if loc = 0 then break fi;\nracine:= cat(substring(racine,1.. loc-1),\"/\", substring(racine,loc+2..-1)); od:\ndo loc:= searchtext( \"\\\\\",racine); if loc = 0 then break fi;\nracine:= cat(substring(ra cine,1..loc-1),\"/\", substring(racine,loc+1..-1)); od:\nloc:= SearchT ext(\"MAPLE\", racine): if loc <> 0 then\nracine:= cat(substring(racin e,1..loc-1),\"Maple\", substring(racine,loc+5..-1)); fi: \n'racine'=ra cine; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%'racineGQ:C:/Program~Files /Maple~7/6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "kernelopts( version): Version:= substring(%, 1..searchtext(\",\", %)-1);\nVernum:= substring(%,7);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(VersionG%+Maple ~7.00G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'VernumG%\"7G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 32 "To be included in other packages" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 207 "try read( cat(racine, \"update/che ck.m\"));\nprint(`The usual 'update' directory stil exists, as requier ed`);\ncatch: print (` An 'update' repertory MUST be created, using 'p ldx' package`);;\nend try; print(``); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%WThe~usual~'update'~directory~stil~exists,~as~requieredG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%!G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 46 "Cr\351ation \+ de la liste des procedures savelib'ed" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 43 "Ne pas encombrer la biblioth\350que principale" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "unprotect(savelib); savelib:= proc() error \"sav elib is gone\" end;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 166 "# En cas d'erreur de routage, utiliser q qchose dans le genre :\n# select(has, march('list', \"C:\\\\MAPLEV6/li b\"), 2005);\n# march('delete', \"C:\\\\MAPLEV6/lib\", \"xmint.m\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 27 "Biblioth\350que compl\351mentai re" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "ever_load:= NULL :\nssavelib := NULL:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 1002 "xsavelib:= proc() loc al filename, values, library, pathname, f;\nglobal ssavelib, libname; \+ option `Copyright Pld`;\nif assigned(libname) then library := op(1, ev al([libname], 1))\n else error \"the global variable `libname' must be assigned\"\nend if;\nif nargs < 2 then error \"no names specified to \+ save\" end if;\nfilename := args[nargs];\nvalues := args[1 .. nargs - \+ 1] ;\nif not type(filename, '\{string, symbol\}') \n then error \"la st argument (filename) must be a string\" end if;\nif not searchtext( \".m\", filename, -2 .. -1) = 1 \n then error \"last argument (filena me) must be a *.m string\" end if;\n if not type([values], 'list(symbo l)') \n then f := remove(type, [values], 'symbol'); \n error \"all \+ arguments must be symbols, cannot save these %1\", f\n end if;\n path name := cat(library, \"/\", filename);\n f := subs('T' = (values, pat hname), proc() save T end proc);\n try f(); return; \n catch:\n fi nally ssavelib:= ssavelib, values; \n end try;\nerror \"unable to sa ve %1 in %2\", [values], library\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "# tzx:=\"\": xsavelib('tzx', `xmint.m`); xsavelib( 'tzx', `xlyse.m`);" }}}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{SECT 0 {PARA 3 "" 0 "" {TEXT -1 24 "Les routines de d\351codage" }} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 31 "Choix de la version Maple (6/8)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 359 "ANA_6:= [NINT, PINT, FRAC , REAL, HWFL, CPLX, TEXT, SYMB, REFM, INDX, TYPE, JOIN, POWR, MULT, DE VL, CLIN, GALF, FUNC, UNEV, EQUA, NEQU, LEQU, LESS, AND_, NOT_, OREL, \+ SEQU, LIST, LOCS, ARGS, LEXI, PROC, RANG, SET_, TABL, HFTB, CODM, MODU , LOAD, LOOP, COND, READ, SAVE, CODE, QUIT, ERR_, TRY_, RETP, BRK_, NE XT, USE_, `BIN$`, ITEM, HACH, GARB, FRGN, CTRL, DBUG]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "ANA_7:= [ op(ANA_6[1..26]), `XOR_`, `IMPL`, op(ANA_6[27..-1])]; ANA_8:= %:" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&ANA_7G7hn%%NINTG%%PINTG%%FRACG%%REALG%%HWFLG%%CPLXG%%TEXTG%%S YMBG%%REFMG%%INDXG%%TYPEG%%JOING%%POWRG%%MULTG%%DEVLG%%CLING%%GALFG%%F UNCG%%UNEVG%%EQUAG%%NEQUG%%LEQUG%%LESSG%%AND_G%%NOT_G%%ORELG%%XOR_G%%I MPLG%%SEQUG%%LISTG%%LOCSG%%ARGSG%%LEXIG%%PROCG%%RANGG%%SET_G%%TABLG%%H FTBG%%CODMG%%MODUG%%LOADG%%LOOPG%%CONDG%%READG%%SAVEG%%CODEG%%QUITG%%E RR_G%%TRY_G%%RETPG%%BRK_G%%NEXTG%%USE_G%%BIN$G%%ITEMG%%HACHG%%GARBG%%F RGNG%%CTRLG%%DBUGG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "ANA_0:= ANA_||Vernum;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%&ANA_0G7hn%%NINTG%%PINTG%%FRACG%%REA LG%%HWFLG%%CPLXG%%TEXTG%%SYMBG%%REFMG%%INDXG%%TYPEG%%JOING%%POWRG%%MUL TG%%DEVLG%%CLING%%GALFG%%FUNCG%%UNEVG%%EQUAG%%NEQUG%%LEQUG%%LESSG%%AND _G%%NOT_G%%ORELG%%XOR_G%%IMPLG%%SEQUG%%LISTG%%LOCSG%%ARGSG%%LEXIG%%PRO CG%%RANGG%%SET_G%%TABLG%%HFTBG%%CODMG%%MODUG%%LOADG%%LOOPG%%CONDG%%REA DG%%SAVEG%%CODEG%%QUITG%%ERR_G%%TRY_G%%RETPG%%BRK_G%%NEXTG%%USE_G%%BIN $G%%ITEMG%%HACHG%%GARBG%%FRGNG%%CTRLG%%DBUGG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "ANAMAX:= nops(ANA_0); ANA:=table(ANA_0):" } {TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'ANAMAXG\"#g" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "t2n:='t2n': seq(t2n(ANA[k]) =k, k=1..ANAMAX): assign(%);\nn2t:='n2t': seq(n2t(k)=ANA[k], k=1..ANAM AX): assign(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "say_as_v al:= proc(z) \"< \"||(z)||\" >\"; convert(%, symbol); end: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "say_as_adr:= proc(z) if type (z,odd) then [(z-1)/2] else pointto(z) fi; end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 155 "ana:= proc(expr) global ana0: if not typ e(expr,name) and type(expr,table) then\n'Table'(op(expr)) else expr fi ;\n %, ana0(addressof(expr), args[2..-1]); end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 146 "ana_v:= proc(expr) if not type(expr,name) and type(e xpr,table) then\n'Table'(op(expr)) else expr fi;\n %, ana0_m(addressof (expr), args[2..-1]); end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 143 "ana_ m:= proc(expr) if not type(expr,name) and type(expr,table) then\n'Tabl e'(op(expr)) else expr fi;\n ana0_m(addressof(expr), args[2..-1]); end :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 1782 "ana0:=proc(expr, disa) global say_as_txt, sa y_as_val, say_as_adr, pointtoo, ANA;\nlocal k, verb, temp, cas, foo, f aire;\n\nfoo:= proc(z) ; \n if z = 0 then 'OO' \n elif type(z, odd) \+ then [(z-1)/2]\n else pointtoo(args) # caveat, il peut y avoir deux ar guments... \n fi; end :\n\ncas[0]:= \{t2n(PINT), t2n(NINT), t2n(ARGS), t2n(LOCS), t2n(LEXI)\};\n faire[0]:= proc(t); [ANA[t[1]], seq(say_as_ val(gk), gk=t[2..-1]) ] ; end: \ncas[1]:= \{t2n(SYMB), t2n(TEXT)\};\n \+ faire[1]:= proc(t); [ANA[t[1]], foo(t[2]), foo(t[3]), say_as_txt(t[4.. -1])] ; end: \ncas[2]:= \{t2n(HACH)\}; \n faire[2]:= proc(t); map( pro c(z::nonnegint); if z <= ANAMAX \n then ANA[z] else pointtoo(z) fi \+ end, t); end:\ncas[3]:= \{t2n(DEVL)\};\n faire[3]:= proc(t) ; [ [AN A[t[1]], foo(t[2])], \n seq([foo(t[2*gk+1]), say_as_val(t[2*gk+2])], \+ gk=1..nops(t)/2-1)]; map(op, %); end:\ncas[4]:= \{t2n(HFTB)\};\n fair e[4]:= proc(t); [ANA[t[1]], `$`||(convert(t[2], 'hex')), \n (op@map) (foo, t[3..5]), op(t[6..-1])] end :\ncas[5]:= \{t2n(GALF)\};\n faire[ 5]:= proc(t); if type(t[3], odd) and t[3]<=92655\n then [ANA[t[1]], \+ (op@map)(foo, t[2..3]), op(t[4..-1]) ]; \n else [ANA[t[1]], (op@map) (say_as_adr, t[2..-1]) ]; \n fi: end:\ncas[6]:= \{t2n(PROC)\};\n fai re[6]:= proc(t); [ANA[t[1]], (op@map)(foo, t[2..5]), \n '`< code >`' , (op@map)(foo, t[7..-1])]; end :\ncas[7]:= \{t2n(CODE), t2n(COND)\}; \n faire[7]:= proc(t); [ANA[t[1]], (op@map)(foo, t[2..-1], 18)]; \nend :\n\n# ---------- code starts here ------------------\ntemp:= [disasse mble(expr)]; \nif nargs=1 then verb:= NULL else verb:= temp; \n if n ot type(disa, numeric) then assign(disa, temp) fi ; \nfi;\nfor k from \+ 0 to 7 do # print(k, member(temp[1], cas[k])); \nif member(temp[1], ca s[k]) then RETURN( verb, faire[k](temp)) fi; od; \nverb, [ ANA[temp[1 ]], (op@map)(foo, subsop(1=NULL, temp))] \nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 232 "unprotect('ana0_m'):\nana0_m:= proc() global \+ ana0; local tmp; tmp:= ana0(args); \nif nargs=2 and tmp[1][1]=t2n(PROC ) then \n'MATRIX'([tmp,['``','Args','Locs','Opts','RTab','Code','Desc' ,'Glob','Lexi']]); \nelse\n'MATRIX'([tmp]); \nfi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1034 "pointtoo:= proc(z) \nlocal qui, q ui2, disa, cut, tmp; \nglobal ANA;\ndescription \" z est l'addresse d' un objet \";\nif nargs=2 then cut:= args[2] else cut:=25 fi; \n try \+ \n qui:= pointto(z); \n if qui=NULL then qui2:= '` NULL`' else qui2 := convert(pointto(z), symbol);\n fi; \n catch : return convert(\"* \"| |(z)||\" *\", symbol); \n end try;\ndisa:= [disassemble(z)]; \n\nif di sa=[t2n(SEQU)] then return '` NULL`'\nelif member(disa[1], \{t2n(ITEM) ,t2n(HACH)\}) then return `*`||(ANA[disa[1]])||`*` \nelif disa[1]=t2n( TABL) then qui2:= convert('Tab'(op(qui)), symbol) \nelif disa[1]=t2n(S EQU) then qui2:= convert('Seq'(qui), symbol);\nelif disa[1]=t2n(LO CS) then qui2:= convert('Loc'[disa[2]], symbol);\nelif disa[1]=t2n(LEX I) then qui2:= convert('Lex'[disa[2]], symbol);\nfi;\ntry \nqui:= subs ('loc'='Loc', 'lex'='Lex', parse(qui2));\ncatch: qui:= qui2; print(qui 2, \"pas parsed\");\nend try; \nif eval(qui)=NULL then tmp:= '` NULL`' \n else tmp:= convert(eval(qui), symbol);\nfi;\nif length(tmp) " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 265 "say_as_txt:= proc(li) global char; local recurs; \+ \nrecurs:= proc(z) local reste; reste:= 'reste': if z= 0 then args els e\nprocname(iquo(z,256,'reste'),args[2..-1],reste) fi end: \nmap(recu rs, li); cat('`< `', (op@map)(z->char[z], %), '` >`'), '``'$(nops(li)- 1); end :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 140 "null:= addressof(NULL):\nseq(point to(assemble(t2n(SYMB),0,null,k)), k=1..255): char:= table([%]): \nma:= matrix(16,16,[0,%%]); char[0]:=NULL: " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#maG-%'matrixG6#7272\"\"!%\"|\"G%\"|#G%\"|$G%\"|%G%\"|&G%\"|'G %\"|(G%\"|)G%\"|*G%\"|+G%\"|,G%\"|-G%\"|.G%\"|/G%\"|0G72%\"|1G%\"|2G% \"|3G%\"|4G%\"|5G%\"|6G%\"|7G%\"|8G%\"|9G%\"|:G%\"|;G%\"| G%\"|?G%\"|@G72%\"~G%\"!G%\"%G%\"#G%\"$GFN%\"&G%\"'G%\"(G%\")G%\"*G%\" +G%\",G%\"-G%\".G%\"/G72%\"0G%\"1G%\"2G%\"3G%\"4G%\"5G%\"6G%\"7G%\"8G% \"9G%\":G%\";G%\"G%\"?G72%\"@G%\"AG%\"BG%\"CG%\"DG%\"EG%\"F G%\"GG%\"HG%\"IG%\"JG%\"KG%\"LG%\"MG%\"NG%\"OG72%\"PG%\"QG%\"RG%\"SG% \"TG%\"UG%\"VG%\"WG%\"XG%\"YG%\"ZG%\"[G%\"\\G%\"]G%\"^G%\"_G72%\"`G%\" aG%\"bG%\"cG%\"dG%\"eG%\"fG%\"gG%\"hG%\"iG%\"jG%\"kG%\"lG%\"mG%\"nG%\" oG72%\"pG%\"qG%\"rG%\"sG%\"tG%\"uG%\"vG%\"wG%\"xG%\"yG%\"zG%\"|frG%\"| grG%\"|hrG%\"|irG%\"|jrG72%\"|[sG%\"|\\sG%\"|]sG%\"|^sG%\"|_sG%\"|`sG% \"|asG%\"|bsG%\"|csG%\"|dsG%\"|esG%\"|fsG%\"|gsG%\"|hsG%\"|isG%\"|jsG7 2%\"|[tG%\"|\\tG%\"|]tG%\"|^tG%\"|_tG%\"|`tG%\"|atG%\"|btG%\"|ctG%\"|d tG%\"|etG%\"|ftG%\"|gtG%\"|htG%\"|itG%\"|jtG72%\"|[uG%\"|\\uG%\"|]uG% \"|^uG%\"|_uG%\"|`uG%\"|auG%\"|buG%\"|cuG%\"|duG%\"|euG%\"|fuG%\"|guG% \"|huG%\"|iuG%\"|juG72%\"|[vG%\"|\\vG%\"|]vG%\"|^vG%\"|_vG%\"|`vG%\"|a vG%\"|bvG%\"|cvG%\"|dvG%\"|evG%\"|fvG%\"|gvG%\"|hvG%\"|ivG%\"|jvG72%\" |[wG%\"|\\wG%\"|]wG%\"|^wG%\"|_wG%\"|`wG%\"|awG%\"|bwG%\"|cwG%\"|dwG% \"|ewG%\"|fwG%\"|gwG%\"|hwG%\"|iwG%\"|jwG72%\"|[xG%\"|\\xG%\"|]xG%\"|^ xG%\"|_xG%\"|`xG%\"|axG%\"|bxG%\"|cxG%\"|dxG%\"|exG%\"|fxG%\"|gxG%\"|h xG%\"|ixG%\"|jxG72%\"|[yG%\"|\\yG%\"|]yG%\"|^yG%\"|_yG%\"|`yG%\"|ayG% \"|byG%\"|cyG%\"|dyG%\"|eyG%\"|fyG%\"|gyG%\"|hyG%\"|iyG%\"|jyG72%\"|[z G%\"|\\zG%\"|]zG%\"|^zG%\"|_zG%\"|`zG%\"|azG%\"|bzG%\"|czG%\"|dzG%\"|e zG%\"|fzG%\"|gzG%\"|hzG%\"|izG%\"|jzG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {SECT 0 {PARA 3 "" 0 "" {TEXT -1 29 "Proc\351dure principale de xmint " }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "Cr\351ation de la table d'anal yse\005" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 180 "UUU_:='UUU_': \nxmint:= proc(P) global UUU_;\n if not type(P, procedure) then lprint(P, \"not a procedure\"); return fi;\n lprint(P);\n UUU_ := table(); `xmint/mmr ecurse`(P, 'UUU_')\nend:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 45 "R\351 cursion pour g\351rer les proc\351dures emboit\351es" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2555 "`xmint/mmrecurse`:= proc(P::procedure, UUU_) g lobal S, NoName; \nlocal disa, k;\n k := nops(op(op(UUU_))); k := k + \+ 1;\n userinfo(2, 'xmint', NoName, printf(\"%a : Now at level %d \\n\", procname, k));\n\nif type(P, name) \n then UUU_[k]['Name_']:= \" \" ||P||\" \" else UUU_[k]['Name_']:= \" \";\nfi;\n\nif ((k>1) and (UUU_[ k-1]['NomProvisoire']<> false)) \n then UUU_[k]['Name_']:= \" \" || \+ (UUU_[k-1]['NomProvisoire'])||\" \"; \nfi;\n\ndisa:= disassemble(addre ssof(P)):\nif disa[1] <> t2n(PROC) then disa:= disassemble(disa[2]); f i;\nif disa[1] <> t2n(PROC) \n then error \"%1 ne semble pas \352tre \+ une procedure, codes = %2\", P, disa ; fi;\nUUU_[k]['Break'] := false; \nUUU_[k]['LoopDepth'] := 0;\nUUU_[k]['AssignedParams'] := \{\}; \nUU U_[k]['AssignedLocs'] := \{\};\nUUU_[k]['AssignedGlobs'] := \{\}; \nUU U_[k]['UsedBeforeAssigned'] := \{\};\nUUU_[k]['UsedParams'] := \{\}; \+ \nUUU_[k]['UsedLocals'] := \{\};\nUUU_[k]['UsedGlobals'] := \{\}; \nUU U_[k]['DupLoop'] := \{\};\nUUU_[k]['LoopVar'] := []; \nUUU_[k]['Global Under'] := \{\};\nUUU_[k]['DeclaredProcNames'] := \{\}; \nUUU_[k]['Nom Provisoire'] := false; \nUUU_[k]['UnDecLocFunctions'] := \{\};\nUUU_[k ]['Message'] := NULL; \nUUU_[k]['Params'] := map(proc(z) disassemble( addressof(z)): \n if %[1] = t2n(TYPE) then pointto(%[2]) else z fi \+ end, [pointto(disa[2])]);\nUUU_[k]['Locals'] := [pointto(disa[3])]; \+ # op 2\nUUU_[k]['Globals'] := [pointto(disa[8])]; # op 6\nUUU_[k]['Le xicals'] := [pointto(disa[9])]; # op 7\n[disassemble(disa[9])]; \nUUU_ [k]['Lexicals2'] := map(pointto, [seq(%[2*gk], gk= 1..(nops(%)-1)/2)]) ; \n\n####\n\nUUU_[k]['GlobalUnder']:= convert(select(\n proc(z) eva lb(searchtext(\"_\", convert(z, string))= 1) end, UUU_[k]['Globals']), set);\n \n`xmint/Statements`('UUU_', pointto(disa[6]));\n\n UUU_[k] ['Locals'] := convert(UUU_[k]['Locals'], set);\n UUU_[k]['Params'] := \+ convert(UUU_[k]['Params'], set);\n UUU_[k]['Globals']:= convert(UUU_[k ]['Globals'],set);\n UUU_[k]['UsedGlobals'] := UUU_[k]['UsedGlobals'] \+ minus \n `xmint/FindConstants`(UUU_[k]['UsedGlobals'] minus UUU_[k] ['Globals']);\n UUU_[k]['UsedGlobals'] := UUU_[k]['UsedGlobals'] minus \n `xmint/FindProtected`(UUU_[k]['UsedGlobals'] minus UUU_[k]['Glo bals']);\n UUU_[k]['UsedGlobals'] := UUU_[k]['UsedGlobals'] minus \n \+ `xmint/FindNumber`(UUU_[k]['UsedGlobals']);\n UUU_[k]['Message']:= \+ [UUU_[k]['Message']]; \n S||(k):= convert(eval(UUU_), string): \n`xmi nt/PrintReport`('UUU_'); UUU_[k] := 'UUU_'[k];\n if k - 1 = 0 then use rinfo(2, 'xmint', NoName, printf(\"%a : Done\", procname))\n else user info(2, 'xmint', NoName, printf(\"%a : Back to level %d \\n\", procnam e, k - 1))\n fi;\nNULL; \nend:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 48 "Mise en tabl eau de diagnostic (avant impression)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 409 "`xmint/table`:= proc(zz) local tmp:\ntmp:= parse(zz) : \n subs('AssignedGlobs' = 'GlobsAssigned', 'AssignedLocs' = 'LocsAss igned', 'AssignedParams' = 'ParamsAssigned',\n 'UsedGlobals' = 'Globs Used', 'UsedLocals' = 'LocsUsed', 'UsedParams' = 'ParamsUsed',\n 'Glo balUnder' = 'GlobalsUnder', op(eval(tmp[1])));\n sort(%, (a, b) -> eva lb(convert(a, string) < convert(b, string)));\n array(map([lhs, rhs], \+ %))\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 17 " Petites routines" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "`xmint/GetType`:= proc(z) disassemble(addressof(z))[1]; end;" }} {PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 140 "`xmint/FindProtected`:= proc(Set) option `Copyright (c)`; \n \+ select(proc(z) type(z, protected) or searchtext(\"xmint/\",z)=1 end, S et); end; " }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 175 "`xmint/FindProtected`:= proc(Set) option `Copyrig ht (c)`;\n select(proc(z) type(z, protected) or \n (type(z,procedure) and searchtext(\"xmint/\", z) = 1) end proc, Set)\nend proc;" }} {PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "`xmint/FindConstants`:= proc(Set); select(type, Set, constant); \+ end;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "`xmint/FindNumber`:= proc(S et); select(type, Set, numeric); end;" }}{PARA 11 "" 1 "" {TEXT -1 0 " " }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 186 "`xmint/FindGlobal`:= proc(UUU_, nLevs, gToFind) opti on `Copyright (c)`; local c;\n for c to nops(UUU_) do if member(gToFi nd, UUU_[c]['Globals']) then RETURN(c) fi od; \nRETURN(nLevs) end;" }} {PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 411 "`xmint/FindLexical`:= proc(UUU_, nLev, lToFind) option `Copyrig ht (c)`;\nlocal a, b, c, d, e;\n a := abs(lToFind); b := op(2*a, eval( UUU_[nLev]['Lexicals'], 1));\n c := disassemble(addressof(b))[1];\n if c = t2n(LOCS) or c = t2n(ARGS) \n then d := nLev - 1\n elif c = t2n (LEXI) \n then e := disassemble(addressof(b))[2]; d := procname('UUU_ ', nLev - 1, e)\n else ERROR(\"invalid lexical type\", c)\n fi;\nRETU RN(d) end;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 371 "`xmint/UpdAssigned`:= proc(UUU_, varlist) option \+ `Copyright (c)`;\nlocal c;\n for c to nops(op(1, varlist)) do\n UUU_[ c]['AssignedParams'] := UUU_[c]['AssignedParams'] union op([1, c], var list);\n UUU_[c]['AssignedLocs'] := UUU_[c]['AssignedLocs'] union op( [2, c], varlist);\n UUU_[c]['AssignedGlobs'] := UUU_[c]['AssignedGlob s'] union op([3, c], varlist)\n end do\nend proc;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 480 "`xmint/Upd Used`:= proc(UUU_, varlist) option `Copyright (c)`;\nlocal c;\n for c \+ to nops(op(1, varlist)) do\n UUU_[c]['UsedParams'] := UUU_[c]['UsedPa rams'] union op([1, c], varlist);\n UUU_[c]['UsedLocals'] := UUU_[c][ 'UsedLocals'] union op([2, c], varlist);\n UUU_[c]['UsedBeforeAssigne d'] := UUU_[c]['UsedBeforeAssigned'] union \n (op([2, c], varlist) \+ minus UUU_[c]['AssignedLocs']);\n UUU_[c]['UsedGlobals'] := UUU_[c][' UsedGlobals'] union op([3, c], varlist)\n end do\nend proc;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 42 "Retran scription pour les messages compos\351s" }}{PARA 0 "" 0 "" {MPLTEXT 0 21 671 "`xmint/Map`:= proc(UUU_, Stat) option `Copyright (c)` ;\nlocal b, c, d, k; \n k := nops(op(op(UUU_)));\n c := Stat;\n for b to nops( UUU_[k]['Locals']) do d := pointto(assemble(t2n(LOCS), b)); c := subs( d = op(b, UUU_[k]['Locals']), c)\n end do;\n for b to nops(UUU_[k]['Pa rams']) do d := pointto(assemble(t2n(ARGS), b)); c := subs(d = op(b, U UU_[k]['Params']), c)\n end do;\n for b by 2 to nops(UUU_[k]['Lexicals ']) do\n d := pointto(assemble(t2n(LEXI), 1/2*b + 1/2));\n c := subs (d = op(b, eval(UUU_[k]['Lexicals'], 1)), c);\n d := pointto(assemble (t2n(LEXI), -1/2*b - 1/2));\n c := subs(d = op(b, eval(UUU_[k]['Lexic als'], 1)), c)\n end do;\n RETURN(convert(c, symbol))\nend proc;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 770 "`xmint/Map`:= proc(UUU_, St at) option `Copyright (c) Pierre L. Douillet ` ;\nlocal b, c, d, dd, k ; \n k := nops(op(op(UUU_)));\n c := Stat; \n ## pas ca, cela casse !! !! print(k, c); !!!!!\n ## il faut convertir avant, pour ne pas faire \+ sortir les lexicaux\n for b to nops(UUU_[k]['Locals']) do \n d := p ointto(assemble(t2n(LOCS), b)); c := subs(d = op(b, UUU_[k]['Locals']) , c);\n end do;\n for b to nops(UUU_[k]['Params']) do \n d := point to(assemble(t2n(ARGS), b)); c := subs(d = op(b, UUU_[k]['Params']), c) \n end do;\n for b to nops(UUU_[k]['Lexicals2']) do\n d:= pointto(a ssemble(t2n(LEXI), b)); dd:= pointto(assemble(t2n(LEXI), -b)); \n c := subs(d = op(b, UUU_[k]['Lexicals2']), dd = op(b, UUU_[k]['Lexicals 2']), c);\n end do;\nreturn (convert(c, string));\nend proc;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 " " 0 "" {TEXT -1 12 "PrintReports" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 164 "`xmint/DoIndents`:= proc(sToPrint, nLev) option `Copyright (c )`; \ncat(seq(\" \", gi = 1 .. 4*nLev)); printf(cat(%, sToPrint), args [3 .. nargs]); \n4*nLev ; end proc ; " }}{PARA 11 "" 1 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 775 "`xmint/PrintSet`:=proc (msg, Set, pEr)local i, len, Indent; Indent := '` : `'; \nif ev al(pEr) <> true \n then print(\"--------------\"||(eval(pEr))||\"---- ----------\"); pEr:= true; fi; \n printf('`%s%s%a`', substring(cat(ms g, '` `'),1..50),\n '` : \+ `', op(1, Set));\n len := length(Indent) + length(sprintf('`%a`', op( 1, Set)));\n if 1 < nops(Set) then printf('`, `'); len := len + 2 fi; \n for i from 2 to nops(Set) do\n if interface('screenwidth') < le n + length(sprintf('`%a`', op(i, Set))) + 3 \n then printf('`\\n% s`',Indent); len := length(Indent) fi;\n printf('`%a`', op(i, Set)) ; len := len + length(sprintf('`%a`', op(i, Set)));\n if i <> nops( Set) then printf('`, `'); len := len + 2 fi\n od; printf('`\\n`')\nen d:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2813 "`xmint/PrintReport` :=proc(UUU_) option `Copyright (c)`;\nlocal k, Temp, Er;\n# if faut de s 'Er' partout (affectation par effet de bord) !!!!!!! \nk := nops(op( op(UUU_))); Er:= UUU_[k]['Name_']; Er:= Er; \n\nTemp := `xmint/FindPro tected`(UUU_[k]['Params']) minus `xmint/FindConstants`(UUU_[k]['Params ']);\n if Temp <> \{\} then `xmint/PrintSet`(\"Parameters with same na me as system names: \", Temp, 'Er') fi;\nTemp := `xmint/FindProtected` (UUU_[k]['Locals']) minus `xmint/FindConstants`(UUU_[k]['Locals']);\n \+ if Temp <> \{\} then `xmint/PrintSet`(\"Local variables with same name as system names: \", Temp, 'Er') fi;\nTemp := `xmint/FindProtected`(U UU_[k]['Globals']) minus `xmint/FindConstants`(UUU_[k]['Globals']);\n \+ if Temp <> \{\} then `xmint/PrintSet`(\"Global variables with same nam e as system names: \", Temp, 'Er') fi;\nTemp := `xmint/FindConstants`( UUU_[k]['Params']);\n if Temp <> \{\} then `xmint/PrintSet`(\"Paramete rs with the same name as constants: \", Temp, 'Er') fi;\nTemp := `xmin t/FindConstants`(UUU_[k]['Locals']);\n if Temp <> \{\} then `xmint/Pri ntSet`(\"Local variables with the same name as constants: \", Temp, 'E r') fi;\nTemp := `xmint/FindConstants`(UUU_[k]['Globals']);\n if Temp \+ <> \{\} then `xmint/PrintSet`(\"Global variables with the same name as constants: \", Temp, 'Er') fi;\nTemp := `xmint/FindConstants`(UUU_[k] ['AssignedGlobs']);\n if Temp <> \{\} then `xmint/PrintSet`(\"These co nstants cannot be assigned a value: \", Temp, 'Er') fi;\nTemp := UUU_[ k]['GlobalUnder'];\n if Temp <> \{\} then `xmint/PrintSet`(\"These glo bal variables start with an '_': \", Temp, 'Er')fi;\nTemp := UUU_[k][' Globals'] minus (UUU_[k]['UsedGlobals'] union UUU_[k]['AssignedGlobs'] );\n if Temp <> \{\} then `xmint/PrintSet`(\"Declared global variable s, but never used: \", Temp, 'Er') fi;\nTemp := (UUU_[k]['UsedGlobals' ] union UUU_[k]['AssignedGlobs']) minus UUU_[k]['Globals'];\n if Temp <> \{\} then `xmint/PrintSet`(\"Names used as global names, but not d eclared: \", Temp, 'Er') fi;\nTemp := UUU_[k]['Locals'] minus (UUU_[k] ['AssignedLocs'] union UUU_[k]['UsedLocals']);\n if Temp<>\{\} then ` xmint/PrintSet`(\"These local variables were never used: \", Temp, 'Er ') fi;\nTemp := UUU_[k]['AssignedLocs'] minus UUU_[k]['UsedLocals'];\n if Temp<>\{\} then `xmint/PrintSet`(\"Assigned local variables, but \+ otherwise unused: \", Temp, 'Er')fi;\nTemp:= UUU_[k]['UsedBeforeAssign ed'];\n if Temp <> \{\} then `xmint/PrintSet`(\"Local variables used \+ before assigned : \", Temp, 'Er')fi;\nTemp := UUU_[k]['Params'] minus \+ (UUU_[k]['AssignedParams'] union UUU_[k]['UsedParams']);\n if Temp <> \{\} then `xmint/PrintSet`(\"Parameters never used explicitly: \", Te mp, 'Er') fi;\nTemp:= UUU_[k]['DupLoop']; \n if Temp <> \{\} then `x mint/PrintSet`(\"Loop variables used for nested loops: \", Temp, 'Er') fi;\nfor Temp in UUU_[k]['Message'] do `xmint/PrintSet`( op(Temp), 'E r'); od;\nNULL; end:" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 20 "Le coeur de la chose" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 658 "`xmint/Statements`:= proc(UUU_) op tion `Copyright (c)`;\nlocal disa, a, i, k, Stat;\n k := nops(op(op(UU U_))); if nargs < 2 then RETURN() fi;\n Stat := args[2 .. nargs];\n if `xmint/GetType`(Stat) = t2n(CODE) then\n disa:= [disassemble(address of(Stat))];\n a := nops(disa);\n for i from 2 to a do\n `xmint/Sta tement`('UUU_', pointto(disa[i]));\n if UUU_[k]['Break'] = true and \+ i <> a then \n UUU_[k]['Message']:= UUU_[k]['Message'], [\"This co de is unreachable: \", \n [seq(`xmint/Map`('UUU_', pointto(disa[g j])), gj=[$ i+1..a])]];\n break\n fi\n od;\n UUU_[k]['Break'] : = false\n else `xmint/Statement`('UUU_', Stat); UUU_[k]['Break'] := fa lse\n fi\nend;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "statement" {MPLTEXT 1 0 4991 "`xmint/Statement`:= proc(UUU_) option `Copyright (c ) `; global n2t; \nlocal a, b, c, d, e, k, typ, disa, Stat;\n# . ERROR pour [HFTB, QUIT] et les codes > HACH\n k := nops(op(op(UUU_))); if n args < 2 then RETURN() fi;\n Stat := args[2 .. nargs]; \n disa:= [disa ssemble(addressof(Stat))];\nif 2 < nargs then typ := t2n(SEQU) else ty p := disa[1] fi;\nif member(typ, \{t2n(UNEV), t2n(PINT), t2n(NINT), t2 n(REAL), t2n(CPLX), t2n(FRAC), t2n(TEXT)\}) then \n\nelif member(typ, \{t2n(SEQU), t2n(MULT), t2n(DEVL), t2n(CLIN), t2n(SET_), t2n(LIST), t 2n(ARGS), t2n(LEXI), t2n(FUNC), t2n(LOCS), t2n(TYPE), t2n(INDX), t2n(J OIN), t2n(RANG), t2n(OREL), t2n(POWR), t2n(NEQU), t2n(LEQU), t2n(LESS) , t2n(AND_), t2n(NOT_), t2n(SYMB), t2n(PROC), t2n(HACH), t2n(SAVE), t2 n(TABL), t2n(ITEM), t2n(READ)\}) then\n a := `xmint/Expression`('UUU_ ', args[2 .. nargs]); \n `xmint/UpdUsed`('UUU_', a);\n # if typ=t2n(FU NC) then print(args[2], a) fi;\n\nelif typ = t2n(EQUA) then\n a := `x mint/Expression`('UUU_', Stat); `xmint/UpdUsed`('UUU_', a);\n UUU_[k ]['Message'] := UUU_[k]['Message'], \n [\"This equation was used as a statement: \", [`xmint/Map`('UUU_', Stat)]] ; \n\nelif typ = t2n(LO AD) then\n if disassemble(disa[3])[1]=t2n(PROC) then\n UUU_[k]['No mProvisoire']:= `xmint/Map`('UUU_', pointto(disa[2]));\n fi; \n a : = `xmint/Expression`('UUU_', pointto(disa[3])); `xmint/UpdUsed`('UUU_' , a);\n UUU_[k]['NomProvisoire']:= false; \n b := `xmint/Expressi on`('UUU_', pointto(disa[2])); `xmint/UpdAssigned`('UUU_', b);\n \neli f typ = t2n(LOOP) then\n a := nops(disa);\n if a = 5 then\n c := ` xmint/Expression`('UUU_', pointto(disa[2]));\n `xmint/UpdAssigned`(' UUU_', c); `xmint/UpdUsed`('UUU_', c);\n d := \{seq(map(op, gb)[], g b = c)\};\n if 1 < nops(d) then ERROR(\"Too many loop variables in f or in loop (5)\") fi;\n if d <> \{\} then\n if (member(op(1, d), \+ UUU_[k]['Locals']) or \n member(op(1, d), UUU_[k]['Params'])) \+ and member(op(1, d), UUU_[k]['LoopVar'])\n then UUU_[k]['DupLoop'] \+ := UUU_[k]['DupLoop'] union d\n elif not (member(op(1, d), UUU_[k][ 'Locals']) or member(op(1, d), UUU_[k]['Params'])) \n then for b f rom k - 1 by -1 to 1\n do if member(op(1, d), UUU_[b]['LoopVar']) \+ \n then UUU_[k]['DupLoop'] := UUU_[k]['DupLoop'] union d; break \n fi od\n fi;\n UUU_[k]['LoopVar'] := [op(UUU_[k]['LoopVar ']), op(1, d)]\n fi;\n UUU_[k]['LoopDepth'] := UUU_[k]['LoopDepth' ] + 1;\n c := `xmint/Expression`('UUU_', pointto(disa[3])); `xmint/U pdUsed`('UUU_', c);\n c := `xmint/Expression`('UUU_', pointto(disa[4 ])); `xmint/UpdUsed`('UUU_', c);\n d := \{seq(map(op, gb)[], gb = c )\};\n `xmint/Statements`('UUU_', pointto(disa[5]));\n UUU_[k]['Lo opVar'] := [op(1 .. nops(UUU_[k]['LoopVar']) - 1, UUU_[k]['LoopVar'])] ;\n UUU_[k]['LoopDepth'] := UUU_[k]['LoopDepth'] - 1\n elif a = 7 t hen\n c := `xmint/Expression`('UUU_', pointto(disa[2]));\n `xmint/ UpdAssigned`('UUU_', c); `xmint/UpdUsed`('UUU_', c);\n d := \{seq(ma p(op, gb)[], gb = c)\};\n if 1 < nops(d) then ERROR(\"Too many loop \+ variables in full for loop (7)\") fi;\n if d <> \{\} then\n if (m ember(op(1, d), UUU_[k]['Locals']) \n or member(op(1, d), UUU_[k ]['Params'])) and member(op(1, d), UUU_[k]['LoopVar'])\n then UUU_[ k]['DupLoop'] := UUU_[k]['DupLoop'] union d\n elif not (member(op(1 , d), UUU_[k]['Locals']) or member(op(1, d), UUU_[k]['Params'])) \n \+ then for b from k - 1 by -1 to 1\n do if member(op(1, d), UUU_[b] ['LoopVar']) then UUU_[k]['DupLoop'] := UUU_[k]['DupLoop'] union d fi \n od\n fi;\n UUU_[k]['LoopVar'] := [op(UUU_[k]['LoopVar']), op(1, d)]\n fi;\n UUU_[k]['LoopDepth'] := UUU_[k]['LoopDepth'] + \+ 1;\n c := `xmint/Expression`('UUU_', pointto(disa[3])); `xmint/UpdUs ed`('UUU_', c);\n c := `xmint/Expression`('UUU_', pointto(disa[4])); `xmint/UpdUsed`('UUU_', c);\n c := `xmint/Expression`('UUU_', point to(disa[5])); `xmint/UpdUsed`('UUU_', c);\n c := `xmint/Expression`( 'UUU_', pointto(disa[6])); `xmint/UpdUsed`('UUU_', c);\n d := \{seq( map(op, gb)[], gb = c)\};\n `xmint/Statements`('UUU_', pointto(disa[ 7]));\n UUU_[k]['LoopVar'] := [op(1 .. nops(UUU_[k]['LoopVar']) - 1, UUU_[k]['LoopVar'])];\n UUU_[k]['LoopDepth'] := UUU_[k]['LoopDepth' ] - 1\n else ERROR(\"unrecognized kind of LOOP structure\")\n fi;\n \nelif typ = t2n(COND) then\n b := nops(disa);\n for c from 2 by 2 t o b - 1 do\n e := pointto(disa[c]); d := `xmint/Expression`('UUU_', \+ e); `xmint/UpdUsed`('UUU_', d)\n od;\n for c from 3 by 2 to b do `xm int/Statements`('UUU_', pointto(disa[c])) od;\n if b mod 2 = 0 then ` xmint/Statements`('UUU_', pointto(disa[b])) fi;\n\nelif member(typ, \{ t2n(BRK_), t2n(NEXT), t2n(ERR_), t2n(RETP) \}) then \n a := `xmint/E xpression`('UUU_', args[2 .. nargs]); `xmint/UpdUsed`('UUU_', a)\n\nel if typ = t2n(TRY_) then\n for b from 2 by 2 to nops(disa) do\n `xmi nt/Statements`('UUU_', pointto(disa[b]))\n od; \n if type(nops(dis a),odd) \n then `xmint/Statements`('UUU_', pointto(disa[-1])) fi; \+ \n\nelse kernelopts(dagtag = typ); error \" not implemented %1, %2, %3 \", typ, n2t(typ), %;\n\nfi\nend;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 279 "`xmint/BuildList`:= proc(nLevs, listVals) option \+ `Copyright (c) `;\nlocal i, L; \n L := [seq([seq(\{\}, gj = 1 .. nLevs )], gi = 1 .. 3)];\n for i by 3 to nops(listVals) do\n L[listVals[i]] [listVals[i + 1]] := L[listVals[i]][listVals[i + 1]] union listVals[i \+ + 2]\n od;\n RETURN(L)\nend;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 154 "`xmint/CombList`:=proc(A, B ) option `Copyright (c)`;\n[zip(`union`, op(1,A),op(1,B)), zip(`union` , op(2,A),op(2, B)), zip(`union`, op(3,A), op(3,B))];\nend;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "typematch" {MPLTEXT 1 0 8120 "`xmint/Expre ssion`:= proc(UUU_) option `Copyright (c) `;\nlocal a, disa, b, c, d, \+ e, f, g, fun_name, i, k, typ, Pfound, Lfound, Gfound;\nglobal `%%%quot e`, n2t;\n k := nops(op(op(UUU_)));\n if nargs < 2 then RETURN(`xmint/ BuildList`(k, [])) end if;\n a := args[2 .. nargs];\n if 2 < nargs the n typ := t2n(SEQU) else typ := `xmint/GetType`(a) end if;\n disa := di sassemble(addressof(a));\n if member(typ, \n \{t2n(PINT), t2n(NINT) , t2n(REAL), t2n(FRAC), t2n(CPLX), t2n(HWFL), t2n(TEXT)\}) then \n R ETURN(`xmint/BuildList`(k, []))\n\n elif typ = t2n(SYMB) then\n if a \+ = substring(`%%%quote`, 1) or a = substring(`%%%quote`, 1 .. 2) \n \+ or a = substring(`%%%quote`, 1 .. 3) \n then RETURN(`xmint/BuildLi st`(k, []))\n elif disassemble(addressof(args[2]))[1] = t2n(PROC) \n \+ # et cela se produit car le type de a est SYMB, \n # tandis \+ que son contenu est du type qui est le sien... PROC\n # bref, le \+ nom s'est perdu ... \n then `xmint/mmrecurse`(a, 'UUU_'); RETUR N(`xmint/BuildList`(k, []))\n else b := `xmint/FindGlobal`('UUU_', k, a); RETURN(`xmint/BuildList`(k, [3, b, \{a\}]) )\n end if\n elif typ = t2n(BRK_) then\n if UUU_[k]['LoopDepth'] = 0 then `xmint/DoIndents `(\"break found outside of loop body.\\n\", k)\n else UUU_[k]['Break' ] := true\n end if;\n RETURN(`xmint/BuildList`(k, []))\n elif typ = \+ t2n(NEXT) then\n if UUU_[k]['LoopDepth'] = 0 then `xmint/DoIndents`( \"next found outside of loop body.\\n\", k)\n else UUU_[k]['Break'] : = true\n end if;\n RETURN(`xmint/BuildList`(k, []))\n elif member(ty p, \{t2n(ERR_), t2n(RETP)\}) then\n UUU_[k]['Break'] := true; c := pr ocname('UUU_', pointto(disa[2])); RETURN(c)\n elif typ = t2n(TYPE) the n\n c := procname('UUU_', pointto(disa[2])); d := procname('UUU_', po intto(disa[3]));\n RETURN( `xmint/CombList`(c, d) )\n elif member(typ , \{t2n(INDX), t2n(JOIN), t2n(RANG), t2n(OREL), t2n(POWR), t2n(NEQU), \+ \n t2n(LEQU), t2n(LESS), t2n(AND_), t2n(EQUA)\}) then\n d := pr ocname('UUU_', pointto(disa[2])); \n e := procname('UUU_', pointto(di sa[3])); RETURN( `xmint/CombList`(d, e) )\n elif typ = t2n(NOT_) then \+ \n RETURN( procname('UUU_', pointto(disa[2])) )\n elif member(typ, \{ t2n(SEQU), t2n(MULT), t2n(DEVL), t2n(CLIN)\}) then\n b := nops([disa] );\n f := `xmint/BuildList`(k, []);\n for c from 2 to b \n do e : = procname('UUU_', pointto(disa[c])); f := `xmint/CombList`(f, e) end \+ do;\n RETURN(f)\n\n elif typ = t2n(FUNC) then\n fun_name := pointto( disa[2]);\n c := procname('UUU_', pointto(disa[3]));\n Pfound := op( 1, c);\n Lfound := op(2, c);\n Gfound := op(3, c);\n\n if fun_name \+ = 'typematch' then\n `xmint/UpdAssigned`('UUU_', subsop(2 = Lfound, \+ `xmint/BuildList`(k, [])));\n Lfound := `xmint/BuildList`(k, [])[2]; \n end if;\n \n if fun_name = 'seq' then\n b:= disassemble(disa[3 ]); if b[1] <> t2n(SEQU) then error \"bad seq function\" fi;\n b:= d isassemble(b[3]); if b[1] <> t2n(EQUA) then error \"bad seq function\" fi;\n d:= disassemble(b[2]);\n if member(d[1], \{t2n(LOCS), t2n(L EXI), t2n(ARGS)\}) \n then UUU_[k]['Message'] := UUU_[k]['Message' ], [\"seq var should be global : \", \n [`xmint/Map`('UUU_', point to(b[2])), type=n2t(d[1])]];\n elif d[1] <> t2n(SYMB) \n then UU U_[k]['Message'] := UUU_[k]['Message'], \n [\"variable 'seq' \340 c hanger : \", [`xmint/Map`('UUU_', pointto(b[2])), type=n2t(d[1])]];\n \+ else \n Gfound:= subs(pointto(b[2])=NULL, Gfound);\n fi;\n en d if;\n \n if fun_name = 'RETURN' or fun_name = ERROR then UUU_[k][ 'Break'] := true \n end if; \n\n #d := `xmint/GetType`(fun_name);\n \+ d:= disassemble(disa[2])[1];\n if member(d, \{t2n(PINT), t2n(NINT), \+ t2n(FRAC), t2n(REAL), t2n(CPLX)\}) then\n UUU_[k]['Message'] := UUU_ [k]['Message'],\n [\"This expression may be missing an operator li ke '*': \", [`xmint/Map`('UUU_', a)]]\n elif d = t2n(LOCS) then\n e := disassemble(addressof(fun_name))[2];\n # print(\"essai1\", e=dis assemble(disa[2])[2]);\n if not member(op(e, UUU_[k]['Locals']), UUU _[k]['DeclaredProcNames']) then\n UUU_[k]['UnDecLocFunctions'] := U UU_[k]['UnDecLocFunctions'] union \{op(e, UUU_[k]['Locals'])\};\n U UU_[k]['UsedLocals'] := UUU_[k]['UsedLocals'] union \{op(e, UUU_[k]['L ocals'])\}\n end if\n elif d = t2n(ARGS) then\n e := disassemble( addressof(fun_name))[2];\n if e>0 then # procname est ARGS[-2] !!!\n UUU_[k]['UsedParams'] := UUU_[k]['UsedParams'] union \{op(e, UUU_ [k]['Params'])\}\n end if; \n elif d = t2n(LEXI) then\n e := disa ssemble(addressof(fun_name))[2];\n # print(\"essai3\", e=disassemble (disa[2])[2]);\n f := `xmint/FindLexical`('UUU_', k, e);\n if 0 < \+ e then\n if not member(op(2*abs(e) - 1, eval(UUU_[k]['Lexicals'], 1 )), UUU_[f]['DeclaredProcNames']) then\n UUU_[f]['UnDecLocFunction s'] := \n UUU_[f]['UnDecLocFunctions'] union \{op(2*abs(e) - 1, \+ eval(UUU_[k]['Lexicals'], 1))\};\n UUU_[f]['UsedLocals'] := \n \+ UUU_[f]['UsedLocals'] union \{op(2*abs(e) - 1, eval(UUU_[k]['Lexica ls'], 1))\}\n end if\n else UUU_[f]['UsedParams'] := \n UUU _[f]['UsedParams'] union \{op(2*abs(e) - 1, eval(UUU_[k]['Lexicals'], \+ 1))\}\n end if\n elif d = t2n(INDX) then\n e := pointto(disassemb le(addressof(fun_name))[2]);\n f := `xmint/GetType`(e);\n if membe r(f, \{1, 2, 3, 4\}) then UUU_[k]['Message'] = UUU_[k]['Message'],\n \+ [\"This expression may be missing an operator like '*': \", [`xmint/ Map`('UUU_', a)]]\n elif f = t2n(LOCS) then\n g := disassemble(ad dressof(e))[2];\n if not member(op(g, UUU_[k]['Locals']), UUU_[k][' DeclaredProcNames']) then\n UUU_[k]['UnDecLocFunctions'] := \n \+ UUU_[k]['UnDecLocFunctions'] union \{op(disassemble(addressof(e))[ 2], UUU_[k]['Locals'])\};\n UUU_[k]['UsedLocals'] := UUU_[k]['Used Locals'] union \{op(g, UUU_[k]['Locals'])\}\n end if\n elif f = t 2n(ARGS) then\n g := disassemble(addressof(e))[2]; \n UUU_[k]['U sedParams'] := UUU_[k]['UsedParams'] union \{op(g, UUU_[k]['Params']) \}\n elif f = t2n(LEXI) then\n g := disassemble(addressof(e))[2]; \n i := `xmint/FindLexical`('UUU_', k, g);\n if 0 < i then\n \+ if not member(op(2*abs(g) - 1, eval(UUU_[k]['Lexicals'], 1)), UUU_[i] ['DeclaredProcNames'])\n then\n UUU_[i]['UnDecLocFunctions'] := \n UUU_[i]['UnDecLocFunctions'] union \{op(2*abs(g) - 1, \+ eval(UUU_[k]['Lexicals'], 1))\};\n UUU_[i]['UsedLocals'] := \n \+ UUU_[i]['UsedLocals'] union \{op(2*abs(g) - 1, eval(UUU_[k]['Le xicals'], 1))\}\n end if\n else UUU_[i]['UsedParams'] := \n \+ UUU_[i]['UsedParams'] union \{op(2*abs(g) - 1, eval(UUU_[k]['Lex icals'], 1))\}\n end if\n end if;\n e := pointto(disassemble(ad dressof(fun_name))[3]);\n f := procname('UUU_', e);\n Pfound := zi p(`union`, Pfound, op(1, f));\n Lfound := zip(`union`, Lfound, op(2, f));\n Gfound := zip(`union`, Gfound, op(3, f))\n else \n ## au tres types d'appels de fonction ... par exemple les SYMB et les PROC \+ \n# e := procname('UUU_', fun_name);\n e := procname('UUU_', poi ntto(disa[2]));\n Pfound := zip(`union`, Pfound, op(1, e));\n Lf ound := zip(`union`, Lfound, op(2, e));\n Gfound := zip(`union`, Gf ound, op(3, e));\n # print(d, fun_name);\n end if;\n RETURN([Pfou nd, Lfound, Gfound])\n \nelif typ = t2n(UNEV) then RETURN(`xmint/Build List`(k, []))\n elif member(typ, \{t2n(SET_), t2n(LIST)\}) then c := p rocname('UUU_', pointto(disa[2])); RETURN(c)\n elif typ = t2n(LOCS) th en\n b := disa[2]; c := op(b, UUU_[k]['Locals']); d := `xmint/BuildLi st`(k, [2, k, \{c\}]); RETURN(d)\n elif typ = t2n(ARGS) then\n b := d isa[2];\n if b < 1 then RETURN(`xmint/BuildList`(k, [])) end if;\n c := op(b, UUU_[k]['Params']);\n d := `xmint/BuildList`(k, [1, k, \{c \}]);\n RETURN(d)\n elif typ = t2n(LEXI) then\n b := disa[2];\n e : = `xmint/FindLexical`('UUU_', k, b);\n c := op(2*abs(b) - 1, eval(UUU _[k]['Lexicals'], 1));\n if b < 0 then d := `xmint/BuildList`(k, [1, \+ e, \{c\}]) else d := `xmint/BuildList`(k, [2, e, \{c\}]) end if;\n RE TURN(d)\n#### modif REFM\n elif typ = t2n(REFM) then \n if disassem ble(addressof(args[2]))[1] = t2n(PROC) \n then `xmint/mmrecurse`(a, 'UUU_'); return `xmint/BuildList`(k, [])\n else b := `xmint/FindGlo bal`('UUU_', k, a); return `xmint/BuildList`(k, [3, b, \{a\}])\n end \+ if\n\n else kernelopts(dagtag = typ); error \" not implemented %1, %2, %3\", typ, n2t(typ), %;\n end if\nend proc;" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 30 "Mise en forme avant sauvegarde" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "xlyse:= proc() print('` les \+ routines de disassemblage sont charg\351es `'): end: %();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%N~les~routines~de~disassemblage~sont~charg|dye s~G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "zen_col:= proc(uu, \+ kk); nops(uu): \n(`kernel/transpose`@matrix)(kk, iquo(%,kk)+1, [op(uu) , '``'$modp(-%,iquo(%,kk)+1)]); \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "liste2:= anames(procedure):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "liste3:= map( proc(z) convert(z,string); \nif substr ing(%, 1..6) <> \"xmint/\" then return NULL fi; substring(%, 7..-1); e nd, \n\{liste2\} minus \{liste0\}): liste_proc:= sort(convert(%, list) ): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "map(proc(z) `xmint/` ||z; end, liste_proc): \nliste_xmint:= [xmint, n2t, t2n, op(%)]: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 380 "\{liste2\}minus\{liste0\} m inus convert(liste_xmint, set): \nmap(proc(z) local k; \nfor k in [\"M atrix\", \"Vector\", \"print\", \"type\", \"index\", \"convert\", \"as sign\" ] \n do if searchtext(k,z)<>0 then return NULL fi; od; z; end, \+ %):\n% minus\{protect, `@`,interface, savelib,evalapply,fflush,matrix, zip,xsavelib,assign,unprotect\}:\nliste_xlyse:= sort(convert(% union \+ \{ANA, char, t2n, n2t\},list));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%, liste_xlyseG71%$ANAG%$anaG%%ana0G%'ana0_mG%&ana_mG%&ana_vG%%charG%$n2t G%)pointtooG%+say_as_adrG%+say_as_txtG%+say_as_valG%$t2nG%&xlyseG%(zen _colG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 123 "for kxz in liste_ xmint do\nassign(kxz, subs(seq('t2n'(n2t(kxxzz))=(kxxzz), kxxzz=1..ANA MAX), eval(kxz)));\n# xprint(kxz);\nod;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "unprotect('ana0_m'):\nfor kxz in liste_xlyse do\nass ign(kxz, subs(seq('t2n'(n2t(kxxzz))=(kxxzz), kxxzz=1..ANAMAX), eval(kx z)));\n# xprint(kxz);\nod; protect('ana0_m'): " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "xsavelib(op(liste_xmint), `xmint.m`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "xsavelib(op(liste_xlyse), `xlyse.m`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "'xmint'= zen_col(liste_xmint,4); 'x lyse'=zen_col(liste_xlyse,4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%&xm intG-%'matrixG6#7(7&F$%1xmint/ExpressionG%.xmint/GetTypeG%2xmint/UpdAs signedG7&%$n2tG%4xmint/FindConstantsG%*xmint/MapG%.xmint/UpdUsedG7&%$t 2nG%1xmint/FindGlobalG%2xmint/PrintReportG%0xmint/mmrecurseG7&%0xmint/ BuildListG%2xmint/FindLexicalG%/xmint/PrintSetG%,xmint/tableG7&%/xmint /CombListG%1xmint/FindNumberG%0xmint/StatementG%!G7&%0xmint/DoIndentsG %4xmint/FindProtectedG%1xmint/StatementsGF@" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%&xlyseG-%'matrixG6#7&7&%$ANAG%&ana_mG%)pointtooG%$t2n G7&%$anaG%&ana_vG%+say_as_adrGF$7&%%ana0G%%charG%+say_as_txtG%(zen_col G7&%'ana0_mG%$n2tG%+say_as_valG%!G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "tmp:= 'tmp': map(xmint, [ssavelib]):" }}{PARA 6 "" 1 "" {TEXT -1 5 "xmint" }}{PARA 6 "" 1 "" {TEXT -1 3 "n2t" }}{PARA 6 "" 1 "" {TEXT -1 3 "t2n" }}{PARA 6 "" 1 "" {TEXT -1 17 "`xmint/BuildList` " }}{PARA 6 "" 1 "" {TEXT -1 16 "`xmint/CombList`" }}{PARA 6 "" 1 "" {TEXT -1 17 "`xmint/DoIndents`" }}{PARA 6 "" 1 "" {TEXT -1 18 "`xmint/ Expression`" }}{PARA 6 "" 1 "" {TEXT -1 21 "`xmint/FindConstants`" }} {PARA 6 "" 1 "" {TEXT -1 18 "`xmint/FindGlobal`" }}{PARA 6 "" 1 "" {TEXT -1 19 "`xmint/FindLexical`" }}{PARA 6 "" 1 "" {TEXT -1 18 "`xmin t/FindNumber`" }}{PARA 6 "" 1 "" {TEXT -1 21 "`xmint/FindProtected`" } }{PARA 6 "" 1 "" {TEXT -1 15 "`xmint/GetType`" }}{PARA 6 "" 1 "" {TEXT -1 11 "`xmint/Map`" }}{PARA 6 "" 1 "" {TEXT -1 19 "`xmint/PrintR eport`" }}{PARA 6 "" 1 "" {TEXT -1 16 "`xmint/PrintSet`" }}{PARA 6 "" 1 "" {TEXT -1 17 "`xmint/Statement`" }}{PARA 6 "" 1 "" {TEXT -1 18 "`x mint/Statements`" }}{PARA 6 "" 1 "" {TEXT -1 19 "`xmint/UpdAssigned`" }}{PARA 6 "" 1 "" {TEXT -1 15 "`xmint/UpdUsed`" }}{PARA 6 "" 1 "" {TEXT -1 17 "`xmint/mmrecurse`" }}{PARA 6 "" 1 "" {TEXT -1 13 "`xmint/ table`" }}{PARA 6 "" 1 "" {TEXT -1 22 "ANA, \"not a procedure\"" }} {PARA 6 "" 1 "" {TEXT -1 3 "ana" }}{PARA 6 "" 1 "" {TEXT -1 4 "ana0" } }{PARA 6 "" 1 "" {TEXT -1 6 "ana0_m" }}{PARA 6 "" 1 "" {TEXT -1 5 "ana _m" }}{PARA 6 "" 1 "" {TEXT -1 5 "ana_v" }}{PARA 6 "" 1 "" {TEXT -1 23 "char, \"not a procedure\"" }}{PARA 6 "" 1 "" {TEXT -1 3 "n2t" }} {PARA 6 "" 1 "" {TEXT -1 8 "pointtoo" }}{PARA 6 "" 1 "" {TEXT -1 10 "s ay_as_adr" }}{PARA 6 "" 1 "" {TEXT -1 10 "say_as_txt" }}{PARA 6 "" 1 " " {TEXT -1 10 "say_as_val" }}{PARA 6 "" 1 "" {TEXT -1 3 "t2n" }}{PARA 6 "" 1 "" {TEXT -1 5 "xlyse" }}{PARA 6 "" 1 "" {TEXT -1 7 "zen_col" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "3 0 0" 14 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }