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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtl.h

?? c-smile 一個語法類似與JS 又有點像C++的 編譯器
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
*
* rtl.h
*
* Copyright (c) 2001, 2002
* Andrew Fedoniouk - andrew@terra-informatica.org
* Portions: Serge Kuznetsov -  kuznetsov@deeptown.org
*
* See the file "COPYING" for information on usage 
* and redistribution of this file
*
*/
#ifndef __rtl_h
#define __rtl_h

#include "c-smile.h"
#include "vm.h"
#include "tool.h"
#include "streams.h"

namespace c_smile
{
#define argcount(n,cnt)  { if ( (n ) != ( cnt ) ) VM::wrongcnt ( n, cnt ); }
#define _this_  argv [-1]
#define chktype(o,t)  { if ( argv [ o ].v_type != t ) badtype ( argv [ o ], t ); }

  char *  nameoftype ( int type );
  void    badtype ( VALUE& vl, int type ); // badtype - report a bad operand type

  void    error_parameters ();
  void    error_read_only ();
  void    error_type ( CLASS *cls );

  string  format ( const char *fmt, int argc, VALUE *argv );

  class ARRAY_CLASS: public CLASS
  {
  public:
    ARRAY_CLASS ( PACKAGE* package ) : CLASS ( "array", 0, package  )
    {
      add_function ( "toString", tostring );
      add_function ( "[]",       item     );
      add_function ( "array",    ctor     );
      add_property ( "length",   length   );
      add_function ( "push",     push     );
      add_function ( "pop",      pop      );
      add_function ( "sort",     sort     );
      add_function ( "slice",    slice    );
      add_function ( "concat",   concat   );
      add_function ( "shift",    shift    );
      add_function ( "unshift",  unshift  );
      add_function ( "clear",    clear    );
      add_static_function ( "[", literal  );
      add_function ( "remove",   remove   );
    }

    static VALUE ctor     ( int argc, VALUE *argv );
    static VALUE length   ( int argc, VALUE *argv );
    static VALUE push     ( int argc, VALUE *argv );
    static VALUE pop      ( int argc, VALUE *argv );
    static VALUE sort     ( int argc, VALUE *argv );
    static VALUE slice    ( int argc, VALUE *argv );
    static VALUE concat   ( int argc, VALUE *argv );
    static VALUE shift    ( int argc, VALUE *argv );
    static VALUE unshift  ( int argc, VALUE *argv );
    static VALUE tostring ( int argc, VALUE *argv );
    static VALUE item     ( int argc, VALUE *argv );
    static VALUE literal  ( int argc, VALUE *argv );
    static VALUE clear    ( int argc, VALUE *argv );
    static VALUE remove   ( int argc, VALUE *argv );

  };

  class STRING_CLASS: public CLASS
  {
  public:
    STRING_CLASS ( PACKAGE* package ) : CLASS ( "string", 0, package  )
    {
      add_function ( "toString", tostring );
      add_function ( "string",   ctor     );
      add_property ( "length",   length   );
      add_function ( "substr",   substr   );
      add_function ( "slice",    slice    );
      add_function ( "to_lower", tolcase  );
      add_function ( "to_upper", toucase  );
      add_function ( "like",     like     );
      add_function ( "match",    match    );
      add_function ( "[]",       item     );
      add_function ( "clear",    clear    );
      add_function ( "split",    split    );
      add_function ( "trim",     trim     );
      add_function ( "replace",  replace  );
      add_static_function ( "printf", printf );
      add_static_function ( "cast", cast  );
    }

