Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. \ 94 TOOLS
  2.  
  3. : .S ( -- ) \ 94 TOOLS
  4. \ Ñêîïèðîâàòü è ïîêàçàòü çíà÷åíèÿ, íàõîäÿùèåñÿ íà ñòåêå äàííûõ. Ôîðìàò çàâèñèò
  5. \ îò ðåàëèçàöèè.
  6. \ .S ìîæåò áûòü ðåàëèçîâàíî ñ èñïîëüçîâàíèåì ñëîâ ôîðìàòíîãî ïðåîáðàçîâàíèÿ
  7. \ ÷èñåë. Ñîîòâåòñòâåííî, îí ìîæåò èñïîðòèòü ïåðåìåùàåìóþ îáëàñòü,
  8. \ èäåíòèôèöèðóåìóþ #>.
  9.    DEPTH .SN
  10. ;
  11.  
  12. : ? ( a-addr -- ) \ 94 TOOLS
  13. \ Ïîêàçàòü çíà÷åíèå, õðàíÿùååñÿ ïî àäðåñó a-addr.
  14. \ ? ìîæåò áûòü ðåàëèçîâàí ñ èñïîëüçîâàíèåì ñëîâ ôîðìàòíîãî ïðåîáðàçîâàíèÿ
  15. \ ÷èñåë. Ñîîòâåòñòâåííî, îí ìîæåò èñïîðòèòü ïåðåìåùàåìóþ îáëàñòü,
  16. \ èäåíòèôèöèðóåìóþ #>.
  17.   @ .
  18. ;
  19. : AHEAD  \ 94 TOOLS EXT
  20. \ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà.
  21. \ Êîìïèëÿöèÿ: ( C: -- orig )
  22. \ Ïîëîæèòü ìåñòî íåðàçðåøåííîé ññûëêè âïåðåä orig íà ñòåê óïðàâëåíèÿ.
  23. \ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ.
  24. \ Ñåìàíòèêà íåçàâåðøåíà äî òåõ ïîð, ïîêà orig íå ðàçðåøèòñÿ (íàïðèìåð,
  25. \ ïî THEN).
  26. \ Âðåìÿ âûïîëíåíèÿ: ( -- )
  27. \ Ïðîäîëæèòü âûïîëíåíèå ñ ïîçèöèè, çàäàííîé ðàçðåøåíèåì orig.
  28.   HERE BRANCH, >MARK 2
  29. ; IMMEDIATE
  30.  
  31. : [ELSE]   \ 94 TOOLS EXT
  32. \ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå.
  33. \ Âûïîëíåíèå: ( "<spaces>name..." -- )
  34. \ Ïðîïóñòèòü âåäóùèå ïðîáåëû, âûäåëèòü è îòáðîñèòü îãðàíè÷åííûå ïðîáåëàìè
  35. \ ñëîâà èç ðàçáèðàåìîé îáëàñòè, âêëþ÷àÿ âëîæåííûå [IF]...[THEN] è
  36. \ [IF]...[ELSE]...[THEN], äî âûäåëåíèÿ è îòáðàñûâàíèÿ ñëîâà [THEN].
  37. \ Åñëè ðàçáèðàåìàÿ îáëàñòü îïóñòîøàåòñÿ, îíà ñíîâà çàïîëíÿåòñÿ ïî REFILL.
  38. \ [ELSE] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ.
  39.     1
  40.     BEGIN
  41.       NextWord DUP
  42.       IF  
  43.          2DUP S" [IF]"   COMPARE 0= IF 2DROP 1+                 ELSE
  44.          2DUP S" [ELSE]" COMPARE 0= IF 2DROP 1- DUP  IF 1+ THEN ELSE
  45.               S" [THEN]" COMPARE 0= IF       1-                 THEN
  46.                                     THEN  THEN  
  47.       ELSE 2DROP REFILL  AND \   SOURCE TYPE
  48.       THEN DUP 0=
  49.     UNTIL  DROP ;  IMMEDIATE
  50.  
  51. : [IF] \ 94 TOOLS EXT
  52. \ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå.
  53. \ Âûïîëíåíèå: ( flag | flag "<spaces>name..." -- )
  54. \ Åñëè ôëàã "èñòèíà", íè÷åãî íå äåëàòü. Èíà÷å, ïðîïóñòèâ âåäóùèå ïðîáåëû,
  55. \ âûäåëÿòü è îòáðàñûâàòü îãðàíè÷åííûå ïðîáåëàìè ñëîâà èç ðàçáèðàåìîé îáëàñòè,
  56. \ âêëþ÷àÿ âëîæåííûå [IF]...[THEN] è [IF]...[ELSE]...[THEN], äî òåõ ïîð, ïîêà íå
  57. \ áóäåò âûäåëåíî è îòáðîøåíî ñëîâî [ELSE] èëè [THEN].
  58. \ Åñëè ðàçáèðàåìàÿ îáëàñòü îïóñòîøàåòñÿ, îíà ñíîâà çàïîëíÿåòñÿ ïî REFILL.
  59. \ [ELSE] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ.
  60.   0= IF POSTPONE [ELSE] THEN
  61. ; IMMEDIATE
  62.  
  63. : [THEN] \ 94 TOOLS EXT
  64. \ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå.
  65. \ Âûïîëíåíèå: ( -- )
  66. \ Íè÷åãî íå äåëàòü. [THEN] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ.
  67. ; IMMEDIATE
  68.  
  69. \ Ruvim Pinka additions:
  70.  
  71. : [DEFINED] ( -- f ) \ "name"
  72.   NextWord  SFIND  IF DROP TRUE ELSE 2DROP FALSE THEN
  73. ; IMMEDIATE
  74.  
  75. : [UNDEFINED]  ( -- f ) \ "name"
  76.   POSTPONE [DEFINED] 0=
  77. ; IMMEDIATE
  78.  
  79.