ref: c172296d07e2b73ca806669fff2e04471d3077aa
parent: 11fb32dec81eeda8aeea2c79afce2eab2ff0869f
parent: 9c55802d55c88e2464d9555f4d5770f30b6a3e91
author: Лu Лinveгa <aliceffekt@gmail.com>
date: Sun Feb 17 06:14:10 EST 2019
Merge pull request #12 from npisanti/master porting of K operator from orcaJS
--- a/sim.c
+++ b/sim.c
@@ -230,7 +230,7 @@
_('H', halt) \ _('I', increment) \ _('J', jump) \- _('K', kill) \+ _('K', konkat) \ _('L', loop) \ _('M', modulo) \ _('N', movement) \@@ -535,10 +535,23 @@
POKE(1, 0, PEEK(-1, 0));
END_OPERATOR
-BEGIN_OPERATOR(kill)
+BEGIN_OPERATOR(konkat)
LOWERCASE_REQUIRES_BANG;
- PORT(1, 0, OUT);
- POKE(1, 0, '.');
+ Isz len = (Isz)index_of(PEEK(0, -1));
+ if (len == 0) len = 1;
+ PORT(0, -1, IN | PARAM);
+ for ( Isz i = 0; i < len; ++i) {+ PORT(0, i+1, IN);
+ Glyph var = PEEK(0, i+1);
+ Usz var_idx = safe_index_of(var);
+ if( var_idx != 0 ){+ Glyph result = extra_params->vars_slots[var_idx];
+ if (result != '.'){+ PORT(1, i+1, OUT);
+ POKE(1, i+1, result);
+ }
+ }
+ }
END_OPERATOR
BEGIN_OPERATOR(loop)
--
⑨