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