Advertisement
hidde663

brainfuck interpreter in batch.bat

Nov 28th, 2016
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.59 KB | None | 0 0
  1. @echo off&setlocal EnableDelayedExpansion&mode 44,1000&set "session=%date:~3,10%_%time:~0,2%.%time:~3,2%"&set mem=60&set log=0&set maxinput=1022&set loop=0&set pointer=0&set tmp=0&set /a mem=!mem!/10*10&set ypointer=0&set /a c#=!ypointer!+!pointer!&if !mem! gtr 380 (set mem=380&set /a mem1=!mem!-1) else (set /a mem1=!mem!-1)
  2. set "fl= ÉÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍ»"&set "ml= ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹"&set "ll= ÈÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍͼ"
  3. set "ppx0= "&set "ppx1= "&set "ppx2= "&set "ppx3= "&set "ppx4= "&set "ppx5= "&set "ppx6= "&set "ppx7= "&set "ppx8= "&set "ppx9= "
  4. set "ppy0="&set "ppy10= "&set "ppy20= "&set "ppy30= "&set "ppy40= "&set "ppy50= "&set "ppy60= "&set "ppy70= "&set "ppy80= "&set "ppy90= "&set "ppy100= "&set "ppy110= "&set "ppy120= "&set "ppy130= "&set "ppy140= "&set "ppy150= "&set "ppy160= "&set "ppy170= "&set "ppy180= "&set "ppy190= "&set "ppy200= "&set "ppy210= "&set "ppy220= "&set "ppy230= "&set "ppy240= "&set "ppy250= "&set "ppy260= "&set "ppy270= "&set "ppy280= "&set "ppy290= "&set "ppy300= "&set "ppy300= "&set "ppy310= "&set "ppy320= "&set "ppy330= "&set "ppy340= "&set "ppy350= "&set "ppy360= "&set "ppy370= "&set "ppy380= "
  5. for /L %%a in (0,1,%mem%) do set "c%%a=0"&set "f%%a=00"
  6. :Display
  7. cls&title Brainfuck - Pointer: !c#! Value: !c%c#%!
  8. if '!cmdl!'=='' set parse=0
  9. if '!c%c#%!'=='' set c%c#%=0
  10. if !c%c#%! lss 10 set "f%c#%=00"
  11. if !c%c#%! geq 10 set "f%c#%=0"
  12. if !c%c#%! geq 100 set "f%c#%="
  13. if %parse% equ 1 goto Parse
  14. :Loop2
  15. if %tmp% equ 0 echo %ppx0% %ppx1% %ppx2% %ppx3% %ppx4% %ppx5% %ppx6% %ppx7% %ppx8% %ppx9%&echo %fl%
  16. set /a tmp+=10
  17. if %tmp% equ 10 echo !ppy0!º!f0!!c0!º!f1!!c1!º!f2!!c2!º!f3!!c3!º!f4!!c4!º!f5!!c5!º!f6!!c6!º!f7!!c7!º!f8!!c8!º!f9!!c9!º
  18. if %tmp% equ 20 echo !ppy10!º!f10!!c10!º!f11!!c11!º!f12!!c12!º!f13!!c13!º!f14!!c14!º!f15!!c15!º!f16!!c16!º!f17!!c17!º!f18!!c18!º!f19!!c19!º
  19. if %tmp% equ 30 echo !ppy20!º!f20!!c20!º!f21!!c21!º!f22!!c22!º!f23!!c23!º!f24!!c24!º!f25!!c25!º!f26!!c26!º!f27!!c27!º!f28!!c28!º!f29!!c29!º
  20. if %tmp% equ 40 echo !ppy30!º!f30!!c30!º!f31!!c31!º!f32!!c32!º!f33!!c33!º!f34!!c34!º!f35!!c35!º!f36!!c36!º!f37!!c37!º!f38!!c38!º!f39!!c39!º
  21. if %tmp% equ 50 echo !ppy40!º!f40!!c40!º!f41!!c41!º!f42!!c42!º!f43!!c43!º!f44!!c44!º!f45!!c45!º!f46!!c46!º!f47!!c47!º!f48!!c48!º!f49!!c49!º
  22. if %tmp% equ 60 echo !ppy50!º!f50!!c50!º!f51!!c51!º!f52!!c52!º!f53!!c53!º!f54!!c54!º!f55!!c55!º!f56!!c56!º!f57!!c57!º!f58!!c58!º!f59!!c59!º
  23. if %tmp% equ 70 echo !ppy60!º!f60!!c60!º!f61!!c61!º!f62!!c62!º!f63!!c63!º!f64!!c64!º!f65!!c65!º!f66!!c66!º!f67!!c67!º!f68!!c68!º!f69!!c69!º
  24. if %tmp% equ 80 echo !ppy70!º!f70!!c70!º!f71!!c71!º!f72!!c72!º!f73!!c73!º!f74!!c74!º!f75!!c75!º!f76!!c76!º!f77!!c77!º!f78!!c78!º!f79!!c79!º
  25. if %tmp% equ 90 echo !ppy80!º!f80!!c80!º!f81!!c81!º!f82!!c82!º!f83!!c83!º!f84!!c84!º!f85!!c85!º!f86!!c86!º!f87!!c87!º!f88!!c88!º!f89!!c89!º
  26. if %tmp% equ 100 echo !ppy90!º!f90!!c90!º!f91!!c91!º!f92!!c92!º!f93!!c93!º!f94!!c94!º!f95!!c95!º!f96!!c96!º!f97!!c97!º!f98!!c98!º!f99!!c99!º
  27. if %tmp% equ 110 echo !ppy100!º!f100!!c100!º!f101!!c101!º!f102!!c102!º!f103!!c103!º!f104!!c104!º!f105!!c105!º!f106!!c106!º!f107!!c107!º!f108!!c108!º!f109!!c109!º
  28. if %tmp% equ 120 echo !ppy110!º!f110!!c110!º!f111!!c111!º!f112!!c112!º!f113!!c113!º!f114!!c114!º!f115!!c115!º!f116!!c116!º!f117!!c117!º!f118!!c118!º!f119!!c119!º
  29. if %tmp% equ 130 echo !ppy120!º!f120!!c120!º!f121!!c121!º!f122!!c122!º!f123!!c123!º!f124!!c124!º!f125!!c125!º!f126!!c126!º!f127!!c127!º!f128!!c128!º!f129!!c129!º
  30. if %tmp% equ 140 echo !ppy130!º!f130!!c130!º!f131!!c131!º!f132!!c132!º!f133!!c133!º!f134!!c134!º!f135!!c135!º!f136!!c136!º!f137!!c137!º!f138!!c138!º!f139!!c139!º
  31. if %tmp% equ 150 echo !ppy140!º!f140!!c140!º!f141!!c141!º!f142!!c142!º!f143!!c143!º!f144!!c144!º!f145!!c145!º!f146!!c146!º!f147!!c147!º!f148!!c148!º!f149!!c149!º
  32. if %tmp% equ 160 echo !ppy150!º!f150!!c150!º!f151!!c151!º!f152!!c152!º!f153!!c153!º!f154!!c154!º!f155!!c155!º!f156!!c156!º!f157!!c157!º!f158!!c158!º!f159!!c159!º
  33. if %tmp% equ 170 echo !ppy160!º!f160!!c160!º!f161!!c161!º!f162!!c162!º!f163!!c163!º!f164!!c164!º!f165!!c165!º!f166!!c166!º!f167!!c167!º!f168!!c168!º!f169!!c169!º
  34. if %tmp% equ 180 echo !ppy170!º!f170!!c170!º!f171!!c171!º!f172!!c172!º!f173!!c173!º!f174!!c174!º!f175!!c175!º!f176!!c176!º!f177!!c177!º!f178!!c178!º!f179!!c179!º
  35. if %tmp% equ 190 echo !ppy180!º!f180!!c180!º!f181!!c181!º!f182!!c182!º!f183!!c183!º!f184!!c184!º!f185!!c185!º!f186!!c186!º!f187!!c187!º!f188!!c188!º!f189!!c189!º
  36. if %tmp% equ 200 echo !ppy190!º!f190!!c190!º!f191!!c191!º!f192!!c192!º!f193!!c193!º!f194!!c194!º!f195!!c195!º!f196!!c196!º!f197!!c197!º!f198!!c198!º!f199!!c199!º
  37. if %tmp% equ 210 echo !ppy200!º!f200!!c200!º!f201!!c201!º!f202!!c202!º!f203!!c203!º!f204!!c204!º!f205!!c205!º!f206!!c206!º!f207!!c207!º!f208!!c208!º!f209!!c209!º
  38. if %tmp% equ 220 echo !ppy210!º!f210!!c210!º!f211!!c211!º!f212!!c212!º!f213!!c213!º!f214!!c214!º!f215!!c215!º!f216!!c216!º!f217!!c217!º!f218!!c218!º!f219!!c219!º
  39. if %tmp% equ 230 echo !ppy220!º!f220!!c220!º!f221!!c221!º!f222!!c222!º!f223!!c223!º!f224!!c224!º!f225!!c225!º!f226!!c226!º!f227!!c227!º!f228!!c228!º!f229!!c229!º
  40. if %tmp% equ 240 echo !ppy230!º!f230!!c230!º!f231!!c231!º!f232!!c232!º!f233!!c233!º!f234!!c234!º!f235!!c235!º!f236!!c236!º!f237!!c237!º!f238!!c238!º!f239!!c239!º
  41. if %tmp% equ 250 echo !ppy240!º!f240!!c240!º!f241!!c241!º!f242!!c242!º!f243!!c243!º!f244!!c244!º!f245!!c245!º!f246!!c246!º!f247!!c247!º!f248!!c248!º!f249!!c249!º
  42. if %tmp% equ 260 echo !ppy250!º!f250!!c250!º!f251!!c251!º!f252!!c252!º!f253!!c253!º!f254!!c254!º!f255!!c255!º!f256!!c256!º!f257!!c257!º!f258!!c258!º!f259!!c259!º
  43. if %tmp% equ 270 echo !ppy260!º!f260!!c260!º!f261!!c261!º!f262!!c262!º!f263!!c263!º!f264!!c264!º!f265!!c265!º!f266!!c266!º!f267!!c267!º!f268!!c268!º!f269!!c269!º
  44. if %tmp% equ 280 echo !ppy270!º!f270!!c270!º!f271!!c271!º!f272!!c272!º!f273!!c273!º!f274!!c274!º!f275!!c275!º!f276!!c276!º!f277!!c277!º!f278!!c278!º!f279!!c279!º
  45. if %tmp% equ 290 echo !ppy280!º!f280!!c280!º!f281!!c281!º!f282!!c282!º!f283!!c283!º!f284!!c284!º!f285!!c285!º!f286!!c286!º!f287!!c287!º!f288!!c288!º!f289!!c289!º
  46. if %tmp% equ 300 echo !ppy290!º!f290!!c290!º!f291!!c291!º!f292!!c292!º!f293!!c293!º!f294!!c294!º!f295!!c295!º!f296!!c296!º!f297!!c297!º!f298!!c298!º!f299!!c299!º
  47. if %tmp% equ 310 echo !ppy300!º!f300!!c300!º!f301!!c301!º!f302!!c302!º!f303!!c303!º!f304!!c304!º!f305!!c305!º!f306!!c306!º!f307!!c307!º!f308!!c308!º!f309!!c309!º
  48. if %tmp% equ 320 echo !ppy310!º!f310!!c310!º!f311!!c311!º!f312!!c312!º!f313!!c313!º!f314!!c314!º!f315!!c315!º!f316!!c316!º!f317!!c317!º!f318!!c318!º!f319!!c319!º
  49. if %tmp% equ 330 echo !ppy320!º!f320!!c320!º!f321!!c321!º!f322!!c322!º!f323!!c323!º!f324!!c324!º!f325!!c325!º!f326!!c326!º!f327!!c327!º!f328!!c328!º!f329!!c329!º
  50. if %tmp% equ 340 echo !ppy330!º!f330!!c330!º!f331!!c331!º!f332!!c332!º!f333!!c333!º!f334!!c334!º!f335!!c335!º!f336!!c336!º!f337!!c337!º!f338!!c338!º!f339!!c339!º
  51. if %tmp% equ 350 echo !ppy340!º!f340!!c340!º!f341!!c341!º!f342!!c342!º!f343!!c343!º!f344!!c344!º!f345!!c345!º!f346!!c346!º!f347!!c347!º!f348!!c348!º!f349!!c349!º
  52. if %tmp% equ 360 echo !ppy350!º!f350!!c350!º!f351!!c351!º!f352!!c352!º!f353!!c353!º!f354!!c354!º!f355!!c355!º!f356!!c356!º!f357!!c357!º!f358!!c358!º!f359!!c359!º
  53. if %tmp% equ 370 echo !ppy360!º!f360!!c360!º!f361!!c361!º!f362!!c362!º!f363!!c363!º!f364!!c364!º!f365!!c365!º!f366!!c366!º!f367!!c367!º!f368!!c368!º!f369!!c369!º
  54. if %tmp% equ 380 echo !ppy370!º!f370!!c370!º!f371!!c371!º!f372!!c372!º!f373!!c373!º!f374!!c374!º!f375!!c375!º!f376!!c376!º!f377!!c377!º!f378!!c378!º!f379!!c379!º
  55. if not %tmp% equ %mem% (echo %ml%&goto Loop2) else set tmp=0&echo %ll%&echo.
  56. if %parse% equ 1 (goto Parse) else set /p "in=Input="&set "in=^^!in!"&set "output="&if %log% equ 1 echo !in:~1,%maxinput%!>>%~dp0\!session!.log
  57. if '!in!'=='' (goto Loop2) else set cmdl=!in:~1,%maxinput%!
  58. :Parse
  59. set parse=1&set newc=!cmdl:~0,1!&set cmdl=!cmdl:~1,%maxinput%!
  60. if '"!cmdl:~1,1!"'=='"!cmdl:~0,%maxinput%!"' set parse=0
  61. if %loop% equ 1 if '"%newc%"'=='"]"' set parse=1
  62. if '^%newc%'=='^.' goto Convert
  63. if '^%newc%'=='^+' if not !c%c#%! equ 255 (set /a c%c#%+=1&goto Display) else set Parse=0&goto Display
  64. if '^%newc%'=='^-' if not !c%c#%! equ 0 set /a c%c#%-=1&goto Display
  65. if '^%newc%'=='^>' if not !c#! equ !mem1! (set "ppx!pointer!= "&set /a pointer+=1&if !pointer! equ 10 set "ppy!ypointer!= "&set pointer=0&set /a ypointer+=10&set "ppx!pointer!= "
  66. set "ppy!ypointer!="&set "ppx!pointer!= "&set /a c#=!ypointer!+!pointer!&goto Display)
  67. if '^%newc%'=='^<' if not !c#! equ 0 (set "ppx!pointer!= "&set /a pointer-=1&if !pointer! equ -1 set "ppy!ypointer!= "&set pointer=9&set /a ypointer-=10&set "ppx!pointer!= "
  68. set "ppy!ypointer!="&set "ppx!pointer!= "&set /a c#=!ypointer!+!pointer!&goto Display)
  69. if '^%newc%'=='^[' set /a loop+=1&set "loopcmd!loop!=!cmdl!"&goto Display
  70. if '^%newc%'=='^]' if !c%c#%! equ 0 (set /a loop-=1&goto Display) else set "cmdl=!loopcmd%loop%!"&goto Display
  71. if '^%newc%'=='^,' set /p "Value=Value="&if !Value! geq 0 if !Value! leq 255 set c!c#!=!Value!
  72. goto Display
  73. :Convert
  74. set "tempc=!c%c#%!"
  75. if !c%c#%! leq 31 for /f "skip=80 tokens=%tempc% delims=" %%a in (%~nx0) do set "dv=%%a"&goto Skipconvert
  76. set "number=!c%c#%!"&set /a "mod=!number!/31"&set /a "number=!number!-!mod!*31"&set /a mod+=80
  77. for /f "skip=%mod% tokens=%number% delims=" %%a in (%~nx0) do set "dv=%%a"&goto Skipconvert
  78. :skipconvert
  79. if '!output!'=='' if '!dv!'=='LF' echo.&set "output="&goto Display
  80. if '!dv!'=='LF' (echo !output!&Pause>nul&set "output="&goto Display) else set "output=!output!!dv!"&goto Display
  81.  LF    
  82. ^!"#$%&'()*+,-./0123456789:;<=>
  83. ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
  84. ^_`abcdefghijklmnopqrstuvwxyz{^|
  85. }~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›
  86. œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º
  87. »¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ
  88. ÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷ø
  89. ùúûüýþÿ
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement