📄 forth_8cpp-source.html
字号:
<a name="l00478"></a>00478 <a class="code" href="group__forth__imp.html#ga67">LIT</a>(<a class="code" href="group__forth__imp.html#gga104a160">XT_PAREN_BRANCH</a>), (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga12">XT_BACKWARD_BRANCH_COMMA</a>, <span class="comment">// ['] (branch) <BRANCH,</span><a name="l00479"></a>00479 <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00480"></a>00480 };<a name="l00481"></a>00481 <a name="l00482"></a>00482 <a name="l00490"></a><a class="code" href="group__forth__imp.html#ga18">00490</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>[] =<a name="l00491"></a>00491 {<a name="l00492"></a>00492 <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a120">XT_0_EQUALS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4), <span class="comment">// DUP 0= IF</span><a name="l00493"></a>00493 <a class="code" href="group__forth__imp.html#ga67">LIT</a>(DivideByZero), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>, <span class="comment">// -10 THROW THEN</span><a name="l00494"></a>00494 XT_UDM_SLASH_MOD, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4), <span class="comment">// UDM/MOD IF</span><a name="l00495"></a>00495 <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), XT_THROW, <span class="comment">// -11 THROW THEN</span><a name="l00496"></a>00496 <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00497"></a>00497 };<a name="l00498"></a>00498 <a name="l00499"></a>00499 <a name="l00506"></a><a class="code" href="group__forth__imp.html#ga19">00506</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>[] =<a name="l00507"></a>00507 {<a name="l00508"></a>00508 <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a199">XT_0_GREATER</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4), <span class="comment">// DUP 0> IF </span><a name="l00509"></a>00509 <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// -11 THROW THEN</span><a name="l00510"></a>00510 };<a name="l00511"></a>00511 <a name="l00512"></a>00512 <a name="l00519"></a><a class="code" href="group__forth__imp.html#ga20">00519</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>[] = <span class="comment">// ( n -- n )</span><a name="l00520"></a>00520 {<a name="l00521"></a>00521 <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4), <span class="comment">// DUP 0< IF </span><a name="l00522"></a>00522 <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// -11 THROW THEN</span><a name="l00523"></a>00523 };<a name="l00524"></a>00524 <a name="l00525"></a>00525 <a name="l00539"></a><a class="code" href="group__forth__imp.html#ga21">00539</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga21">XT_SM_SLASH_REM</a>[] =<a name="l00540"></a>00540 {<a name="l00541"></a>00541 <a class="code" href="group__forth__imp.html#gga104a181">XT_OVER</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, XT_TO_R, <span class="comment">// OVER >R 2DUP XOR >R</span><a name="l00542"></a>00542 <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, XT_TO_R, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <span class="comment">// ABS >R DABS R></span><a name="l00543"></a>00543 (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>, <span class="comment">// UM/MOD</span><a name="l00544"></a>00544 XT_R_FROM, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(5), <span class="comment">// R> 0< IF</span><a name="l00545"></a>00545 <a class="code" href="group__forth__imp.html#gga104a179">XT_NEGATE</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>, <a class="code" href="group__forth__imp.html#ga65">XT_BRANCH</a>(2), <span class="comment">// NEGATE CHECK-NEG ELSE </span><a name="l00546"></a>00546 (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>, <span class="comment">// CHECK-POS THEN</span><a name="l00547"></a>00547 <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, XT_R_FROM, XT_0_LESS, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2), <span class="comment">// SWAP R> 0< IF</span><a name="l00548"></a>00548 XT_NEGATE, XT_SWAP, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// NEGATE THEN SWAP</span><a name="l00549"></a>00549 };<a name="l00550"></a>00550 <a name="l00551"></a>00551 <a name="l00566"></a><a class="code" href="group__forth__imp.html#ga22">00566</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga22">XT_FM_SLASH_MOD</a>[] =<a name="l00567"></a>00567 {<a name="l00568"></a>00568 <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, XT_TO_R, <span class="comment">// DUP >R 2DUP XOR >R</span><a name="l00569"></a>00569 <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, XT_TO_R, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <span class="comment">// ABS >R DABS R></span><a name="l00570"></a>00570 (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>, <span class="comment">// UM/MOD</span><a name="l00571"></a>00571 XT_R_FROM, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(15), <span class="comment">// R> 0< IF</span><a name="l00572"></a>00572 <a class="code" href="group__forth__imp.html#gga104a179">XT_NEGATE</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>, <a class="code" href="group__forth__imp.html#gga104a181">XT_OVER</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(11), <span class="comment">// NEGATE CHECK-NEG OVER IF</span><a name="l00573"></a>00573 <a class="code" href="group__forth__imp.html#gga104a122">XT_1_MINUS</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)XT_CHECK_NEG, <a class="code" href="group__forth__imp.html#gga104a183">XT_R_FETCH</a>, XT_ABS, <span class="comment">// 1- CHECK-NEG R@ ABS</span><a name="l00574"></a>00574 <a class="code" href="group__forth__imp.html#gga104a184">XT_ROT</a>, <a class="code" href="group__forth__imp.html#gga104a118">XT_MINUS</a>, <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, <a class="code" href="group__forth__imp.html#ga65">XT_BRANCH</a>(2), <span class="comment">// ROT - SWAP THEN ELSE</span><a name="l00575"></a>00575 (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>, <span class="comment">// CHECK-POS THEN</span><a name="l00576"></a>00576 XT_SWAP, XT_R_FROM, XT_0_LESS, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2), <span class="comment">// SWAP R> 0< IF</span><a name="l00577"></a>00577 XT_NEGATE, XT_SWAP, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// NEGATE THEN SWAP</span><a name="l00578"></a>00578 };<a name="l00579"></a>00579 <a name="l00580"></a>00580 <a name="l00587"></a><a class="code" href="group__forth__imp.html#ga68">00587</a> <span class="preprocessor">#define XT_M_SLASH_MOD (((-1)/2) ? (CELL)XT_FM_SLASH_MOD : (CELL)XT_SM_SLASH_REM)</span><a name="l00588"></a>00588 <span class="preprocessor"></span><a name="l00589"></a>00589 <a name="l00595"></a><a class="code" href="group__forth__imp.html#ga23">00595</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga23">XT_SLASH_MOD</a>[] =<a name="l00596"></a>00596 {<a name="l00597"></a>00597 <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a186">XT_S_TO_D</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#ga68">XT_M_SLASH_MOD</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// >R S>D R> M/MOD</span><a name="l00598"></a>00598 };<a name="l00599"></a>00599 <a name="l00600"></a>00600 <a name="l00607"></a><a class="code" href="group__forth__imp.html#ga24">00607</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga24">XT_M_STAR</a>[] =<a name="l00608"></a>00608 {<a name="l00609"></a>00609 <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, XT_ABS, <span class="comment">// 2DUP XOR >R ABS SWAP ABS</span><a name="l00610"></a>00610 <a class="code" href="group__forth__imp.html#gga104a193">XT_UM_STAR</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <span class="comment">// UM* R> 0<</span><a name="l00611"></a>00611 <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2), <a class="code" href="group__forth__imp.html#gga104a218">XT_DNEGATE</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// IF DNEGATE THEN</span><a name="l00612"></a>00612 };<a name="l00613"></a>00613 <a name="l00614"></a>00614 <a name="l00620"></a><a class="code" href="group__forth__imp.html#ga25">00620</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga25">XT_STAR_SLASH_MOD</a>[] =<a name="l00621"></a>00621 {<a name="l00622"></a>00622 <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga24">XT_M_STAR</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#ga68">XT_M_SLASH_MOD</a>, <span class="comment">// >R M* R> M/MOD</span><a name="l00623"></a>00623 <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00624"></a>00624 };<a name="l00625"></a>00625 <a name="l00626"></a>00626 <a name="l00632"></a><a class="code" href="group__forth__imp.html#ga26">00632</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga26">XT_NUMBER_SIGN_S</a>[] =<a name="l00633"></a>00633 {<a name="l00634"></a>00634 <a class="code" href="group__forth__imp.html#gga104a111">XT_NUMBER_SIGN</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a180">XT_OR</a>, <a class="code" href="group__forth__imp.html#gga104a120">XT_0_EQUALS</a>, <span class="comment">// BEGIN # 2DUP OR 0=</span><a name="l00635"></a>00635 <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(-5), <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// UNTIL</span><a name="l00636"></a>00636 };<a name="l00637"></a>00637 <a name="l00638"></a>00638 <a name="l00646"></a><a class="code" href="group__forth__imp.html#ga27">00646</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga27">XT_D_DOT</a>[] =<a name="l00647"></a>00647 {<a name="l00648"></a>00648 <a class="code" href="group__forth__imp.html#gga104a132">XT_LESS_NUMBER_SIGN</a>, <a class="code" href="group__forth__imp.html#ga67">LIT</a>(<span class="charliteral">' '</span>), <span class="comment">// <# BL</span><a name="l00649"></a>00649 <a class="code" href="group__forth__imp.html#gga104a166">XT_HOLD</a>, <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>, <span class="comment">// HOLD DUP >R DABS </span><a name="l00650"></a>00650 (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga26">XT_NUMBER_SIGN_S</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#gga104a187">XT_SIGN</a>, <span class="comment">// #S R> SIGN </span><a name="l00651"></a>00651 <a class="code" href="group__forth__imp.html#gga104a112">XT_NUMBER_SIGN_GREATER</a>, <a class="code" href="group__forth__imp.html#gga104a191">XT_TYPE</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a> <span class="comment">// #> TYPE </span><a name="l00652"></a>00652 };<a name="l00653"></a>00653 <a name="l00654"></a>00654 <a name="l00660"></a><a class="code" href="group__forth__imp.html#ga28">00660</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga28">XT_DOT</a>[] =<a name="l00661"></a>00661 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -