From 8009270e7939bf48c7dea032fbd64abec1dce5ff Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 2 May 2020 20:32:20 -0400 Subject: [PATCH] Optimize parsing words --- blk/446 | 4 ++-- blk/447 | 3 +-- blk/449 | 3 +-- emul/forth.bin | Bin 5721 -> 5705 bytes 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/blk/446 b/blk/446 index 0babd58..d7cb9b0 100644 --- a/blk/446 +++ b/blk/446 @@ -3,8 +3,8 @@ : (parsec) ( a -- n f ) ( apostrophe is ASCII 39 ) - DUP C@ 39 = NOT IF 0 EXIT THEN ( a 0 ) - DUP 2+ C@ 39 = NOT IF 0 EXIT THEN ( a 0 ) + DUP C@ 39 = OVER 2+ C@ 39 = AND ( a f ) + NOT IF 0 EXIT THEN ( a 0 ) ( surrounded by apos, good, return ) 1+ C@ 1 ( n 1 ) ; diff --git a/blk/447 b/blk/447 index 1421743..bac471c 100644 --- a/blk/447 +++ b/blk/447 @@ -2,8 +2,7 @@ : _ ( c -- n ) ( '0' is ASCII 48 ) 48 - - DUP 0< IF EXIT THEN ( bad ) - DUP 10 < IF EXIT THEN ( good ) + DUP 0< ( bad ) OVER 10 < ( good ) OR IF EXIT THEN ( 'a' is ASCII 97. 59 = 97 - 48 ) 49 - DUP 0< IF EXIT THEN ( bad ) diff --git a/blk/449 b/blk/449 index 1e5a236..eb50ae5 100644 --- a/blk/449 +++ b/blk/449 @@ -2,8 +2,7 @@ : _ ( c -- n ) ( '0' is ASCII 48 ) 48 - - DUP 0< IF EXIT THEN ( bad ) - DUP 2 < IF EXIT THEN ( good ) + DUP 0< ( bad ) OVER 2 < ( good ) OR IF EXIT THEN ( bad ) 255 - ; diff --git a/emul/forth.bin b/emul/forth.bin index 0b1025c0961694e9ea8df0183481801d90d1c8c9..6c12adf3aab7b9abe6073f6494b02c17ca4135ae 100644 GIT binary patch delta 840 zcmX|9&rcIU6n-;1i?Gt&>24Q)gu|i@bhS{TG_gbxHqg-8RAZsa1;Y<*NP!TD2aQPd zqVWI;b5NU@UeuUy(Nm3y2ZEY3@#Mk8_%|3&TujXRrdvGB%zp2C^Sw9U+aK|Iylw9} z?0o=$%)7Sxda6z~SweB32WHd}`jD2O1+vV86^s_~yb%YYJJ1iWX@xve>%;*K7S$pZ zU-dz9SsXHY$&N@G{auox4XOkTJaE9rOCH2lW>(j3&bp_?6U@zv_r^fmUp>gVC-#kN zQ{CKyOg^T8f|V!)&}~Q9!8e(Nv4!PZi>?7JdX}Ymg`~JoeW|^$JiF%F7*BCSN%I*s z(3NO|rNk?qwB`3?gVC@j4GP%ZOYxg0=QmJUY8i@8i!8-^v?XM45Z+6Ln4sv>c-2(rdr>b!{~{$KpVjSOX?+b6|Ko-3KK_Au`}WT|L@40 zvcd`x>C!OFDK%OZFCyp2y7(SBX>>-amIHn8miaUaZ$ztok#vf2JFcqc3H_6}V_zUu cQETk`cCWQ-Md5)xjon4zv%Q3;5Xp|{KZ8K7tpET3 delta 856 zcmYLH&ubGw6n?WiDJCYnll`Hsr>&-GR??(sD+#hMz87fI7vN=qm$Qfa6K zFJ4T=4kG5#gP;YGSQILr#Dd^aP@#D6)c-*gS>I$+dzjh%-uLEvZ@xF5le@{_&QsWV z4*KtUX_AOv#( z{z1u*JpZHgkT={`d%F&3327f$;Nf8h67!{n#ib2q- z=72kz2!V_hCGepgMi^&nRKUbc<<^|7LYtDM1y(06^CVAb&r~KBZ4=`zQ{@6HwQ38r zN?rb#^_${y^vw4cYTyyZVx|Kvkd7Fw$8Nd@Y%?vS`(1pN>my(Ge=#KPoU#lDRd zme?*6KK=HnQedJ32d)g~M$aCDK(l;Wu9Im9gD)k@j7433CmL7d%tG`;%7&I$3@ZFp zbe4SQ9hyZ5PHd&X~ zv80MK6zSW@RryD4mTdBre)@7zcfiSA>O2|7{)Dfsz+ePuQ=)~3$BV*P3$NUYB>ap+ z``8w^!MAjKbwl^0GOgk6i`&T5bX8u#wTy-d-hm6btNDxVSat)$V$y&8UWTHW-fq;1 zII{1un1K+iG$nl5&Nv<}wA50k4x=Z{x7XKtU1`NcYjSRW{3t3W4GY+RN6PX%EgQn6 zAt=k+QiIow0aD|ij1y|oXy_KC;5GH67`)@ZjPoSP2h3!^)Q&4(`HXpvH290=zGwF6 XU-TF}GAr0!48EBw_P@}GaR&|