    static VALUE ctor     ( int argc, VALUE *argv );
    static VALUE length   ( int argc, VALUE *argv );
    static VALUE tostring ( int argc, VALUE *argv );
    static VALUE substr   ( int argc, VALUE *argv );
    static VALUE slice    ( int argc, VALUE *argv );
    static VALUE tolcase  ( int argc, VALUE *argv );
    static VALUE toucase  ( int argc, VALUE *argv );
    static VALUE like     ( int argc, VALUE *argv );
    static VALUE match    ( int argc, VALUE *argv );
    static VALUE item     ( int argc, VALUE *argv );
    static VALUE clear    ( int argc, VALUE *argv );
    static VALUE printf   ( int argc, VALUE *argv );
    static VALUE split    ( int argc, VALUE *argv );
    static VALUE cast     ( int argc, VALUE *argv );
    static VALUE trim     ( int argc, VALUE *argv );
    static VALUE replace  ( int argc, VALUE *argv );

  };

  class DATE: public CLASS
  {
  public:

    class  INSTANCE : public THING
    {
    public:
      date_time _dt;

      INSTANCE ()
      {
      }

      ~INSTANCE ()
      {
      }

      CLASS *
        get_class ()
      {
        return klass;
      }

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

      static CLASS * klass;
    };


    DATE ( PACKAGE* package ) : CLASS ( "date", 0, package )
    {
      add_function ( "toString",     tostring    );
      add_function ( "date",         ctor        );
      add_property ( "day",          day         );
      add_property ( "month",        month       );
      add_property ( "year",         year        );
      add_property ( "day_of_week",  day_of_week );
      add_property ( "day_of_year",  day_of_year );
      add_property ( "hours",        hours       );
      add_property ( "minutes",      minutes     );
      add_property ( "seconds",      seconds     );
      add_property ( "time",         abstime     );
      add_static_function ( "cast",  cast        );
      add_function ( "format",       format      );
      add_property ( "is_leap_year", is_leap     );

      INSTANCE::klass = this;
    }

    static VALUE ctor        ( int argc, VALUE *argv );
    static VALUE tostring    ( int argc, VALUE *argv );
    static VALUE day         ( int argc, VALUE *argv );
    static VALUE month       ( int argc, VALUE *argv );
    static VALUE year        ( int argc, VALUE *argv );
    static VALUE day_of_week ( int argc, VALUE *argv );
    static VALUE day_of_year ( int argc, VALUE *argv );
    static VALUE hours       ( int argc, VALUE *argv );
    static VALUE minutes     ( int argc, VALUE *argv );
    static VALUE is_leap     ( int argc, VALUE *argv );
    static VALUE seconds     ( int argc, VALUE *argv );
    static VALUE abstime     ( int argc, VALUE *argv );
    static VALUE cast        ( int argc, VALUE *argv );
    static VALUE format      ( int argc, VALUE *argv );

  };

  class MAP: public CLASS
  {
  public:
    class  INSTANCE : public THING
    {
    public:
      dictionary<VALUE, VALUE> _map;

      INSTANCE  ()
      {
      }

      ~INSTANCE  ()
      {
      }

      CLASS *
        get_class ()
      {
        return klass;
      }

      virtual void mark ();

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

      static CLASS * klass;
    };

    MAP ( PACKAGE* package ) : CLASS ( "map", 0, package  )
    {
      add_function ( "toString", tostring );
      add_function ( "map",      ctor     );
      add_function ( "add",      add      );
      add_function ( "exist",    exist    );
      add_function ( "[]",       item     );
      add_function ( "remove",   remove   );
      add_function ( "clear",    clear    );
      add_property ( "length",   length   );
      add_static_function ( "{", literal  );
      add_function ( "key",      key      );
      add_function ( "value",    value    );
      INSTANCE::klass = this;
    }

    static VALUE    ctor     ( int argc, VALUE *argv );
    static VALUE    tostring ( int argc, VALUE *argv );
    static VALUE    add      ( int argc, VALUE *argv );
    static VALUE    exist    ( int argc, VALUE *argv );
    static VALUE    item     ( int argc, VALUE *argv );
    static VALUE    remove   ( int argc, VALUE *argv );
    static VALUE    clear    ( int argc, VALUE *argv );
    static VALUE    length   ( int argc, VALUE *argv );
    static VALUE    literal  ( int argc, VALUE *argv );
    static VALUE    key      ( int argc, VALUE *argv );
    static VALUE    value    ( int argc, VALUE *argv );

    virtual THING * load     ( archive *arc );
    virtual bool    save     ( THING *me, archive *arc );

  };


#define MAX_STRING_BUFFER 0x7FFF

  class STREAM: public CLASS
  {
  public:
    class  INSTANCE : public THING
    {
    public:
      THING *     base; // base object: string, file, socket
      io_stream * ios;
      int         last_match_arg; // index of arg in get ( arg0, arg1, arg2, ... )
      bool        is_eof;
      string      buf;

      virtual void
        mark ()
      {
        THING::mark ();
        mark_thing ( base );
      }

      INSTANCE ( io_stream * srcs, THING * src = 0 ) : base ( src ),
                                                       ios ( srcs ),
                                                       last_match_arg ( -1 )

      {
        is_eof = ( srcs == 0 );
      }

      ~INSTANCE  ()
      {
        if ( ios )
          ios->close ();
        delete ios;
        ios = 0;
      }

      CLASS *
        get_class ()
      {
        return klass;
      }

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

      bool get ( char &c );
      void unget ( char c );

      static CLASS * klass;
    };

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成电影网站色mp4| 国产黑丝在线一区二区三区| 狠狠久久亚洲欧美| 色综合久久综合| 久久人人爽爽爽人久久久| 亚洲免费色视频| 国内精品久久久久影院一蜜桃| 91国模大尺度私拍在线视频| 国产亚洲综合av| 免费观看一级欧美片| 色噜噜狠狠色综合中国| 日本一区免费视频| 捆绑紧缚一区二区三区视频| 欧美日韩一区三区| 国产精品美女www爽爽爽| 激情成人午夜视频| 欧美一级片在线观看| 一区二区三区日韩欧美| 成人免费视频播放| 久久久久久影视| 麻豆成人91精品二区三区| 在线亚洲一区二区| 亚洲欧美日韩久久精品| 97国产一区二区| 中文字幕成人av| 国产盗摄一区二区| 久久久久9999亚洲精品| 精品一区二区成人精品| 日韩欧美国产电影| 奇米888四色在线精品| 欧美精品亚洲一区二区在线播放| 亚洲精品自拍动漫在线| 91老师国产黑色丝袜在线| 综合电影一区二区三区| 色婷婷精品大在线视频| 亚洲欧美电影一区二区| 色婷婷综合久色| 亚洲蜜臀av乱码久久精品| 色综合久久88色综合天天6| 最新久久zyz资源站| 97超碰欧美中文字幕| 亚洲男人天堂av网| 欧洲生活片亚洲生活在线观看| 亚洲精品国产视频| 欧美日韩精品一区二区天天拍小说| 亚洲国产综合视频在线观看| 91精品国产综合久久小美女| 蜜桃视频在线一区| 国产亚洲欧美中文| eeuss影院一区二区三区 | 国产成人一区二区精品非洲| 久久精品在线观看| 91麻豆高清视频| 亚洲成人综合在线| 欧美日韩极品在线观看一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品一区二区三区福利| 成人永久aaa| 亚洲国产欧美在线人成| 欧美精品精品一区| 国产成人啪午夜精品网站男同| |精品福利一区二区三区| 欧美日韩dvd在线观看| 精品亚洲国产成人av制服丝袜| 国产精品欧美一区二区三区| 欧美亚洲综合另类| 久久91精品久久久久久秒播| 国产精品久久久久久久久免费丝袜 | 欧美美女黄视频| 国产自产v一区二区三区c| 亚洲欧洲av另类| 在线播放中文字幕一区| 国产精品一区二区久久不卡| 尤物在线观看一区| 欧美精品一区二区三区视频| 色婷婷久久99综合精品jk白丝| 六月丁香婷婷久久| 伊人婷婷欧美激情| 精品国产免费久久| 欧美日韩一区二区三区四区五区| 激情成人综合网| 亚洲成人一二三| 欧美激情综合五月色丁香| 欧美日韩高清影院| 99久久精品免费| 久久国产福利国产秒拍| 久热成人在线视频| 亚洲欧美经典视频| 国产三级精品视频| 日韩一区二区在线看| 一本高清dvd不卡在线观看| 精品一区二区三区在线播放| 亚洲福利视频三区| 亚洲免费在线看| 国产精品午夜在线| 国产亚洲一区二区在线观看| 这里只有精品免费| 欧洲精品视频在线观看| 99天天综合性| 丰满放荡岳乱妇91ww| 韩国中文字幕2020精品| 美女爽到高潮91| 天天影视涩香欲综合网| 亚洲一区二区三区爽爽爽爽爽| 国产亚洲美州欧州综合国| 日韩亚洲欧美中文三级| 欧美日韩亚洲综合在线 | 日韩一区二区视频在线观看| 欧美三级电影网| 色呦呦一区二区三区| 97精品电影院| 91在线国产福利| av不卡一区二区三区| 成人免费毛片嘿嘿连载视频| 国产东北露脸精品视频| 国产精品911| 成人在线视频首页| 白白色 亚洲乱淫| 成人av网址在线| 成人免费视频一区| 99久久精品国产网站| 波多野结衣一区二区三区 | 国产欧美日韩在线| 久久九九久精品国产免费直播| 久久久三级国产网站| 久久精品在这里| 国产精品黄色在线观看| 亚洲另类一区二区| 亚洲成国产人片在线观看| 日韩精品一卡二卡三卡四卡无卡 | 国产精品不卡在线观看| 自拍偷在线精品自拍偷无码专区| 依依成人综合视频| 五月天精品一区二区三区| 蜜桃精品视频在线| 国产一区二区三区四区五区美女 | 亚洲国产精品欧美一二99| 偷拍日韩校园综合在线| 久久激五月天综合精品| 粗大黑人巨茎大战欧美成人| 色欧美88888久久久久久影院| 欧美在线免费观看视频| 91精品国产欧美日韩| 精品电影一区二区三区| 18成人在线观看| 日韩影院在线观看| 国产91丝袜在线播放| 在线一区二区视频| 亚洲精品在线观| 亚洲欧美色一区| 麻豆一区二区三| 91丨九色丨蝌蚪富婆spa| 欧美日韩国产区一| 中文av字幕一区| 日韩在线观看一区二区| 懂色中文一区二区在线播放| 在线看日韩精品电影| 久久日韩粉嫩一区二区三区| 亚洲桃色在线一区| 麻豆91在线观看| 91丨porny丨户外露出| 91精品午夜视频| 最新不卡av在线| 激情另类小说区图片区视频区| 一本色道久久加勒比精品 | 日本在线不卡视频一二三区| 国产乱理伦片在线观看夜一区| 一本色道久久综合精品竹菊| 欧美精品一区二区三区很污很色的| 亚洲欧洲国产专区| 国产精品一区二区免费不卡 | 亚洲高清视频中文字幕| 丁香激情综合五月| 日韩午夜在线观看视频| 亚洲免费观看高清完整版在线观看熊| 六月丁香综合在线视频| 欧美日韩日日夜夜| 亚洲精品五月天| 国产99久久精品| 精品国产电影一区二区| 午夜精品福利一区二区三区蜜桃| 成熟亚洲日本毛茸茸凸凹| 精品久久久久久无| 爽爽淫人综合网网站| 在线观看一区日韩| 日韩理论在线观看| 成人综合在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 日本久久一区二区| 中文字幕在线观看不卡| 福利视频网站一区二区三区| 精品福利一区二区三区免费视频| 日韩中文字幕一区二区三区| 欧美性猛交xxxx乱大交退制版| 成人欧美一区二区三区| 不卡影院免费观看| ...av二区三区久久精品| 99视频精品在线| 亚洲同性gay激情无套| 91麻豆国产福利在线观看|