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.  
  8. : ?SLITERAL1 ( c-addr u -> ... )
  9.   \ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«®
  10.   0 0 2SWAP
  11.   OVER C@ [CHAR] - = IF 1- SWAP 1+ SWAP TRUE ELSE FALSE THEN >R
  12.   >NUMBER
  13.   DUP 1 > IF ." -?" -2001 THROW THEN \ ABORT" -?"
  14.   IF C@ [CHAR] . <> IF -2002 THROW THEN \ ABORT" -??"
  15.        R> IF DNEGATE THEN
  16.        [COMPILE] 2LITERAL
  17.   ELSE DROP D>S
  18.        R> IF NEGATE THEN
  19.        [COMPILE] LITERAL
  20.   THEN
  21. ;
  22. : ?LITERAL1 ( T -> ... )
  23.   \ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«®
  24.   COUNT ?SLITERAL1
  25. ;
  26. : HEX-SLITERAL ( addr u -> flag )
  27.   BASE @ >R HEX
  28.   0 0 2SWAP 2- SWAP 2+ SWAP >NUMBER
  29.   ?DUP IF
  30.     1 = SWAP C@ [CHAR] L = AND 0= IF 2DROP FALSE R> BASE ! EXIT THEN
  31.   ELSE DROP THEN
  32.   D>S POSTPONE LITERAL TRUE
  33.   R> BASE !
  34. ;
  35.  
  36. : INCLUDED_S  -2003 THROW
  37.  INCLUDED ;
  38.  
  39. : ?SLITERAL2 ( c-addr u -- ... )
  40.   ( à áè¨à¥­­ë© ¢ à¨ ­â ?SLITERAL1:
  41.     ¥á«¨ áâப  - ­¥ ç¨á«®, â® ¯ëâ ¥¬áï âࠪ⮢ âì ¥ñ
  42.     ª ª ¨¬ï ä ©«  ¤«ï  ¢â®-INCLUDED)
  43.   DUP 1 > IF OVER W@ 0x7830 ( 0x) =
  44.     IF 2DUP 2>R HEX-SLITERAL IF RDROP RDROP EXIT ELSE 2R> THEN THEN
  45.   THEN
  46.   2DUP 2>R ['] ?SLITERAL1 CATCH
  47.  IF   2DROP 2R>
  48.       OVER C@ [CHAR] " = OVER 2 > AND
  49.       IF 2 - SWAP 1+ SWAP THEN ( ã¡à « ª ¢ë窨, ¥á«¨ ¥áâì)
  50.       2DUP + 0 SWAP C!
  51.       ['] INCLUDED_S CATCH
  52.        DUP 2 = OVER 3 = OR OVER 161 = OR ( ä ©« ­¥ ­ ©¤¥­ ¨«¨ ¯ãâì ­¥ ­ ©¤¥­,
  53.        ¨«¨ ­¥à §à¥è¥­­®¥ ¨¬ï ä ©« )
  54.        IF  -2003 THROW \ ABORT"  -???"
  55.        ELSE  THROW THEN
  56.   ELSE RDROP RDROP
  57.   THEN
  58. ;
  59. : ?LITERAL2 ( c-addr -- ... )
  60.   ( à áè¨à¥­­ë© ¢ à¨ ­â ?LITERAL1:
  61.     ¥á«¨ áâப  - ­¥ ç¨á«®, â® ¯ëâ ¥¬áï âࠪ⮢ âì ¥ñ
  62.     ª ª ¨¬ï ä ©«  ¤«ï  ¢â®-INCLUDED)
  63.   COUNT ?SLITERAL2
  64. ;
  65.