Subversion Repositories Kolibri OS

Rev

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

  1. ( ‘«®¢  ­¥¬¥¤«¥­­®£® ¢ë¯®«­¥­¨ï, ¨á¯®«ì§ã¥¬ë¥ ¢ ०¨¬¥ ª®¬¯¨«ï樨.
  2.   Ž‘-­¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥­¨ï.
  3.   Copyright [C] 1992-1999 A.Cherezov ac@forth.org
  4.   à¥®¡à §®¢ ­¨¥ ¨§ 16-à §à來®£® ¢ 32-à §àï¤­ë© ª®¤ - 1995-96££
  5.   ¥¢¨§¨ï - ᥭâï¡àì 1999
  6.   Œ®¤¨ä¨æ¨à®¢ ­­® Œ ªá¨¬®¢ë¬ Œ.Ž.
  7.   email:mak@mail.rtc.neva.ru
  8.   http://informer.rtc.neva.ru/
  9.   â ¤ {812}105-92-03
  10.   â à {812}552-47-64
  11. )
  12.  
  13. : TO \ 94 CORE EXT
  14. \ ˆ­â¥à¯à¥â æ¨ï: ( x "<spaces>name" -- )
  15. \ à®¯ãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë ¨ ¢ë¤¥«¨âì name, ®£à ­¨ç¥­­®¥ ¯à®¡¥«®¬.
  16. \ ‡ ¯¨á âì x ¢ name. ¥®¯à¥¤¥«¥­­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ name ­¥
  17. \ ®¯à¥¤¥«¥­® ç¥à¥§ VALUE.
  18. \ Š®¬¯¨«ïæ¨ï: ( "<spaces>name" -- )
  19. \ à®¯ãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë ¨ ¢ë¤¥«¨âì name, ®£à ­¨ç¥­­®¥ ¯à®¡¥«®¬.
  20. \ „®¡ ¢¨âì ᥬ ­â¨ªã ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï, ¤ ­­ãî ­¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥­¨î.
  21. \ ¥®¯à¥¤¥«¥­­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ name ­¥ ®¯à¥¤¥«¥­® ç¥à¥§ VALUE.
  22. \ ‚à¥¬ï ¢ë¯®«­¥­¨ï: ( x -- )
  23. \ ‡ ¯¨á âì x ¢ name.
  24. \ à¨¬¥ç ­¨¥: ¥®¯à¥¤¥«¥­­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ POSTPONE ¨«¨ [COMPILE]
  25. \ ¯à¨¬¥­ïîâáï ª TO.
  26.   '
  27.  >BODY CELL+ STATE @
  28.  IF COMPILE, ELSE EXECUTE THEN
  29. ; IMMEDIATE
  30.  
  31. : COMPILE,_M COMPILE, ;
  32.  
  33. : POSTPONE \ 94
  34. \ ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ­¥ ®¯à¥¤¥«¥­ .
  35. \ Š®¬¯¨«ïæ¨ï: ( "<spaces>name" -- )
  36. \ à®¯ãáâ¨âì ¢¥¤ã騥 à §¤¥«¨â¥«¨. ‚뤥«¨âì ¨¬ï, ®£à ­¨ç¥­­®¥ ¯à®¡¥« ¬¨.
  37. \  ©â¨ ¨¬ï. „®¡ ¢¨âì ᥬ ­â¨ªã ª®¬¯¨«ï樨 ¨¬¥­¨ ¢ ⥪ã饥 ®¯à¥¤¥«¥­¨¥.
  38.  ?COMP
  39.  PARSE-WORD SFIND DUP
  40.  0= IF -321 THROW THEN
  41.  1 = IF COMPILE,
  42.      ELSE LIT, ['] COMPILE,_M COMPILE, THEN
  43. ; IMMEDIATE
  44.  
  45. : \   \ 94 CORE EXT
  46. \ Š®¬¯¨«ïæ¨ï: ‚믮«­¨âì ᥬ ­â¨ªã ¢ë¯®«­¥­¨ï, ¤ ­­ãî ­¨¦¥.
  47. \ ‚믮«­¥­¨¥: ( "ccc<eol>" -- )
  48. \ ‚뤥«¨âì ¨ ®â¡à®á¨âì ®áâ â®ª à §¡¨à ¥¬®© ®¡« áâ¨.
  49. \ \ - á«®¢® ­¥¬¥¤«¥­­®£® ¨á¯®«­¥­¨ï.
  50.   1 PARSE 2DROP
  51. ; IMMEDIATE
  52.  
  53. : .(  \ 94 CORE EXT
  54. \ Š®¬¯¨«ïæ¨ï: ‚믮«­¨âì ᥬ ­â¨ªã ¢ë¯®«­¥­¨ï, ¤ ­­ãî ­¨¦¥.
  55. \ ‚믮«­¥­¨¥: ( "ccc<paren>" -- )
  56. \ ‚뤥«¨âì ¨ ¢ë¢¥á⨠­  ¤¨á¯«¥© ccc, ®£à ­¨ç¥­­ë¥ ¯à ¢®© ᪮¡ª®© ")".
  57. \ .( - á«®¢® ­¥¬¥¤«¥­­®£® ¨á¯®«­¥­¨ï.
  58.   [CHAR] ) PARSE TYPE
  59. ; IMMEDIATE
  60.  
  61. : (  ( "ccc<paren>" -- ) \ 94 FILE
  62. \  áè¨à¨âì ᥬ ­â¨ªã CORE (, ¢ª«î稢:
  63. \ Š®£¤  à §¡¨à ¥âáï ⥪áâ®¢ë© ä ©«, ¥á«¨ ª®­¥æ à §¡¨à ¥¬®© ®¡« á⨠¤®á⨣­ãâ
  64. \ à ­ìè¥, 祬 ­ ©¤¥­  ¯à ¢ ï ᪮¡ª , á­®¢  § ¯®«­¨âì ¢å®¤­®© ¡ãä¥à á«¥¤ãî饩
  65. \ áâப®© ¨§ ä ©« , ãáâ ­®¢¨âì >IN ¢ ­®«ì ¨ ¯à®¤®«¦ âì à §¡®à, ¯®¢â®àïï
  66. \ íâ®â ¯à®æ¥áá ¤® â¥å ¯®à, ¯®ª  ­¥ ¡ã¤¥â ­ ©¤¥­  ¯à ¢ ï ᪮¡ª  ¨«¨ ­¥
  67. \ ¡ã¤¥â ¤®á⨣­ãâ ª®­¥æ ä ©« .
  68.   BEGIN
  69.     [CHAR] ) DUP PARSE + C@ = 0=
  70.   WHILE
  71.     REFILL 0= IF EXIT THEN
  72.   REPEAT
  73. ; IMMEDIATE
  74.  
  75. : [COMPILE]  \ 94 CORE EXT
  76. \ ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ­¥®¯à¥¤¥«¥­ .
  77. \ Š®¬¯¨«ïæ¨ï: ( "<spaces>name" -- )
  78. \ à®¯ãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. ‚뤥«¨âì name, ®£à ­¨ç¥­­®¥ ¯à®¡¥« ¬¨.
  79. \  ©â¨ name. …᫨ ¨¬ï ¨¬¥¥â ¨­ãî ᥬ ­â¨ªã ª®¬¯¨«ï樨, 祬 "¯®-㬮«ç ­¨î",
  80. \ ¤®¡ ¢¨âì ¥¥ ¢ ⥪ã饥 ®¯à¥¤¥«¥­¨¥; ¨­ ç¥ ¤®¡ ¢¨âì ᥬ ­â¨ªã ¢ë¯®«­¥­¨ï name.
  81. \ ¥®¯à¥¤¥«¥­­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ name ­¥ ­ ©¤¥­®.
  82.   ?COMP
  83.   '
  84.  COMPILE,
  85. ; IMMEDIATE
  86.  
  87. : ; [;] ;  IMMEDIATE
  88.  
  89. : [;] ( -- )
  90.  RET, [COMPILE] [ REVEAL
  91.  ClearJpBuff
  92.  0 TO LAST-NON
  93. ;
  94.  
  95. : EXIT
  96.  RET,
  97. ; IMMEDIATE
  98.  
  99. : \EOF  ( -- )
  100. \ ‡ ª ­ç¨¢ ¥â âà ­á«ïæ¨î ⥪ã饣® ¯®â®ª 
  101.  BEGIN REFILL 0= UNTIL
  102.  POSTPONE \
  103. ;
  104.  
  105. : FIELD  ( offset size "new-name< >" -- offset+size )
  106.      : OVER
  107.        DUP IF   DUP  LIT,  ['] + COMPILE,
  108.             THEN DROP
  109.        POSTPONE ;
  110.        + ;  
  111.  
  112. 0 [IF]
  113. : --
  114.   CREATE OVER , +
  115.   (DOES1) (DOES2) @ +
  116. ;
  117.  
  118. [ELSE]
  119. : -- FIELD ;
  120. [THEN]
  121.