Execute Brain****: Difference between revisions
Content added Content deleted
(Add Janet interpreter.) |
|||
Line 2,320: | Line 2,320: | ||
íHola mundo! |
íHola mundo! |
||
</pre> |
</pre> |
||
=={{header|Furor}}== |
|||
<lang Furor> |
|||
argc 3 < { ."Usage: furor brainfuck.upu brainfuckpgmfile\n" }{ |
|||
2 argv getfile // dup #s print free |
|||
sto bfpgm |
|||
100000 mem dup maximize sto bfmem // Memóriaallokáció a brainfuck memóriaterület számára |
|||
tick sto startingtick |
|||
sbr §brainfuck |
|||
NL |
|||
tick @startingtick #g - ."Time = " print ." tick\n" |
|||
@bfmem free // A lefoglalt munkamemória felszabadítása |
|||
} |
|||
end |
|||
// =================================================== |
|||
brainfuck: |
|||
#g @bfpgm~ !{ rts } // Ha nulla a brainfuck progi hossza, semmit se kell csinálni. |
|||
zero p zero m // Indexregiszterek lenullázása (inicializálás) |
|||
((( @p @bfpgm~ < ) |
|||
§jumpingtable "+-<>[].," |
|||
@[]bfpgm @p // Az épp aktuális brainfuck utasítás kódja |
|||
switch // Ugrás a megfelelő brainfuck funkció rutinjára |
|||
____: inc p (<) // default action |
|||
_3c_: @m !{ rts } dec m goto §____ // < |
|||
_3e_: @m @bfmem~ >= { rts } inc m goto §____ // > |
|||
_2b_: #c @[++]bfmem @m #g goto §____ // + |
|||
_2d_: #c @[--]bfmem @m #g goto §____ // - |
|||
_2c_: @bfmem @m getchar [^] goto §____ |
|||
_2e_: @[]bfmem @m printchar goto §____ |
|||
_5b_: @[]bfmem @m then §____ |
|||
zero d @p ++ @bfpgm~ {|| |
|||
{} []@bfpgm '[ == { inc d {<} } |
|||
{} []@bfpgm '] == { @d !{ {+} sto p {>} } dec d } |
|||
|} (<) |
|||
_5d_: zero d 1 @p {|| {-} []@bfpgm '] == { inc d {<} } |
|||
{-} []@bfpgm '[ == { @d !{ {} !sum p {>} } dec d } |
|||
|} (<) |
|||
)) rts |
|||
// =================================================== |
|||
{ „startingtick” } |
|||
{ „bfpgm” } |
|||
{ „bfmem” } |
|||
{ „p” /* index az épp végrehajtandó brainfuck mnemonikra */ } |
|||
{ „m” /* index a brainfuck memóriaterületre */ } |
|||
{ „d” /* munkaváltozó */ } |
|||
// ======================================== |
|||
jumpingtable: |
|||
// + - < > [ ] . , |
|||
§_2b_ §_2d_ §_3c_ §_3e_ §_5b_ §_5d_ §_2e_ §_2c_ |
|||
</lang> |
|||
=={{header|GAP}}== |
=={{header|GAP}}== |