Hex Artifact Content

Not logged in

Artifact 3d5e049ef53978157eec494fe64ab18ae50613a9:


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 6b 69 56 61 72 26 20 71 75 6f 74  );...kiVar& quot
02b0: 65 28 29 3b 0d 0a 09 6b 69 56 61 72 26 20 75 6e  e();...kiVar& un
02c0: 71 75 6f 74 65 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a  quote();..};....
02d0: 2f 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 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0310: 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f 20 6b 69  =*=*=*=*/..// ki
0320: 52 79 74 68 70 56 4d 20 3a 20 8d c5 8f ac 8c c0  RythpVM : ......
0330: 52 79 74 68 70 81 42 8e c0 97 70 82 c9 82 cd 81  Rythp.B...p.....
0340: 41 94 68 90 b6 82 b5 82 c4 93 c6 8e a9 82 cc 20  A.h............ 
0350: 65 78 65 63 5f 66 75 6e 63 74 69 6f 6e 20 82 f0  exec_function ..
0360: 8e c0 91 95 82 b7 82 d7 82 b5 0d 0a 0d 0a 63 6c  ..............cl
0370: 61 73 73 20 6b 69 52 79 74 68 70 56 4d 0d 0a 7b  ass kiRythpVM..{
0380: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 6b 69 52 79  ..public:...kiRy
0390: 74 68 70 56 4d 28 29 3b 0d 0a 09 76 69 72 74 75  thpVM();...virtu
03a0: 61 6c 20 7e 6b 69 52 79 74 68 70 56 4d 28 29 20  al ~kiRythpVM() 
03b0: 7b 7d 0d 0a 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09  {}....public:...
03c0: 2f 2f 20 65 76 61 6c 0d 0a 09 76 6f 69 64 20 65  // eval...void e
03d0: 76 61 6c 28 20 63 68 61 72 2a 20 73 74 72 2c 20  val( char* str, 
03e0: 6b 69 56 61 72 2a 20 61 6e 73 3d 4e 55 4c 4c 20  kiVar* ans=NULL 
03f0: 29 3b 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64 3a  );....protected:
0400: 0d 0a 09 2f 2f 20 88 f8 90 94 82 f0 93 4b 93 96  ...// .......K..
0410: 82 c9 65 76 61 6c 82 e2 95 cf 90 94 92 75 82 ab  ..eval.......u..
0420: 8a b7 82 a6 82 f0 82 b5 82 bd 8c 60 82 c5 8e e6  ...........`....
0430: 93 be 0d 0a 09 76 6f 69 64 20 67 65 74 61 72 67  .....void getarg
0440: 28 20 63 68 61 72 2a 20 61 2c 20 62 6f 6f 6c 20  ( char* a, bool 
0450: 62 2c 20 6b 69 56 61 72 2a 20 61 72 67 20 29 3b  b, kiVar* arg );
0460: 0d 0a 0d 0a 09 2f 2f 20 66 75 6e 63 74 69 6f 6e  .....// function
0470: 8e c0 8d 73 81 42 5b 20 62 6f 6f 6c 3d 8f 88 97  ...s.B[ bool=...
0480: 9d 82 b5 82 bd 82 a9 81 48 81 41 20 6e 61 6d 65  ........H.A name
0490: 3d 66 75 6e 63 74 69 6f 6e 96 bc 81 41 20 61 2c  =function...A a,
04a0: 62 2c 63 3d 88 f8 90 94 81 41 20 72 3d 95 d4 92  b,c=.....A r=...
04b0: 6c 20 5d 0d 0a 09 76 69 72 74 75 61 6c 20 62 6f  l ]...virtual bo
04c0: 6f 6c 20 65 78 65 63 5f 66 75 6e 63 74 69 6f 6e  ol exec_function
04d0: 28 20 63 6f 6e 73 74 20 6b 69 56 61 72 26 20 6e  ( const kiVar& n
04e0: 61 6d 65 2c 0d 0a 09 09 63 6f 6e 73 74 20 43 68  ame,....const Ch
04f0: 61 72 41 72 72 61 79 26 20 61 2c 20 63 6f 6e 73  arArray& a, cons
0500: 74 20 42 6f 6f 6c 41 72 72 61 79 26 20 62 2c 69  t BoolArray& b,i
0510: 6e 74 20 63 2c 20 6b 69 56 61 72 2a 20 72 20 29  nt c, kiVar* r )
0520: 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09  ;....private:...
0530: 2f 2f 20 95 cf 90 94 0d 0a 09 6b 69 56 61 72 20  // .......kiVar 
0540: 65 6c 65 5b 32 35 36 5d 3b 0d 0a 0d 0a 09 2f 2f  ele[256];.....//
0550: 20 83 70 83 89 83 81 81 5b 83 5e 95 aa 8a 84 0d   .p.....[.^.....
0560: 0a 09 73 74 61 74 69 63 20 63 68 61 72 2a 20 73  ..static char* s
0570: 70 6c 69 74 5f 74 6f 6e 65 78 74 28 20 63 68 61  plit_tonext( cha
0580: 72 2a 20 70 20 29 3b 0d 0a 09 73 74 61 74 69 63  r* p );...static
0590: 20 63 68 61 72 2a 20 73 70 6c 69 74 5f 74 6f 65   char* split_toe
05a0: 6e 64 28 20 63 68 61 72 2a 20 70 20 29 3b 0d 0a  nd( char* p );..
05b0: 09 73 74 61 74 69 63 20 62 6f 6f 6c 20 73 70 6c  .static bool spl
05c0: 69 74 28 20 63 68 61 72 2a 20 62 75 66 2c 20 43  it( char* buf, C
05d0: 68 61 72 41 72 72 61 79 26 20 61 72 67 76 2c 20  harArray& argv, 
05e0: 42 6f 6f 6c 41 72 72 61 79 26 20 61 72 67 62 2c  BoolArray& argb,
05f0: 20 69 6e 74 26 20 61 72 67 63 20 29 3b 0d 0a 7d   int& argc );..}
0600: 3b 0d 0a 0d 0a 23 65 6e 64 69 66 0d 0a           ;....#endif..