📄 forth_8cpp.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>forth/forth.cpp File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.1 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div><div class="nav"><a class="el" href="dir_000002.html">forth</a></div><h1>forth.cpp File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>Internal implementation of the forth virtual machine. <p>This program has been placed in the Public Domain by J.D.Medhurst (a.k.a. Tixy)<p>Definition in file <a class="el" href="forth_8cpp-source.html">forth.cpp</a>.<p><code>#include "<a class="el" href="common_8h-source.html">common.h</a>"</code><br><code>#include "<a class="el" href="forth_8h-source.html">forth.h</a>"</code><br><p><a href="forth_8cpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga59">LITTLE_ENDIAN</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga60">CELLS</a>(x) ((<a class="el" href="group__forth.html#ga0">CELL</a>)(((<a class="el" href="group__forth.html#ga0">CELL</a>*)256)+(x))-(<a class="el" href="group__forth.html#ga0">CELL</a>)((<a class="el" href="group__forth.html#ga0">CELL</a>*)256))</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga61">CHARS</a>(x) ((<a class="el" href="group__forth.html#ga0">CELL</a>)(((<a class="el" href="group__forth.html#ga2">CHAR</a>*)256)+(x))-(<a class="el" href="group__forth.html#ga0">CELL</a>)((<a class="el" href="group__forth.html#ga2">CHAR</a>*)256))</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga62">SLASH_CELL</a>(x) ((<a class="el" href="group__forth.html#ga0">CELL</a>*)(256+(x))-((<a class="el" href="group__forth.html#ga0">CELL</a>*)256))</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga63">SLASH_CHAR</a>(x) ((<a class="el" href="group__forth.html#ga2">CHAR</a>*)(256+(x))-((<a class="el" href="group__forth.html#ga2">CHAR</a>*)256))</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga64">ALIGNED</a>(x) (((x)+CELLS(1)-1)&~(CELLS(1)-1))</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga65">XT_BRANCH</a>(offset) XT_PAREN_BRANCH,CELLS(offset)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(offset) XT_PAREN_0BRANCH,CELLS(offset)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga67">LIT</a>(x) XT_PAREN_LITERAL,(<a class="el" href="group__forth.html#ga0">CELL</a>)x</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga68">XT_M_SLASH_MOD</a> (((-1)/2) ? (<a class="el" href="group__forth.html#ga0">CELL</a>)<a class="el" href="group__forth__imp.html#ga22">XT_FM_SLASH_MOD</a> : (<a class="el" href="group__forth.html#ga0">CELL</a>)<a class="el" href="group__forth__imp.html#ga21">XT_SM_SLASH_REM</a>)</td></tr><tr><td colspan="2"><br><h2>Enumerations</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga102">Exception</a> </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga103">ControlStackMarkers</a> { <a class="el" href="group__forth__imp.html#gga103a107">ColonMagic</a> = 12340, <a class="el" href="group__forth__imp.html#gga103a108">OrigMagic</a> = 12341, <a class="el" href="group__forth__imp.html#gga103a109">DestMagic</a> = 12342 }</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forth__imp.html#ga104">ForthXT</a> { <br> <a class="el" href="group__forth__imp.html#gga104a110">XT_STORE</a>, <a class="el" href="group__forth__imp.html#gga104a111">XT_NUMBER_SIGN</a>, <a class="el" href="group__forth__imp.html#gga104a112">XT_NUMBER_SIGN_GREATER</a>, <a class="el" href="group__forth__imp.html#gga104a113">XT_STAR</a>, <br> <a class="el" href="group__forth__imp.html#gga104a114">XT_PLUS</a>, <a class="el" href="group__forth__imp.html#gga104a115">XT_PLUS_STORE</a>, <a class="el" href="group__forth__imp.html#gga104a116">XT_PAREN_PLUS_LOOP</a>, <a class="el" href="group__forth__imp.html#gga104a117">XT_COMMA</a>, <br> <a class="el" href="group__forth__imp.html#gga104a118">XT_MINUS</a>, <a class="el" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="el" href="group__forth__imp.html#gga104a120">XT_0_EQUALS</a>, <a class="el" href="group__forth__imp.html#gga104a121">XT_1_PLUS</a>, <br> <a class="el" href="group__forth__imp.html#gga104a122">XT_1_MINUS</a>, <a class="el" href="group__forth__imp.html#gga104a123">XT_2_STORE</a>, <a class="el" href="group__forth__imp.html#gga104a124">XT_2_STAR</a>, <a class="el" href="group__forth__imp.html#gga104a125">XT_2_SLASH</a>, <br> <a class="el" href="group__forth__imp.html#gga104a126">XT_2_FETCH</a>, <a class="el" href="group__forth__imp.html#gga104a127">XT_2DROP</a>, <a class="el" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="el" href="group__forth__imp.html#gga104a129">XT_2OVER</a>, <br> <a class="el" href="group__forth__imp.html#gga104a130">XT_2SWAP</a>, <a class="el" href="group__forth__imp.html#gga104a131">XT_LESS_THAN</a>, <a class="el" href="group__forth__imp.html#gga104a132">XT_LESS_NUMBER_SIGN</a>, <a class="el" href="group__forth__imp.html#gga104a133">XT_EQUALS</a>, <br> <a class="el" href="group__forth__imp.html#gga104a134">XT_GREATER_THAN</a>, <a class="el" href="group__forth__imp.html#gga104a135">XT_TO_IN</a>, <a class="el" href="group__forth__imp.html#gga104a136">XT_TO_NUMBER</a>, <a class="el" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <br> <a class="el" href="group__forth__imp.html#gga104a138">XT_QUESTION_DUP</a>, <a class="el" href="group__forth__imp.html#gga104a139">XT_FETCH</a>, <a class="el" href="group__forth__imp.html#gga104a140">XT_ABS</a>, <a class="el" href="group__forth__imp.html#gga104a141">XT_ACCEPT</a>, <br> <a class="el" href="group__forth__imp.html#gga104a142">XT_ALIGN</a>, <a class="el" href="group__forth__imp.html#gga104a143">XT_ALIGNED</a>, <a class="el" href="group__forth__imp.html#gga104a144">XT_ALLOT</a>, <a class="el" href="group__forth__imp.html#gga104a145">XT_AND</a>, <br> <a class="el" href="group__forth__imp.html#gga104a146">XT_BASE</a>, <a class="el" href="group__forth__imp.html#gga104a147">XT_C_STORE</a>, <a class="el" href="group__forth__imp.html#gga104a148">XT_C_COMMA</a>, <a class="el" href="group__forth__imp.html#gga104a149">XT_C_FETCH</a>, <br> <a class="el" href="group__forth__imp.html#gga104a150">XT_CELL_PLUS</a>, <a class="el" href="group__forth__imp.html#gga104a151">XT_CELLS</a>, <a class="el" href="group__forth__imp.html#gga104a152">XT_CHAR_PLUS</a>, <a class="el" href="group__forth__imp.html#gga104a153">XT_CHARS</a>, <br> <a class="el" href="group__forth__imp.html#gga104a154">XT_PAREN_CONSTANT</a>, <a class="el" href="group__forth__imp.html#gga104a155">XT_COUNT</a>, <a class="el" href="group__forth__imp.html#gga104a156">XT_DEPTH</a>, <a class="el" href="group__forth__imp.html#gga104a157">XT_PAREN_DO</a>, <br> <a class="el" href="group__forth__imp.html#gga104a158">XT_DROP</a>, <a class="el" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="el" href="group__forth__imp.html#gga104a160">XT_PAREN_BRANCH</a>, <a class="el" href="group__forth__imp.html#gga104a161">XT_EMIT</a>, <br> <a class="el" href="group__forth__imp.html#gga104a162">XT_EXECUTE</a>, <a class="el" href="group__forth__imp.html#gga104a163">XT_EXIT</a>, <a class="el" href="group__forth__imp.html#gga104a164">XT_FILL</a>, <a class="el" href="group__forth__imp.html#gga104a165">XT_HERE</a>, <br> <a class="el" href="group__forth__imp.html#gga104a166">XT_HOLD</a>, <a class="el" href="group__forth__imp.html#gga104a167">XT_I</a>, <a class="el" href="group__forth__imp.html#gga104a168">XT_PAREN_0BRANCH</a>, <a class="el" href="group__forth__imp.html#gga104a169">XT_INVERT</a>, <br> <a class="el" href="group__forth__imp.html#gga104a170">XT_J</a>, <a class="el" href="group__forth__imp.html#gga104a171">XT_KEY</a>, <a class="el" href="group__forth__imp.html#gga104a172">XT_LEAVE</a>, <a class="el" href="group__forth__imp.html#gga104a173">XT_PAREN_LITERAL</a>, <br> <a class="el" href="group__forth__imp.html#gga104a174">XT_PAREN_LOOP</a>, <a class="el" href="group__forth__imp.html#gga104a175">XT_LSHIFT</a>, <a class="el" href="group__forth__imp.html#gga104a176">XT_MAX</a>, <a class="el" href="group__forth__imp.html#gga104a177">XT_MIN</a>, <br> <a class="el" href="group__forth__imp.html#gga104a178">XT_MOVE</a>, <a class="el" href="group__forth__imp.html#gga104a179">XT_NEGATE</a>, <a class="el" href="group__forth__imp.html#gga104a180">XT_OR</a>, <a class="el" href="group__forth__imp.html#gga104a181">XT_OVER</a>, <br> <a class="el" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="el" href="group__forth__imp.html#gga104a183">XT_R_FETCH</a>, <a class="el" href="group__forth__imp.html#gga104a184">XT_ROT</a>, <a class="el" href="group__forth__imp.html#gga104a185">XT_RSHIFT</a>, <br> <a class="el" href="group__forth__imp.html#gga104a186">XT_S_TO_D</a>, <a class="el" href="group__forth__imp.html#gga104a187">XT_SIGN</a>, <a class="el" href="group__forth__imp.html#gga104a188">XT_SPACE</a>, <a class="el" href="group__forth__imp.html#gga104a189">XT_STATE</a>, <br> <a class="el" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, <a class="el" href="group__forth__imp.html#gga104a191">XT_TYPE</a>, <a class="el" href="group__forth__imp.html#gga104a192">XT_U_LESS_THAN</a>, <a class="el" href="group__forth__imp.html#gga104a193">XT_UM_STAR</a>, <br> <a class="el" href="group__forth__imp.html#gga104a194">XT_UNLOOP</a>, <a class="el" href="group__forth__imp.html#gga104a195">XT_XOR</a>,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -