亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c-smile.h

?? c-smile 一個(gè)語(yǔ)法類似與JS 又有點(diǎn)像C++的 編譯器
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
  public:
    virtual void mark ();

    symbol_t      name;
    CLASS*        base;
    PACKAGE*      package;

    DICTIONARY *  members;

    int 		      instance_size;

    CODE *        ctor_function;
    CODE *        item_function;
    CODE *        dtor_function;
    CODE *        cast_function;

    CLASS ( const char *name,  CLASS *base, PACKAGE* package );

    virtual PACKAGE *
      get_package () 
    {
      return package;
    }

    virtual VALUE create_instance ();

    virtual
      operator VALUE () 
    {
      return VALUE ( this );
    }

    ENTRY add ( const char *name,  int type );
    ENTRY find ( const char *name );
    ENTRY find ( symbol_t sym );

    VALUE get ( unsigned int idx );
    int   get_type ( unsigned int idx );
    void  set ( unsigned int idx,  const VALUE& v );

    virtual size_t
      allocated_size () 
    {
      return sizeof ( CLASS );
    }

    string  full_name ();

    // theses functions return index of added item in members dictionary
    int 	add_function ( const char *name,  BUILTIN_FUNC *fcn );
    int 	add_static_function ( const char *name,  BUILTIN_FUNC *fcn );

    int 	add_property ( const char *name,  BUILTIN_FUNC *fcn );
    int 	add_static_property ( const char *name,  BUILTIN_FUNC *fcn );

    int 	add_static_data ( const char *name,  const VALUE& vd );
    int 	add_const ( const char *name,  const VALUE& vd );
    // this function returns index of the field in instance members array
    int   add_data ( const char *name, const VALUE& /*not used so far*/ );

    void 	check_name ( symbol_t ns,  CODE *c,  int symbol_type );

    virtual CLASS * get_class ();

    virtual VALUE 	to_string ( const VALUE *v );

    virtual THING *
      load ( archive *arc ) 
    {
      return 0;
    };

    virtual bool
      save ( THING *me,  archive *arc ) 
    {
      return false;
    };

    friend class archive;

  };


  class OBJECT: public THING
  {
    friend class CLASS;
  protected:

  public:
    virtual void mark ();

    CLASS *   klass;
    void  *   tag;
    VALUE     members [ 1 ];

    OBJECT ( CLASS *cls );

    virtual size_t
      allocated_size () 
    {
      return sizeof ( OBJECT ) + ( klass->instance_size - 1 ) * sizeof ( VALUE );
    }

    virtual
      operator VALUE () 
    {
      return VALUE ( this );
    }

    virtual CLASS * get_class ();

    VALUE
      get ( unsigned int idx ) 
    {
      assert ( idx < ( unsigned int ) klass->instance_size );
      return members [ idx ];
    }

    void
      set ( unsigned int idx,   const VALUE& v ) 
    {
      assert ( idx < ( unsigned int ) klass->instance_size );
      members [ idx ] = v;
    }


  };


  class ARRAY : public THING
  {
  public:

  protected:
    ARRAY () 
    {
    }

  public:
    array<VALUE> data;

  public:
    virtual void mark ();

    ARRAY ( int n );

    virtual size_t
      allocated_size () 
    {
      return sizeof ( ARRAY );
    }

    int
      size () const
    {
      return data.size ();
    }

    void    size ( int newsize );

    VALUE&        operator [ ] ( int i );
    const VALUE&  operator [ ] ( int i ) const;

    int     push ( const VALUE& v );
    VALUE   pop ();

    virtual
      operator VALUE () 
    {
      return VALUE ( this );
    }

    virtual CLASS * get_class ();

    void      sort ( void *param,  bool ( *less ) ( void *param,  VALUE& a, VALUE& b ) );
    ARRAY *   slice ( int start, int end );
    void      remove ( int start, int end );

  protected:
    void sort ( void *param,  bool ( *less ) ( void *param,  VALUE& a, VALUE& b ),  int lo,  int hi );
  };


  class STRING: public THING
  {
    string _data;

    //protected:
  public:

    //just use default:  virtual void mark ();

    STRING () 
    {
    }

    STRING ( int l ) : _data ( ' ', l ) 
    {
    }

    STRING ( const char *str ) : _data ( str ) 
    {
    }

    STRING ( const string& str ) : _data ( str ) 
    {
    }

    virtual size_t
      allocated_size () 
    {
      return sizeof ( STRING );
    }

    virtual size_t
      size () const
    {
      return _data.length ();
    }

    char
      operator () ( int i ) const
    {
      return _data [ i ];
    }

    char &
      operator [ ] ( int i ) 
    {
      return _data [ i ];
    }

    STRING * slice ( int start, int end );

    void
      clear () 
    {
      _data.clear ();
    };

    virtual
      operator VALUE () 
    {
      return VALUE ( this );
    }

    virtual CLASS *get_class ();

    const string &
      cstr () const
    {
      return _data;
    }

    STRING
      operator+ ( const STRING &s ) const
    {
      return STRING ( _data + s._data );
    };

    bool
      operator< ( const STRING &s ) const
    {
      return _data < s._data;
    }

    bool
      operator<= ( const STRING &s ) const
    {
      return _data <= s._data;
    }

    bool
      operator == ( const STRING &s ) const
    {
      return _data == s._data;
    }

    bool
      operator != ( const STRING &s ) const
    {
      return _data != s._data;
    }

  };

#define CSTR(ps) ps->cstr () 

  class DICTIONARY: public THING
  {
    friend class CLASS;
  public:
    struct item
    {
      int       type;
      symbol_t  symbol;
      VALUE     value;

      void init () 
      {
        type = 0;
        symbol = undefined_symbol;
        value.init ();
      }
    };
  protected:
    DICTIONARY () : _size ( 0 ),  _allocated_size ( 0 ) 
    {
    }

    int   _size;
    int   _allocated_size;
    item  _items [ 1 ];

  public:
    virtual void mark ();

    static DICTIONARY* create ( int size = 0 );
    DICTIONARY * realloc ( int newsize );

    int
      find ( symbol_t sym ) 
    {
      for ( int i = 0; i < _size; i++ )
        if ( _items [ i ].symbol == sym )
          return i;
      return -1;
    }

    DICTIONARY::item &
      operator [] ( int idx ) 
    {
      return _items [ idx ];
    }

    const DICTIONARY::item &
      operator [ ] ( int idx ) const
    {
      return _items [ idx ];
    }

    DICTIONARY::item &
      get ( int idx ) 
    {
      return _items [ idx ];
    }

    int
      size () const
    {
      return _size;
    }

    virtual size_t
      allocated_size () 
    {
      return sizeof ( DICTIONARY ) + ( _allocated_size - 1 ) * sizeof ( item );
    }

    virtual
      operator VALUE () 
    {
      assert ( false );
      return VALUE ();
    }

    virtual CLASS * get_class ();

    VALUE
      find_value ( symbol_t sym ) 
    {
      int idx = find ( sym );
      if ( idx >= 0 ) 
        return get ( idx ).value;
      return VALUE ();
    }
  };

  typedef array<unsigned char> BUFFER;

  class CODE : public THING
  {
  protected:
    union
    {
      BUFFER *        bc;
      BUILTIN_FUNC *  native;
    }
    _code;
    bool      _is_native;
    CLASS *   _klass;
    symbol_t  _name;

    CODE () : _klass ( 0 ), _name ( undefined_symbol )
    {
      _code.bc = 0;
    }

  public:
    virtual void mark ();

    CODE ( symbol_t  name,  BUFFER *bytecode,  CLASS *klass );
    CODE ( symbol_t  name,  BUILTIN_FUNC *native,  CLASS *klass );

    virtual size_t
      allocated_size () 
    {
      return sizeof ( *this );
    }

    BUILTIN_FUNC *
      native () 
    {
      assert ( _is_native );
      return _code.native;
    }

    const unsigned char *
      bytecode () 
    {
      assert ( !_is_native );
      return & ( *_code.bc ) [ 0 ];
    }

    int
      bytecode_size () 
    {
      assert ( !_is_native );
      return _code.bc->size ();
    }

    CLASS *
      klass () 
    {
      return _klass;
    }

    void
      klass ( CLASS *c ) 
    {
      _klass = c;
    }

    symbol_t
      name () 
    {
      return _name;
    }

    bool
      is_bytecode () const
    {
      return !_is_native;
    }

    bool
      is_native () const
    {
      return _is_native;
    }

    string  full_name ();

    virtual
      operator VALUE () 
    {
      return VALUE ( this );
    }

    virtual CLASS * get_class ();

    friend class archive;
    friend class CLASS;

  };


  //external variables

  /* rtl.cpp */
  void	print1 ( VM *vm, VALUE *ios, int qflag, VALUE *val );

  class PACKAGE: public CLASS
  {
  protected:

    PACKAGE () : literals ( 0 ),  file_name ( 0 ),  init_code ( 0 ) 
    {
    }

  public:
    virtual void mark ();

    ARRAY *       literals;
    STRING *      file_name;
    CODE *        init_code; // native packages do not have init_code

    PACKAGE ( const char *name,  const char *file_name = 0 );
    PACKAGE ( symbol_t name );

    virtual PACKAGE *
      get_package () 
    {
      return this;
    }

    virtual size_t
      allocated_size () 
    {
      return sizeof ( PACKAGE );
    }

    int add_literal ( symbol_t vs );
    int add_literal ( const VALUE &v );
    int add_literal ( const char *s );

    //int add_package_reference ( PACKAGE *pkg ) { VALUE v = pkg; return add_literal ( v ); };

    virtual void
      add_function ( const char *name,   BUILTIN_FUNC *fcn ) 
    {
      assert ( 0 );
    }

    virtual void
      add_property ( const char *name,   BUILTIN_FUNC *fcn ) 
    {
      assert ( 0 );
    }

    virtual
      operator VALUE () 
    {
      return VALUE ( (  CLASS * ) this );
    }

    bool
      has_reference_to ( symbol_t package_symbol );

    bool
      is_native () 
    {
      return init_code == 0;
    }
  };


  int cs_main ( int argc,  char *argv [ ] );

  void    error_parameters ();
  void    error_read_only ();

};

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区自拍偷拍| 三级成人在线视频| 视频一区二区国产| 成人综合在线观看| 日韩精品一区在线| 亚洲国产精品麻豆| 成人av电影免费在线播放| 日韩区在线观看| 一区二区三区波多野结衣在线观看| 中文字幕成人网| 精品一区二区成人精品| 国产精品三级在线观看| 91久久精品一区二区三| 日日夜夜精品视频免费| 2020国产成人综合网| 972aa.com艺术欧美| 亚洲不卡在线观看| 精品国产第一区二区三区观看体验| 国产成人av资源| 亚洲精品国产a久久久久久| 日韩一级二级三级| 国产一区二区不卡在线| 国产日韩精品一区二区浪潮av| 97精品久久久久中文字幕 | 日韩精品中文字幕一区| 日本在线播放一区二区三区| 欧美电影免费观看完整版| 国产91丝袜在线播放九色| 一级女性全黄久久生活片免费| 欧美喷水一区二区| 国产**成人网毛片九色| 亚洲午夜久久久久久久久电影网| 欧美一区二区视频在线观看| jlzzjlzz亚洲女人18| 日日骚欧美日韩| 国产精品狼人久久影院观看方式| 欧美日韩激情一区二区三区| 国产成人一级电影| 午夜av一区二区| 日本一区二区高清| 欧美高清dvd| 9久草视频在线视频精品| 视频一区在线视频| 亚洲视频一区在线| 91碰在线视频| 国产精品青草久久| 色婷婷av一区二区三区软件| 亚洲午夜精品在线| 欧美一区二区视频在线观看| 黄一区二区三区| 国产精品毛片大码女人| 91性感美女视频| 中文字幕亚洲成人| 欧美中文一区二区三区| 亚洲一区二区三区中文字幕在线 | 亚洲日本丝袜连裤袜办公室| 色妹子一区二区| 午夜精品视频一区| 精品国产乱码久久久久久闺蜜| 国产成人欧美日韩在线电影| 亚洲日本一区二区三区| 欧美福利视频一区| 国产在线播精品第三| 亚洲天堂a在线| 91精品婷婷国产综合久久竹菊| 国产一区二区视频在线| 亚洲蜜臀av乱码久久精品蜜桃| 欧美肥胖老妇做爰| 成人av网在线| 美女视频网站久久| 国产精品免费观看视频| 欧美日韩国产小视频| 国产乱码精品一区二区三区五月婷| 欧美亚洲丝袜传媒另类| 一本大道久久a久久精二百| 99麻豆久久久国产精品免费| 欧美在线不卡视频| 欧美成人精品高清在线播放| 亚洲伦在线观看| 欧美三级三级三级爽爽爽| 91丨porny丨在线| 99久精品国产| 92国产精品观看| 色播五月激情综合网| 在线视频一区二区免费| 在线精品视频小说1| 欧美视频一区在线| 欧美日韩一二区| 91麻豆精品91久久久久同性| 91精品国产综合久久福利| 欧美日韩精品专区| 欧美性大战久久| 精品欧美一区二区在线观看| 韩国女主播成人在线观看| 日韩极品在线观看| 激情av综合网| 青青草国产精品亚洲专区无| 另类综合日韩欧美亚洲| 国产白丝精品91爽爽久久 | 久久综合狠狠综合久久激情| 久久色成人在线| 中文子幕无线码一区tr| 国产农村妇女精品| 17c精品麻豆一区二区免费| 中文字幕一区二区三区视频| 亚洲色图.com| 亚洲国产综合在线| 精品亚洲国产成人av制服丝袜| 国产一区二区三区最好精华液| 粉嫩嫩av羞羞动漫久久久| 色中色一区二区| 欧美一级午夜免费电影| 国产精品理论在线观看| 午夜电影一区二区| 懂色av一区二区三区免费看| 欧美日高清视频| 精品久久一二三区| 1024国产精品| 奇米一区二区三区| 成人视屏免费看| 欧美日韩国产高清一区二区| 亚洲精品一区二区三区四区高清| 国产精品乱码一区二区三区软件| 亚洲成人黄色小说| 国产黄色精品网站| 欧美久久久影院| 中文字幕在线一区免费| 日本视频一区二区三区| 91丨porny丨中文| 欧美精品一区男女天堂| 亚洲第一搞黄网站| 91麻豆视频网站| 日本一区二区在线不卡| 久草在线在线精品观看| 一本大道久久a久久综合| 国产色一区二区| 男男视频亚洲欧美| 色吊一区二区三区| 欧美高清在线精品一区| 日韩高清不卡一区二区三区| 91在线看国产| 国产婷婷色一区二区三区| 午夜影院久久久| 成人午夜av电影| 久久久无码精品亚洲日韩按摩| 日韩精品亚洲一区二区三区免费| 99久久免费精品高清特色大片| 久久亚洲精华国产精华液| 亚洲成人免费看| 欧美在线免费播放| 一区二区三区免费看视频| 成人精品gif动图一区| 欧美激情艳妇裸体舞| 国产精品一二三区| 久久精品一区二区三区四区| 精品午夜久久福利影院| 欧美一区三区二区| 日本在线播放一区二区三区| 91麻豆精品国产91久久久久| 午夜国产不卡在线观看视频| 欧美三级韩国三级日本三斤| 亚洲一区二区在线免费观看视频| 99精品视频在线播放观看| 国产精品嫩草影院av蜜臀| 国产综合成人久久大片91| 欧美电影免费观看高清完整版在线观看| 亚洲女厕所小便bbb| 日本高清成人免费播放| 一区二区三区四区在线播放| 欧美亚洲综合在线| 午夜国产不卡在线观看视频| 91精品久久久久久久久99蜜臂| 日本一道高清亚洲日美韩| 日韩一区二区视频| 韩国精品免费视频| 国产精品视频一二| 色综合天天综合网国产成人综合天| 亚洲欧美电影一区二区| 欧美吞精做爰啪啪高潮| 蜜臀久久99精品久久久久久9| 精品99999| 99久久久免费精品国产一区二区| 亚洲黄一区二区三区| 69堂成人精品免费视频| 精品一区二区三区久久| 国产午夜精品理论片a级大结局| youjizz久久| 亚洲一二三四久久| 日韩欧美成人一区| 国产成人精品亚洲777人妖 | 中文字幕在线视频一区| 色哟哟在线观看一区二区三区| 亚洲va在线va天堂| 精品三级在线观看| 久久99精品久久久久婷婷| 欧美日韩亚洲丝袜制服| 日韩一区精品字幕| 国产蜜臀av在线一区二区三区| 在线看国产一区二区| 久草这里只有精品视频|