Not logged in

Differences From Artifact [080e29e6e5c8e52f]:

File langs/bf.rx part of check-in [91fa12a859] - fix , in brainf*** compiler by crc on 2011-05-31 11:51:14. [annotate] [view]

To Artifact [091e42a7d1c983d4]:

File langs/bf.rx part of check-in [a6b38e42bb] - bf: fix loops by crc on 2011-05-31 14:14:04. [annotate] [view]


@@ -49,12 +49,8 @@
   ret,
 
 ( Actual BrainF*** compiler )
 variable ip
-variable lp
-
-: getLabel
-  @lp toString "L" ^strings'prepend ;
 
 : run
   t-here putn space @ip @ putc cr
   @ip @ ip ++
@@ -63,16 +59,16 @@
   [ '+ = ] [ drop bf_+ m, ] when
   [ '- = ] [ drop bf_- m, ] when
   [ '. = ] [ drop bf_. m, ] when
   [ ', = ] [ drop bf_, m, ] when
-  [ '[ = ] [ drop getLabel header t-here @last !d->xt lp ++ ] when
-  [ '] = ] [ drop dp # @, @, lit, 0 m, !jump, lp -- getLabel find drop @d->xt m, ] when
+  [ '[ = ] [ drop t-here dp # @, @, lit, 0 m, =jump, @target 0 m, ] when
+  [ '] = ] [ drop swap jump, m, t-here swap ! ] when
   drop ;
 
 : do
   [ run @ip @ ] while ;
 
 : bf: ( "- )
-  '~ accept tib keepString !ip do ;
+  '~ accept tib keepString !ip cr do ;
 
 ( Start Compilation of BrainF*** code after this )
 :main