Show
Ignore:
Timestamp:
09/30/08 18:31:50 (6 years ago)
Author:
fujidig
Message:

mref を実装

Location:
lang/javascript/hsp-on-js/trunk/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/hsp-on-js/trunk/src/builtin-funcs.js

    r20230 r20292  
    3535                        switch(val.getType()) { 
    3636                        case VarType.STR: 
    37                                 this.refstr = val.toStrValue(); 
     37                                this.refstr.assign([], val.toStrValue()); 
    3838                                break; 
    3939                        case VarType.DOUBLE: 
    40                                 this.refdval = val.toDoubleValue(); 
     40                                this.refdval.assign([], val.toDoubleValue()); 
    4141                                break; 
    4242                        case VarType.INT: 
    43                                 this.stat = val.toIntValue(); 
     43                                this.stat.assign([], val.toIntValue()); 
    4444                                break; 
    4545                        default: 
     
    166166                this.scanArgs(arguments, ''); 
    167167                throw new StopException; 
     168        }, 
     169        0x16: function mref(v, id) { 
     170                this.scanArgs(arguments, 'aN'); 
     171                id = id ? id.toIntValue()._value : 0; 
     172                switch(id) { 
     173                case 64: 
     174                        v.variable.value = this.stat; 
     175                        break; 
     176                case 65: 
     177                        v.variable.value = this.refstr; 
     178                        break; 
     179                default: 
     180                        throw new HSPError(ErrorCode.UNSUPPORTED_FUNCTION); 
     181                } 
    168182        }, 
    169183        0x18: function exgoto(v, mode, b, label) { 
     
    204218        }, 
    205219        0x03: function stat() { 
    206                 return this.stat; 
     220                return this.stat.at([]); 
    207221        }, 
    208222        0x04: function cnt() { 
     
    219233        }, 
    220234        0x0c: function refstr() { 
    221                 return this.refstr; 
     235                return this.refstr.at([]); 
    222236        }, 
    223237        0x0d: function refdval() { 
    224                 return this.refdval; 
     238                return this.refdval.at([]); 
    225239        } 
    226240}; 
  • lang/javascript/hsp-on-js/trunk/src/evaluator.js

    r20137 r20292  
    1010        this.loopStack = []; 
    1111        this.frameStack = []; 
    12         this.stat = new IntValue(0); 
    13         this.refdval = new DoubleValue(0); 
    14         this.refstr = new StrValue(''); 
     12        this.stat = new IntArray(); 
     13        this.refdval = new DoubleArray(); 
     14        this.refstr = new StrArray(); 
    1515        this.random = new VCRandom(); 
    1616} 
  • lang/javascript/hsp-on-js/trunk/src/run-in-shell.js

    r20230 r20292  
    2121function main(){ 
    2222        var data = [ 
    23 '\x48\x53\x50\x33\x01\x03\x00\x00\x04\x00\x00\x00\x38\x01\x00\x00', 
    24 '\x60\x00\x00\x00\x90\x00\x00\x00\xf0\x00\x00\x00\x19\x00\x00\x00', 
    25 '\x09\x01\x00\x00\x04\x00\x00\x00\x0d\x01\x00\x00\x2b\x00\x00\x00', 
    26 '\x38\x01\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x00\x00', 
    27 '\x38\x01\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x00\x00', 
    28 '\x38\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
    29 '\x01\x20\x00\x00\x00\x00\x08\x00\x04\x00\x10\x27\x0f\x20\x0a\x00', 
    30 '\x01\x00\x01\x00\x01\x40\x00\x00\x0f\x20\x0a\x00\x01\x00\x02\x00', 
    31 '\x01\x40\x00\x00\x01\x20\x03\x00\x00\x00\x08\x00\x0d\x00\x08\x00', 
    32 '\x00\x00\x28\x00\x04\x80\xff\xff\xff\xff\x00\x00\x29\x00\x08\x20', 
    33 '\x20\x00\x01\x00\x02\x00\x01\x40\x01\x00\x01\x40\x00\x00\x01\x20', 
    34 '\x03\x00\x00\x00\x08\x00\x0d\x00\x00\x00\x00\x00\x28\x00\x0d\x00', 
    35 '\x08\x00\x00\x00\x28\x00\x04\x80\xff\xff\xff\xff\x00\x00\x29\x00', 
    36 '\x01\x00\x03\x00\x00\x00\x01\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
    37 '\x01\x00\x03\x00\x0f\x20\x11\x00\x0f\x20\x00\x00\x07\x00\x00\x00', 
    38 '\x74\x2e\x68\x73\x70\x00\x73\x69\x7a\x65\x00\x73\x72\x63\x00\x64', 
    39 '\x65\x73\x74\x00\x74\x69\x6d\x65\x00\x42\x00\x00\x00\xfe\x00\x00', 
    40 '\x00\x00\x00\x00\x06\x06\x06\x00\x0d\x08\x17\x04\x00\x06\xfd\x06', 
    41 '\x00\x00\x00\x00\xfd\x0b\x00\x00\x01\x00\xfd\x0f\x00\x00\x02\x00', 
    42 '\xfd\x14\x00\x00\x03\x00\xff\xff' 
     23'\x48\x53\x50\x33\x01\x03\x00\x00\x02\x00\x00\x00\xde\x02\x00\x00', 
     24'\x60\x00\x00\x00\x9a\x01\x00\x00\xfa\x01\x00\x00\x89\x00\x00\x00', 
     25'\x83\x02\x00\x00\x20\x00\x00\x00\xa3\x02\x00\x00\x3b\x00\x00\x00', 
     26'\xde\x02\x00\x00\x00\x00\x00\x00\xde\x02\x00\x00\x00\x00\x00\x00', 
     27'\xde\x02\x00\x00\x00\x00\x00\x00\xde\x02\x00\x00\x00\x00\x00\x00', 
     28'\xde\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
     29'\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x01\x00\x07\x00\x01\x00', 
     30'\x0b\x20\x00\x00\x06\x00\x04\x00\x00\x00\x0f\x20\x02\x00\x04\x00', 
     31'\x01\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x01\x00\x07\x00', 
     32'\x02\x00\x0b\x20\x00\x00\x06\x00\x04\x00\x00\x00\x0f\x20\x02\x00', 
     33'\x03\x00\x06\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x01\x00', 
     34'\x07\x00\x03\x00\x0b\x20\x00\x00\x06\x00\x04\x00\x00\x00\x0f\x20', 
     35'\x02\x00\x02\x00\x0e\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20', 
     36'\x16\x00\x01\x00\x00\x00\x04\x40\x40\x00\x09\x20\x0f\x00\x02\x00', 
     37'\x12\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x20\x00\x00\x00\x00', 
     38'\x08\x00\x04\x00\x7b\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20', 
     39'\x01\x00\x07\x00\x04\x00\x0b\x20\x00\x00\x06\x00\x04\x00\x00\x00', 
     40'\x0f\x20\x02\x00\x04\x00\xc8\x01\x09\x20\x0f\x00\x02\x00\x20\x00', 
     41'\x01\x00\x00\x00\x00\x00\x00\x00\x01\x20\x00\x00\x00\x00\x08\x00', 
     42'\x02\x00\x2e\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x01\x00', 
     43'\x07\x00\x05\x00\x0b\x20\x00\x00\x06\x00\x04\x00\x00\x00\x0f\x20', 
     44'\x02\x00\x04\x00\x15\x03\x09\x20\x0f\x00\x02\x00\x32\x00\x01\x00', 
     45'\x00\x00\x00\x00\x00\x00\x01\x20\x00\x00\x00\x00\x08\x00\x04\x00', 
     46'\x6f\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x16\x00\x01\x00', 
     47'\x01\x00\x04\x40\x41\x00\x09\x20\x0f\x00\x02\x00\x40\x00\x01\x00', 
     48'\x01\x00\x00\x00\x00\x00\x01\x20\x01\x00\x00\x00\x08\x00\x02\x00', 
     49'\x50\x00\x0f\x20\x01\x00\x07\x00\x00\x00\x0f\x20\x11\x00\x0f\x20', 
     50'\x00\x00\x07\x00\x06\x00\x09\x20\x0f\x00\x02\x00\x54\x00\x0e\x00', 
     51'\x03\x00\x00\x00\x00\x00\x09\x20\x0f\x00\x02\x00\x5c\x00\x0e\x00', 
     52'\x0c\x00\x00\x00\x00\x00\x09\x20\x0f\x00\x02\x00\x66\x00\x0e\x00', 
     53'\x0d\x00\x00\x00\x00\x00\x09\x20\x0f\x00\x0f\x20\x02\x00\x0f\x20', 
     54'\x11\x00\x0f\x20\x00\x00\x07\x00\x07\x00\x74\x2e\x68\x73\x70\x00', 
     55'\x1f\x85\xeb\x51\xb8\x1e\x09\x40\x66\x6f\x6f\x00\x73\x74\x61\x74', 
     56'\x5f\x61\x67\x65\x6e\x74\x20\x3d\x20\x00\x73\x74\x61\x74\x5f\x61', 
     57'\x67\x65\x6e\x74\x20\x3d\x20\x00\x62\x61\x72\x00\x73\x74\x61\x74', 
     58'\x5f\x61\x67\x65\x6e\x74\x20\x3d\x20\x00\x72\x65\x66\x73\x74\x72', 
     59'\x5f\x61\x67\x65\x6e\x74\x20\x3d\x20\x00\x62\x61\x7a\x00\x73\x74', 
     60'\x61\x74\x20\x3d\x20\x00\x72\x65\x66\x73\x74\x72\x20\x3d\x20\x00', 
     61'\x72\x65\x66\x64\x76\x61\x6c\x20\x3d\x20\x00\x73\x74\x61\x74\x5f', 
     62'\x61\x67\x65\x6e\x74\x00\x72\x65\x66\x73\x74\x72\x5f\x61\x67\x65', 
     63'\x6e\x74\x00\xab\x00\x00\x00\x0d\x00\x00\x00\x1e\x00\x00\x00\x2f', 
     64'\x00\x00\x00\x58\x00\x00\x00\x77\x00\x00\x00\xa5\x00\x00\x00\xc7', 
     65'\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x04\x0d\x04\x0d', 
     66'\x04\x0d\x04\x00\x06\x08\x06\x04\x0d\x08\x06\x04\x0d\x08\x06\x04', 
     67'\x00\x06\x08\x06\x04\x00\x06\x00\x00\x08\x08\x08\x02\x02\x00\x06', 
     68'\xfd\x71\x00\x00\x00\x00\xfd\x7c\x00\x00\x01\x00\xff\xff' 
    4369        ].join(''); 
    4470 
  • lang/javascript/hsp-on-js/trunk/src/t.hsp

    r20230 r20292  
    1 size = 10000 
    2 sdim src, size 
    3 sdim dest, size 
     1#define set(%1) gosub *@f : if 0 : *@ : return %1 
    42 
    5 time = gettime(-1) 
    6 memcpy dest, src, size 
    7 time = int(gettime(-1) - time) 
    8 mes time 
     3gosub *show 
     4set 1 
     5gosub *show 
     6set 3.14 
     7gosub *show 
     8set "foo" 
     9gosub *show 
    910 
     11mref stat_agent, 64 
     12mes "stat_agent = "+stat_agent 
     13stat_agent = 123 
     14gosub *show 
     15set 456 
     16mes "stat_agent = "+stat_agent 
     17stat_agent = "bar" 
     18gosub *show 
     19set 789 
     20mes "stat_agent = "+stat_agent 
     21stat_agent = 111 
     22gosub *show 
     23 
     24mref refstr_agent, 65 
     25mes "refstr_agent = "+refstr_agent 
     26refstr_agent = "baz" 
     27gosub *show 
     28 
     29stop 
     30 
     31*show 
     32mes "stat = "+stat 
     33mes "refstr = "+refstr 
     34mes "refdval = "+refdval 
     35mes 
     36return 
     37