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..