File Annotation

Not logged in
5128eecc9f 2011-02-23        kinaba: //--- K.I.LIB ---
5128eecc9f 2011-02-23        kinaba: // kl_rythp.h : interpretor for simple script langauage 'Rythp'
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: #ifndef AFX_KIRYTHPVM_H__4F3C28A9_7EFE_4605_A149_2C0B9A9236E5__INCLUDED_
5128eecc9f 2011-02-23        kinaba: #define AFX_KIRYTHPVM_H__4F3C28A9_7EFE_4605_A149_2C0B9A9236E5__INCLUDED_
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
5128eecc9f 2011-02-23        kinaba: // kiVar : Rythp用のVariant変数型。ほとんどただのkiStr。
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: class kiVar : public kiStr
5128eecc9f 2011-02-23        kinaba: {
5128eecc9f 2011-02-23        kinaba: public:
5128eecc9f 2011-02-23        kinaba: 	kiVar() : kiStr(20) {}
5128eecc9f 2011-02-23        kinaba: 	explicit kiVar( const char* s ) : kiStr( s, 20 ){}
5128eecc9f 2011-02-23        kinaba: 	explicit kiVar( const kiStr& s ) : kiStr( s, 20 ){}
5128eecc9f 2011-02-23        kinaba: 	explicit kiVar( const kiVar& s ) : kiStr( s, 20 ){}
5128eecc9f 2011-02-23        kinaba: 	void operator = ( const char* s ){ kiStr::operator =(s); }
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	int getInt();
5128eecc9f 2011-02-23        kinaba: 	void quote();
5128eecc9f 2011-02-23        kinaba: };
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
5128eecc9f 2011-02-23        kinaba: // kiRythpVM : 最小限Rythp。実用には、派生して独自の exec_function を実装すべし
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: class kiRythpVM
5128eecc9f 2011-02-23        kinaba: {
5128eecc9f 2011-02-23        kinaba: public:
5128eecc9f 2011-02-23        kinaba: 	kiRythpVM();
5128eecc9f 2011-02-23        kinaba: 	virtual ~kiRythpVM() {}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: public:
5128eecc9f 2011-02-23        kinaba: 	// eval
5128eecc9f 2011-02-23        kinaba: 	void eval( char* str, kiVar* ans=NULL );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: protected:
5128eecc9f 2011-02-23        kinaba: 	// 引数を適当にevalや変数置き換えをした形で取得
5128eecc9f 2011-02-23        kinaba: 	void getarg( char* a, bool b, kiVar* arg );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// function実行。[ bool=処理したか?、 name=function名、 a,b,c=引数、 r=返値 ]
5128eecc9f 2011-02-23        kinaba: 	virtual bool exec_function( const kiVar& name,
5128eecc9f 2011-02-23        kinaba: 		const CharArray& a, const BoolArray& b,int c, kiVar* r );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: private:
5128eecc9f 2011-02-23        kinaba: 	// 変数
5128eecc9f 2011-02-23        kinaba: 	kiVar ele[256];
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// パラメータ分割
5128eecc9f 2011-02-23        kinaba: 	static char* split_tonext( char* p );
5128eecc9f 2011-02-23        kinaba: 	static char* split_toend( char* p );
5128eecc9f 2011-02-23        kinaba: 	static bool split( char* buf, CharArray& argv, BoolArray& argb, int& argc );
5128eecc9f 2011-02-23        kinaba: };
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: #endif