DPANS15.HTM (18471B)
1 <HTML><HEAD> 2 <TITLE>DPANS94</TITLE> 3 <link disabled rel="stylesheet" href="mpexc6.css"> 4 <style>@import url(mpexc6.css);</style> 5 </head> 6 7 <BODY> 8 <table width=100%> 9 <tr> 10 <td align=left> 11 <a href=dpans14.htm><img src=left.gif 12 width=26 height=26 align=ALIGN border=0></a> 13 <a href=dpans16.htm><img src=right.gif 14 width=26 height=26 align=ALIGN border=0></a> 15 </td> 16 <td align=right> 17 <a href=dpans.htm#toc><img src=up.gif 18 width=26 height=26 align=ALIGN border=0></a> 19 <a name=15.>Table of Contents</a> 20 </td> 21 </tr> 22 </table> 23 <p> 24 <hr size=4> 25 26 <H1>15. The optional Programming-Tools word set</H1> 27 28 <p> 29 <code> 30 See: 31 <a href=dpansa15.htm>15.</a> The optional Programming-Tools word set 32 </code> 33 <p> 34 35 <hr> 36 <A name=15.1> 37 <H2>15.1 Introduction</H2> 38 </a> 39 40 This optional word set contains words most often used during the development 41 of applications. 42 <P> 43 44 <hr> 45 <A name=15.2> 46 <H2>15.2 Additional terms and notation</H2> 47 </a> 48 49 None. 50 <P> 51 52 <hr> 53 <A name=15.3> 54 <H2>15.3 Additional usage requirements</H2> 55 </a> 56 57 58 <hr> 59 <A name=15.3.1> 60 <H3>15.3.1 Environmental queries</H3> 61 </a> 62 63 Append table 15.1 to table 3.5. 64 <P> 65 66 <code> 67 See: 68 <A href=dpans3.htm#3.2.6>3.2.6</a> Environmental queries 69 </code> 70 <P> 71 72 Table 15.1 - Environmental query strings 73 <P> 74 75 76 <PRE> 77 String Value data type Constant? Meaning 78 ------ --------------- --------- ------- 79 TOOLS flag no programming-tools word set present 80 TOOLS-EXT flag no programming-tools extensions word set present 81 </PRE> 82 83 84 <P> 85 86 <hr> 87 <A name=15.3.2> 88 <H3>15.3.2 The Forth dictionary</H3> 89 </a> 90 91 A program using the words 92 <a href=dpans15.htm#15.6.2.0930>CODE</a> or 93 <a href=dpans15.htm#15.6.2.0470>;CODE</a> 94 associated with assembler code has an 95 environmental dependency on that particular instruction set and assembler 96 notation. 97 98 <P> 99 100 Programs using the words 101 <a href=dpans15.htm#15.6.2.1300>EDITOR</a> or 102 <a href=dpans15.htm#15.6.2.0740>ASSEMBLER</a> 103 require the 104 <a href=dpans16.htm>Search Order word set</a> 105 or an equivalent implementation-defined capability. 106 107 <P> 108 109 <code> 110 See: 111 <A href=dpans3.htm#3.3>3.3</a> The Forth dictionary 112 </code> 113 114 <P> 115 116 <hr> 117 <A name=15.4> 118 <H2>15.4 Additional documentation requirements</H2> 119 </a> 120 121 <hr> 122 <A name=15.4.1> 123 <H3>15.4.1 System documentation</H3> 124 </a> 125 126 <hr> 127 <A name=15.4.1.1> 128 <H4>15.4.1.1 Implementation-defined options</H4> 129 </a> 130 131 <UL> 132 <LI>ending sequence for input following 133 <a href=dpans15.htm#15.6.2.0470>15.6.2.0470</a> ;CODE and 134 <a href=dpans15.htm#15.6.2.0930>15.6.2.0930</a> CODE; 135 <LI>manner of processing input following 136 <a href=dpans15.htm#15.6.2.0470>15.6.2.0470</a> ;CODE and 137 <a href=dpans15.htm#15.6.2.0930>15.6.2.0930</a> CODE; 138 <LI>search-order capability for 139 <a href=dpans15.htm#15.6.2.1300>15.6.2.1300</a> EDITOR and 140 <a href=dpans15.htm#15.6.2.0740>15.6.2.0740</a> ASSEMBLER 141 (<a href=dpans15.htm#15.3.2>15.3.2</a> The Forth dictionary); 142 <LI>source and format of display by 143 <a href=dpans15.htm#15.6.1.2194>15.6.1.2194</a> SEE. 144 </ul> 145 146 <hr> 147 <a name=15.4.1.2> 148 <h4>15.4.1.2 Ambiguous conditions</h4> 149 </a> 150 151 <ul> 152 <LI>deleting the compilation word-list 153 (<a href=dpans15.htm#15.6.2.1580>15.6.2.1580</a> FORGET); 154 <LI>fewer than u+1 items on control-flow stack 155 (<a href=dpans15.htm#15.6.2.1015>15.6.2.1015</a> CSPICK, 156 <a href=dpans15.htm#15.6.2.1020>15.6.2.1020</a> CSROLL); 157 <LI>name can't be found 158 (<a href=dpans15.htm#15.6.2.1580>15.6.2.1580</a> FORGET); 159 <LI>name not defined via 160 <a href=dpans6.htm#6.1.1000>6.1.1000</a> CREATE 161 (<a href=dpans15.htm#15.6.2.0470>15.6.2.0470</a> ;CODE); 162 <LI> 163 <a href=dpans6.htm#6.1.2033>6.1.2033</a> POSTPONE applied to 164 <a href=dpans15.htm#15.6.2.2532>15.6.2.2532</a> [IF]; 165 <LI>reaching the end of the input source before matching 166 <a href=dpans15.htm#15.6.2.2531>15.6.2.2531</a> [ELSE] or 167 <a href=dpans15.htm#15.6.2.2533>15.6.2.2533</a> [THEN] 168 (<a href=dpans15.htm#15.6.2.2532>15.6.2.2532</a> [IF]); 169 <LI>removing a needed definition 170 (<a href=dpans15.htm#15.6.2.1580>15.6.2.1580</a> FORGET). 171 </UL> 172 <P> 173 174 <hr> 175 <A name=15.4.1.3> 176 <H4>15.4.1.3 Other system documentation</H4> 177 </a> 178 179 <ul> 180 <li>no additional requirements. 181 </ul> 182 <P> 183 184 <hr> 185 <A name=15.4.2> 186 <H3>15.4.2 Program documentation</H3> 187 </a> 188 189 <hr> 190 <A name=15.4.2.1> 191 <H4>15.4.2.1 Environmental dependencies</H4> 192 </a> 193 194 <UL> 195 <LI>using the words 196 <a href=dpans15.htm#15.6.2.0470>15.6.2.0470</a> ;CODE or 197 <a href=dpans15.htm#15.6.2.0930>15.6.2.0930</a> CODE. 198 </ul> 199 200 <hr> 201 <A name=15.4.2.2> 202 <h4>15.4.2.2 Other program documentation</h4> 203 </a> 204 <ul> 205 <LI>no additional requirements. 206 </UL> 207 208 <P> 209 210 <hr> 211 <A name=15.5> 212 <H2>15.5 Compliance and labeling</H2> 213 </a> 214 215 216 <hr> 217 <A name=15.5.1> 218 <H3>15.5.1 ANS Forth systems</H3> 219 </a> 220 221 The phrase <B>Providing the Programming-Tools word set</B> shall be 222 appended to the label of any Standard System that provides all of the 223 Programming-Tools word set. 224 225 <P> 226 227 The phrase <B>Providing name(s) from the Programming-Tools Extensions 228 word set</B> shall be appended to the label of any Standard System that 229 provides portions of the Programming-Tools Extensions word set. 230 231 <P> 232 233 The phrase <B>Providing the Programming-Tools Extensions word set</B> 234 shall be appended to the label of any Standard System that provides all 235 of the Programming-Tools and Programming-Tools Extensions word sets. 236 237 <P> 238 239 <hr> 240 <A name=15.5.2> 241 <H3>15.5.2 ANS Forth programs</H3> 242 </a> 243 244 The phrase <B>Requiring the Programming-Tools word set</B> shall be 245 appended to the label of Standard Programs that require the system to 246 provide the Programming-Tools word set. 247 248 <P> 249 250 The phrase <B>Requiring name(s) from the Programming-Tools Extensions 251 word set</B> shall be appended to the label of Standard Programs that 252 require the system to provide portions of the Programming-Tools 253 Extensions word set. 254 255 <P> 256 257 The phrase <B>Requiring the Programming-Tools Extensions word set</B> 258 shall be appended to the label of Standard Programs that require the 259 system to provide all of the Programming-Tools and Programming-Tools 260 Extensions word sets. 261 262 <P> 263 264 <hr> 265 <A name=15.6> 266 <H3>15.6 Glossary</H3> 267 </a> 268 269 270 <hr> 271 <A name=15.6.1> 272 <H3>15.6.1 Programming-Tools words</H3> 273 </a> 274 275 276 <hr> 277 <A name=15.6.1.0220> 278 <code> 279 15.6.1.0220 <b>.S</b> 280 </code> 281 </a> 282 <BR> 283 <B>dot-s</B> TOOLS 284 <BR> 285 <pre> 286 ( -- ) 287 </pre> 288 <P> 289 290 Copy and display the values currently on the data stack. The format of 291 the display is implementation-dependent. 292 293 <P> 294 295 .S may be implemented using pictured numeric output words. 296 Consequently, its use may corrupt the transient region identified by 297 <a href=dpans6.htm#6.1.0040>#></a>. 298 <P> 299 300 <code> 301 See: 302 <a href=dpansa15.htm#A.15.6.1.0220>A.15.6.1.0220 .S</a> , 303 <A href=dpans3.htm#3.3.3.6>3.3.3.6</a> Other transient regions. 304 </code> 305 306 <P> 307 308 <hr> 309 <A name=15.6.1.0600> 310 <code> 311 15.6.1.0600 <b>?</b> 312 </code> 313 </a> 314 <BR> 315 <B>question</B> TOOLS 316 <BR> 317 <pre> 318 ( a-addr -- ) 319 </pre> 320 <P> 321 322 Display the value stored at a-addr. 323 <P> 324 325 ? may be implemented using pictured numeric output words. Consequently, 326 its use may corrupt the transient region identified by 327 <a href=dpans6.htm#6.1.0040>#></a>. 328 <P> 329 330 <code> 331 See: 332 <A href=dpans3.htm#3.3.3.6>3.3.3.6</a> Other transient regions 333 </code> 334 335 <P> 336 337 <hr> 338 <A name=15.6.1.1280> 339 <code> 340 15.6.1.1280 <b>DUMP</b> 341 </code> 342 </a> 343 <BR> 344 TOOLS 345 <BR> 346 <pre> 347 ( addr u -- ) 348 </pre> 349 <P> 350 351 Display the contents of u consecutive addresses starting at addr. The 352 format of the display is implementation dependent. 353 354 <P> 355 356 DUMP may be implemented using pictured numeric output words. 357 Consequently, its use may corrupt the transient region identified by 358 <a href=dpans6.htm#6.1.0040>#></a>. 359 360 <P> 361 362 <code> 363 See: 364 <A href=dpans3.htm#3.3.3.6>3.3.3.6</a> Other transient regions 365 </code> 366 367 <P> 368 369 <hr> 370 <A name=15.6.1.2194> 371 <code> 372 15.6.1.2194 <b>SEE</b> 373 </code> 374 </a> 375 <BR> 376 TOOLS 377 <BR> 378 <pre> 379 ( <B>"<spaces>name"</B> -- ) 380 </pre> 381 <P> 382 383 Display a human-readable representation of the named word's definition. 384 The source of the representation (object-code decompilation, source 385 block, etc.) and the particular form of the display is implementation 386 defined. 387 388 <P> 389 390 SEE may be implemented using pictured numeric output words. 391 Consequently, its use may corrupt the transient region identified by 392 <a href=dpans6.htm#6.1.0040>#></a>. 393 394 <P> 395 396 <code> 397 See: 398 <A href=dpans3.htm#3.3.3.6>3.3.3.6</a> Other transient regions, 399 <a href=dpansa15.htm#A.15.6.1.2194>A.15.6.1.2194 SEE</a> 400 </code> 401 402 <P> 403 404 <hr> 405 <A name=15.6.1.2465> 406 <code> 407 15.6.1.2465 <b>WORDS</b> 408 </code> 409 </a> 410 <BR> 411 TOOLS 412 <BR> 413 <pre> 414 ( -- ) 415 </pre> 416 <P> 417 418 List the definition names in the first word list of the search order. 419 The format of the display is implementation-dependent. 420 421 <P> 422 423 WORDS may be implemented using pictured numeric output words. 424 Consequently, its use may corrupt the transient region identified by 425 <a href=dpans6.htm#6.1.0040>#></a>. 426 <P> 427 428 <code> 429 See: 430 <A href=dpans3.htm#3.3.3.6>3.3.3.6</a> Other transient regions, 431 <a href=dpansa15.htm#A.15.6.1.2465>A.15.6.1.2465 WORDS</a> 432 </code> 433 434 <P> 435 436 <hr> 437 <A name=15.6.2> 438 <H3>15.6.2 Programming-Tools extension words</H3> 439 </a> 440 441 442 <hr> 443 <A name=15.6.2.0470> 444 <code> 445 15.6.2.0470 <b>;CODE</b> 446 </code> 447 </a> 448 <BR> 449 <B>semicolon-code</B> TOOLS EXT 450 <P> 451 <pre> 452 Interpretation: Interpretation semantics for this word are undefined. 453 </pre> 454 <PRE> 455 Compilation: ( C: colon-sys -- ) 456 </PRE> 457 <P> 458 459 Append the run-time semantics below to the current definition. End the 460 current definition, allow it to be found in the dictionary, and enter 461 interpretation state, consuming colon-sys. 462 463 <P> 464 465 Subsequent characters in the parse area typically represent source code 466 in a programming language, usually some form of assembly language. 467 Those characters are processed in an implementation-defined manner, 468 generating the corresponding machine code. The process continues, 469 refilling the input buffer as needed, until an implementation-defined 470 ending sequence is processed. 471 472 473 <PRE> 474 Run-time: ( -- ) ( R: nest-sys -- ) 475 </PRE> 476 477 <P> 478 479 Replace the execution semantics of the most recent definition with the 480 name execution semantics given below. Return control to the calling 481 definition specified by nest-sys. An ambiguous condition exists if the 482 most recent definition was not defined with 483 <a href=dpans6.htm#6.1.1000>CREATE</a> or a user-defined 484 word that calls CREATE. 485 486 <PRE> 487 <i>name</i> Execution: ( i*x -- j*x ) 488 </PRE> 489 <P> 490 491 Perform the machine code sequence that was generated following ;CODE. 492 <P> 493 494 <code> 495 See: 496 <a href=dpansa15.htm#A.15.6.2.0470>A.15.6.2.0470 ;CODE</a> , 497 <A href=dpans6.htm#6.1.1250>6.1.1250 DOES></a> 498 </code> 499 500 <P> 501 502 <hr> 503 <A name=15.6.2.0702> 504 <code> 505 15.6.2.0702 <b>AHEAD</b> 506 </code> 507 </a> 508 <BR> 509 TOOLS EXT 510 <P> 511 <pre> 512 Interpretation: Interpretation semantics for this word are undefined. 513 </pre> 514 515 <PRE> 516 Compilation: ( C: -- orig ) 517 </PRE> 518 519 Put the location of a new unresolved forward reference orig onto the 520 control flow stack. Append the run-time semantics given below to the 521 current definition. The semantics are incomplete until orig is resolved 522 (e.g., by 523 <a href=dpans6.htm#6.1.2270>THEN</a>). 524 525 526 <PRE> 527 Run-time: ( -- ) 528 </PRE> 529 <P> 530 531 Continue execution at the location specified by the resolution of orig. 532 533 <P> 534 535 <hr> 536 <A name=15.6.2.0740> 537 <code> 538 15.6.2.0740 <b>ASSEMBLER</b> 539 </code> 540 </a> 541 <BR> 542 TOOLS EXT 543 <BR> 544 <pre> 545 ( -- ) 546 </pre> 547 <P> 548 549 Replace the first word list in the search order with the ASSEMBLER word 550 list. 551 <P> 552 553 <code> 554 See: 555 <A href=dpans16.htm#16.>16.</a> The optional Search-Order word set 556 </code> 557 558 <P> 559 560 <hr> 561 <A name=15.6.2.0830> 562 <code> 563 15.6.2.0830 <b>BYE</b> 564 </code> 565 </a> 566 <BR> 567 TOOLS EXT 568 <BR> 569 <pre> 570 ( -- ) 571 </pre> 572 <P> 573 574 Return control to the host operating system, if any. 575 <P> 576 577 578 <hr> 579 <A name=15.6.2.0930> 580 <code> 581 15.6.2.0930 <b>CODE</b> 582 </code> 583 </a> 584 <BR> 585 TOOLS EXT 586 <BR> 587 <pre> 588 ( <B>"<spaces>name"</B> -- ) 589 </pre> 590 <P> 591 592 Skip leading space delimiters. Parse name delimited by a space. Create 593 a definition for name, called a <B>code definition</B>, with the 594 execution semantics defined below. 595 596 <P> 597 598 Subsequent characters in the parse area typically represent source code 599 in a programming language, usually some form of assembly language. 600 Those characters are processed in an implementation-defined manner, 601 generating the corresponding machine code. The process continues, 602 refilling the input buffer as needed, until an implementation-defined 603 ending sequence is processed. 604 605 606 <PRE> 607 <i>name</i> Execution: ( i*x -- j*x ) 608 </PRE> 609 <P> 610 611 Execute the machine code sequence that was generated following CODE. 612 <P> 613 614 <code> 615 See: 616 <a href=dpansa15.htm#A.15.6.2.0930>A.15.6.2.0930 CODE</a> , 617 <A href=dpans3.htm#3.4.1>3.4.1</a> Parsing. 618 </code> 619 620 <P> 621 622 <hr> 623 <A name=15.6.2.1015> 624 <code> 625 15.6.2.1015 <b>CS-PICK</b> 626 </code> 627 </a> 628 <BR> 629 <B>c-s-pick</B> TOOLS EXT 630 <BR> 631 <P> 632 <pre> 633 Interpretation: Interpretation semantics for this word are undefined. 634 </pre> 635 <P> 636 <pre> 637 Execution: ( C: destu ... orig0|dest0 -- destu ... orig0|dest0 destu )( S: u -- ) 638 </pre> 639 <P> 640 641 Remove u. Copy destu to the top of the control-flow stack. An 642 ambiguous condition exists if there are less than u+1 items, each of 643 which shall be an orig or dest, on the control-flow stack before CS-PICK 644 is executed. 645 646 <P> 647 648 If the control-flow stack is implemented using the data stack, u shall 649 be the topmost item on the data stack. 650 651 <p> 652 <code> 653 See: 654 <a href=dpansa15.htm#A.15.6.2.1015>A.15.6.2.1015 CS-PICK</a> 655 </code> 656 <p> 657 658 659 <hr> 660 <A name=15.6.2.1020> 661 <code> 662 15.6.2.1020 <b>CS-ROLL</b> 663 </code> 664 </a> 665 <BR> 666 <B>c-s-roll</B> TOOLS EXT 667 <P> 668 <pre> 669 Interpretation: Interpretation semantics for this word are undefined. 670 </pre> 671 <P> 672 <pre> 673 Execution: ( C: origu|destu origu-1|destu-1 ... orig0|dest0 -- 674 origu-1|destu-1 ... orig0|dest0 origu|destu )( S: u -- ) 675 </pre> 676 <P> 677 678 Remove u. Rotate u+1 elements on top of the control-flow stack so that 679 origu|destu is on top of the control-flow stack. An ambiguous condition 680 exists if there are less than u+1 items, each of which shall be an orig 681 or dest, on the control-flow stack before CS-ROLL is executed. 682 683 <P> 684 685 If the control-flow stack is implemented using the data stack, u shall 686 be the topmost item on the data stack. 687 688 <p> 689 <code> 690 See: 691 <a href=dpansa15.htm#A.15.6.2.1020>A.15.6.2.1020 CS-ROLL</a> 692 </code> 693 <p> 694 695 696 <hr> 697 <A name=15.6.2.1300> 698 <code> 699 15.6.2.1300 <b>EDITOR</b> 700 </code> 701 </a> 702 <BR> 703 TOOLS EXT 704 <BR> 705 <pre> 706 ( -- ) 707 </pre> 708 <P> 709 710 Replace the first word list in the search order with the EDITOR word 711 list. 712 713 <P> 714 715 <code> 716 See: 717 <A href=dpans16.htm#16.>16.</a> The Optional Search-Order Word Set 718 </code> 719 720 <P> 721 722 <hr> 723 <A name=15.6.2.1580> 724 <code> 725 15.6.2.1580 <b>FORGET</b> 726 </code> 727 </a> 728 <BR> 729 TOOLS EXT 730 <BR> 731 <pre> 732 ( <B>"<spaces>name"</B> -- ) 733 </pre> 734 <P> 735 736 Skip leading space delimiters. Parse name delimited by a space. Find 737 name, then delete name from the dictionary along with all words added to 738 the dictionary after name. An ambiguous condition exists if name cannot 739 be found. 740 741 <P> 742 743 If the Search-Order word set is present, FORGET searches the compilation 744 word list. An ambiguous condition exists if the compilation word list 745 is deleted. 746 747 <P> 748 749 An ambiguous condition exists if FORGET removes a word required for 750 correct execution. 751 752 <P> 753 754 <b>Note:</b> This word is obsolescent and is included as a concession to 755 existing implementations. 756 757 <P> 758 759 <code> 760 See: 761 <a href=dpansa15.htm#A.15.6.2.1580>A.15.6.2.1580 FORGET</a> , 762 <A href=dpans3.htm#3.4.1>3.4.1</a> Parsing, 763 <a href=dpans6.htm#6.2.1850>6.2.1850 MARKER</a> 764 </code> 765 <P> 766 767 <hr> 768 <A name=15.6.2.2250> 769 <code> 770 15.6.2.2250 <b>STATE</b> 771 </code> 772 </a> 773 <BR> 774 TOOLS EXT 775 <BR> 776 <pre> 777 ( -- a-addr ) 778 </pre> 779 <P> 780 781 Extend the semantics of 782 <a href=dpans6.htm#6.1.2250>6.1.2250</a> STATE to allow 783 <a href=dpans15.htm#15.6.2.0470>;CODE</a> to change the 784 value in STATE. A program shall not directly alter the contents of 785 STATE. 786 787 <P> 788 789 <code> 790 See: 791 <A href=dpans3.htm#3.4>3.4</a> The Forth text interpreter, 792 <A href=dpans6.htm#6.1.0450>6.1.0450 :</a> , 793 <A href=dpans6.htm#6.1.0460>6.1.0460 ;</a> , 794 <A href=dpans6.htm#6.1.0670>6.1.0670 ABORT</a> , 795 <A href=dpans6.htm#6.1.2050>6.1.2050 QUIT</a> , 796 <A href=dpans6.htm#6.1.2500>6.1.2500 [</a> , 797 <A href=dpans6.htm#6.1.2540>6.1.2540 ]</a> , 798 <A href=dpans6.htm#6.2.0455>6.2.0455 :NONAME</a> 799 </code> 800 801 <P> 802 803 <hr> 804 <A name=15.6.2.2531> 805 <code> 806 15.6.2.2531 <b>[ELSE]</b> 807 </code> 808 </a> 809 <BR> 810 <B>bracket-else</B> TOOLS EXT 811 <BR> 812 <P> 813 <pre> 814 Compilation: Perform the execution semantics given below. 815 </pre> 816 <PRE> 817 Execution: ( <B>"<spaces>name"</b> ... -- ) 818 </PRE> 819 <P> 820 821 Skipping leading spaces, parse and discard space-delimited words from 822 the parse area, including nested occurrences of 823 <a href=dpans15.htm#15.6.2.2532>[IF]</a> ... 824 <a href=dpans15.htm#15.6.2.2533>[THEN]</a> and 825 [IF] ... [ELSE] ... [THEN], until the word [THEN] has been parsed and 826 discarded. If the parse area becomes exhausted, it is refilled as with 827 <a href=dpans6.htm#6.2.2125>REFILL</a>. 828 [ELSE] is an immediate word. 829 830 <P> 831 832 <code> 833 See: 834 <A href=dpans3.htm#3.4.1>3.4.1</a> Parsing, 835 <a href=dpansa15.htm#A.15.6.2.2531>A.15.6.2.2531 [ELSE]</a> 836 </code> 837 838 <P> 839 840 <hr> 841 <A name=15.6.2.2532> 842 <code> 843 15.6.2.2532 <b>[IF]</b> 844 </code> 845 </a> 846 <BR> 847 <B>bracket-if</B> TOOLS EXT 848 <BR> 849 <P> 850 <pre> 851 Compilation: Perform the execution semantics given below. 852 </pre> 853 <P> 854 <pre> 855 Execution: ( flag | flag <B>"<spaces>name"</b> ... -- ) 856 </pre> 857 <P> 858 859 If flag is true, do nothing. Otherwise, skipping leading spaces, parse 860 and discard space-delimited words from the parse area, including nested 861 occurrences of [IF] ... 862 <a href=dpans15.htm#15.6.2.2533>[THEN]</a> and [IF] ... 863 <a href=dpans15.htm#15.6.2.2531>[ELSE]</a> ... [THEN], until 864 either the word [ELSE] or the word [THEN] has been parsed and discarded. 865 If the parse area becomes exhausted, it is refilled as with 866 <a href=dpans6.htm#6.2.2125>REFILL</a>. 867 [IF] is an immediate word. 868 869 <P> 870 871 An ambiguous condition exists if [IF] is 872 <a href=dpans6.htm#6.1.2033>POSTPONE</a>d, or if the end of the 873 input buffer is reached and cannot be refilled before the terminating 874 [ELSE] or [THEN] is parsed. 875 876 <P> 877 878 <code> 879 See: 880 <A href=dpans3.htm#3.4.1>3.4.1</a> Parsing, 881 <a href=dpansa15.htm#A.15.6.2.2532>A.15.6.2.2532 [IF]</a> 882 </code> 883 884 <P> 885 886 <hr> 887 <A name=15.6.2.2533> 888 <code> 889 15.6.2.2533 <b>[THEN]</b> 890 </code> 891 </a> 892 <BR> 893 <B>bracket-then</B> TOOLS EXT 894 <BR> 895 <P> 896 <pre> 897 Compilation: Perform the execution semantics given below. 898 </pre> 899 <P> 900 <pre> 901 Execution: ( -- ) 902 </pre> 903 <P> 904 905 Does nothing. [THEN] is an immediate word. 906 <P> 907 <code> 908 See: 909 <a href=dpansa15.htm#A.15.6.2.2533>A.15.6.2.2533 [THEN]</a> 910 </code> 911 <p> 912 913 <hr> 914 <A href=dpans.htm#toc><IMG src="up.gif" ></A> Table of Contents 915 <BR> 916 <A href=dpans16.htm><IMG src="right.gif" ></A> 917 Next Section 918 <P> 919 </BODY> 920 </HTML>