Hex Artifact Content

Not logged in

Artifact f76d7e48f9028031c1b348d86127d16af3d5997a:


0000: 2f 2f 2d 2d 2d 20 4b 2e 49 2e 4c 49 42 20 2d 2d  //--- K.I.LIB --
0010: 2d 0d 0a 2f 2f 20 6b 6c 5f 72 79 74 68 70 2e 68  -..// kl_rythp.h
0020: 20 3a 20 69 6e 74 65 72 70 72 65 74 6f 72 20 66   : interpretor f
0030: 6f 72 20 73 69 6d 70 6c 65 20 73 63 72 69 70 74  or simple script
0040: 20 6c 61 6e 67 61 75 61 67 65 20 27 52 79 74 68   langauage 'Ryth
0050: 70 27 0d 0a 0d 0a 23 69 66 6e 64 65 66 20 41 46  p'....#ifndef AF
0060: 58 5f 4b 49 52 59 54 48 50 56 4d 5f 48 5f 5f 34  X_KIRYTHPVM_H__4
0070: 46 33 43 32 38 41 39 5f 37 45 46 45 5f 34 36 30  F3C28A9_7EFE_460
0080: 35 5f 41 31 34 39 5f 32 43 30 42 39 41 39 32 33  5_A149_2C0B9A923
0090: 36 45 35 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a  6E5__INCLUDED_..
00a0: 23 64 65 66 69 6e 65 20 41 46 58 5f 4b 49 52 59  #define AFX_KIRY
00b0: 54 48 50 56 4d 5f 48 5f 5f 34 46 33 43 32 38 41  THPVM_H__4F3C28A
00c0: 39 5f 37 45 46 45 5f 34 36 30 35 5f 41 31 34 39  9_7EFE_4605_A149
00d0: 5f 32 43 30 42 39 41 39 32 33 36 45 35 5f 5f 49  _2C0B9A9236E5__I
00e0: 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a 2f 2a 3d 2a  NCLUDED_..../*=*
00f0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0100: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0110: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0120: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0130: 3d 2a 3d 2a 2f 0d 0a 2f 2f 20 6b 69 56 61 72 20  =*=*/..// kiVar 
0140: 3a 20 52 79 74 68 70 97 70 82 cc 56 61 72 69 61  : Rythp.p..Varia
0150: 6e 74 95 cf 90 94 8c 5e 81 42 82 d9 82 c6 82 f1  nt.....^.B......
0160: 82 c7 82 bd 82 be 82 cc 6b 69 53 74 72 81 42 0d  ........kiStr.B.
0170: 0a 0d 0a 63 6c 61 73 73 20 6b 69 56 61 72 20 3a  ...class kiVar :
0180: 20 70 75 62 6c 69 63 20 6b 69 53 74 72 0d 0a 7b   public kiStr..{
0190: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 6b 69 56 61  ..public:...kiVa
01a0: 72 28 29 20 3a 20 6b 69 53 74 72 28 32 30 29 20  r() : kiStr(20) 
01b0: 7b 7d 0d 0a 09 65 78 70 6c 69 63 69 74 20 6b 69  {}...explicit ki
01c0: 56 61 72 28 20 63 6f 6e 73 74 20 63 68 61 72 2a  Var( const char*
01d0: 20 73 20 29 20 3a 20 6b 69 53 74 72 28 20 73 2c   s ) : kiStr( s,
01e0: 20 32 30 20 29 7b 7d 0d 0a 09 65 78 70 6c 69 63   20 ){}...explic
01f0: 69 74 20 6b 69 56 61 72 28 20 63 6f 6e 73 74 20  it kiVar( const 
0200: 6b 69 53 74 72 26 20 73 20 29 20 3a 20 6b 69 53  kiStr& s ) : kiS
0210: 74 72 28 20 73 2c 20 32 30 20 29 7b 7d 0d 0a 09  tr( s, 20 ){}...
0220: 65 78 70 6c 69 63 69 74 20 6b 69 56 61 72 28 20  explicit kiVar( 
0230: 63 6f 6e 73 74 20 6b 69 56 61 72 26 20 73 20 29  const kiVar& s )
0240: 20 3a 20 6b 69 53 74 72 28 20 73 2c 20 32 30 20   : kiStr( s, 20 
0250: 29 7b 7d 0d 0a 09 76 6f 69 64 20 6f 70 65 72 61  ){}...void opera
0260: 74 6f 72 20 3d 20 28 20 63 6f 6e 73 74 20 63 68  tor = ( const ch
0270: 61 72 2a 20 73 20 29 7b 20 6b 69 53 74 72 3a 3a  ar* s ){ kiStr::
0280: 6f 70 65 72 61 74 6f 72 20 3d 28 73 29 3b 20 7d  operator =(s); }
0290: 0d 0a 0d 0a 09 69 6e 74 20 67 65 74 49 6e 74 28  .....int getInt(
02a0: 29 3b 0d 0a 09 76 6f 69 64 20 71 75 6f 74 65 28  );...void quote(
02b0: 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a  );..};..../*=*=*
02c0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
02d0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
02e0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
02f0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0300: 3d 2a 2f 0d 0a 2f 2f 20 6b 69 52 79 74 68 70 56  =*/..// kiRythpV
0310: 4d 20 3a 20 8d c5 8f ac 8c c0 52 79 74 68 70 81  M : ......Rythp.
0320: 42 8e c0 97 70 82 c9 82 cd 81 41 94 68 90 b6 82  B...p.....A.h...
0330: b5 82 c4 93 c6 8e a9 82 cc 20 65 78 65 63 5f 66  ......... exec_f
0340: 75 6e 63 74 69 6f 6e 20 82 f0 8e c0 91 95 82 b7  unction ........
0350: 82 d7 82 b5 0d 0a 0d 0a 63 6c 61 73 73 20 6b 69  ........class ki
0360: 52 79 74 68 70 56 4d 0d 0a 7b 0d 0a 70 75 62 6c  RythpVM..{..publ
0370: 69 63 3a 0d 0a 09 6b 69 52 79 74 68 70 56 4d 28  ic:...kiRythpVM(
0380: 29 3b 0d 0a 09 76 69 72 74 75 61 6c 20 7e 6b 69  );...virtual ~ki
0390: 52 79 74 68 70 56 4d 28 29 20 7b 7d 0d 0a 0d 0a  RythpVM() {}....
03a0: 70 75 62 6c 69 63 3a 0d 0a 09 2f 2f 20 65 76 61  public:...// eva
03b0: 6c 0d 0a 09 76 6f 69 64 20 65 76 61 6c 28 20 63  l...void eval( c
03c0: 68 61 72 2a 20 73 74 72 2c 20 6b 69 56 61 72 2a  har* str, kiVar*
03d0: 20 61 6e 73 3d 4e 55 4c 4c 20 29 3b 0d 0a 0d 0a   ans=NULL );....
03e0: 70 72 6f 74 65 63 74 65 64 3a 0d 0a 09 2f 2f 20  protected:...// 
03f0: 88 f8 90 94 82 f0 93 4b 93 96 82 c9 65 76 61 6c  .......K....eval
0400: 82 e2 95 cf 90 94 92 75 82 ab 8a b7 82 a6 82 f0  .......u........
0410: 82 b5 82 bd 8c 60 82 c5 8e e6 93 be 0d 0a 09 76  .....`.........v
0420: 6f 69 64 20 67 65 74 61 72 67 28 20 63 68 61 72  oid getarg( char
0430: 2a 20 61 2c 20 62 6f 6f 6c 20 62 2c 20 6b 69 56  * a, bool b, kiV
0440: 61 72 2a 20 61 72 67 20 29 3b 0d 0a 0d 0a 09 2f  ar* arg );...../
0450: 2f 20 66 75 6e 63 74 69 6f 6e 8e c0 8d 73 81 42  / function...s.B
0460: 5b 20 62 6f 6f 6c 3d 8f 88 97 9d 82 b5 82 bd 82  [ bool=.........
0470: a9 81 48 81 41 20 6e 61 6d 65 3d 66 75 6e 63 74  ..H.A name=funct
0480: 69 6f 6e 96 bc 81 41 20 61 2c 62 2c 63 3d 88 f8  ion...A a,b,c=..
0490: 90 94 81 41 20 72 3d 95 d4 92 6c 20 5d 0d 0a 09  ...A r=...l ]...
04a0: 76 69 72 74 75 61 6c 20 62 6f 6f 6c 20 65 78 65  virtual bool exe
04b0: 63 5f 66 75 6e 63 74 69 6f 6e 28 20 63 6f 6e 73  c_function( cons
04c0: 74 20 6b 69 56 61 72 26 20 6e 61 6d 65 2c 0d 0a  t kiVar& name,..
04d0: 09 09 63 6f 6e 73 74 20 43 68 61 72 41 72 72 61  ..const CharArra
04e0: 79 26 20 61 2c 20 63 6f 6e 73 74 20 42 6f 6f 6c  y& a, const Bool
04f0: 41 72 72 61 79 26 20 62 2c 69 6e 74 20 63 2c 20  Array& b,int c, 
0500: 6b 69 56 61 72 2a 20 72 20 29 3b 0d 0a 0d 0a 70  kiVar* r );....p
0510: 72 69 76 61 74 65 3a 0d 0a 09 2f 2f 20 95 cf 90  rivate:...// ...
0520: 94 0d 0a 09 6b 69 56 61 72 20 65 6c 65 5b 32 35  ....kiVar ele[25
0530: 36 5d 3b 0d 0a 0d 0a 09 2f 2f 20 83 70 83 89 83  6];.....// .p...
0540: 81 81 5b 83 5e 95 aa 8a 84 0d 0a 09 73 74 61 74  ..[.^.......stat
0550: 69 63 20 63 68 61 72 2a 20 73 70 6c 69 74 5f 74  ic char* split_t
0560: 6f 6e 65 78 74 28 20 63 68 61 72 2a 20 70 20 29  onext( char* p )
0570: 3b 0d 0a 09 73 74 61 74 69 63 20 63 68 61 72 2a  ;...static char*
0580: 20 73 70 6c 69 74 5f 74 6f 65 6e 64 28 20 63 68   split_toend( ch
0590: 61 72 2a 20 70 20 29 3b 0d 0a 09 73 74 61 74 69  ar* p );...stati
05a0: 63 20 62 6f 6f 6c 20 73 70 6c 69 74 28 20 63 68  c bool split( ch
05b0: 61 72 2a 20 62 75 66 2c 20 43 68 61 72 41 72 72  ar* buf, CharArr
05c0: 61 79 26 20 61 72 67 76 2c 20 42 6f 6f 6c 41 72  ay& argv, BoolAr
05d0: 72 61 79 26 20 61 72 67 62 2c 20 69 6e 74 26 20  ray& argb, int& 
05e0: 61 72 67 63 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 23  argc );..};....#
05f0: 65 6e 64 69 66 0d 0a                             endif..