Changeset 20224 for lang/javascript/hsp-on-js
- Timestamp:
- 09/29/08 21:50:19 (5 years ago)
- Location:
- lang/javascript/hsp-on-js/trunk/src
- Files:
-
- 7 modified
-
builtin-funcs.js (modified) (1 diff)
-
hsp-array.js (modified) (1 diff)
-
run-in-shell (modified) (1 diff)
-
run-in-shell.js (modified) (2 diffs)
-
str-array.js (modified) (3 diffs)
-
t.hsp (modified) (1 diff)
-
variable.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/hsp-on-js/trunk/src/builtin-funcs.js
r20195 r20224 116 116 0x0a: function sdim(v, strLength, l0, l1, l2, l3) { 117 117 this.scanArgs(arguments, 'aNNNNN'); 118 strLength = strLength ? strLength.toIntValue()._value : 64; 118 119 l0 = l0 ? l0.toIntValue()._value : 0; 119 120 l1 = l1 ? l1.toIntValue()._value : 0; 120 121 l2 = l2 ? l2.toIntValue()._value : 0; 121 122 l3 = l3 ? l3.toIntValue()._value : 0; 122 v.variable.dim(VarType.STR, l0, l1, l2, l3); 123 var ary = new StrArray(); 124 ary.strDim(strLength, l0, l1, l2, l3); 125 v.variable.value = ary; 123 126 }, 124 127 0x0b: function foreach(label) { -
lang/javascript/hsp-on-js/trunk/src/hsp-array.js
r20195 r20224 108 108 }; 109 109 110 HSPArray.lengthToIndices = function lengthToIndices(l0, l1, l2, l3) { 111 var indices = [l0, l1, l2, l3]; 112 // 後ろから 0 を取り除く 113 var i = indices.length - 1; 114 while(i >= 0) { 115 if(indices[i]) break; 116 indices.pop(); 117 i --; 118 } 119 for(var i = 0; i < indices.length; i ++) { 120 if(indices[i] < 0) { 121 throw new HSPError(ErrorCode.ILLEGAL_FUNCTION, '配列の要素数に負の数が指定されています'); 122 } 123 if(indices[i] != 0) { 124 indices[i] --; 125 } 126 } 127 return indices; 128 } 129 110 130 if(typeof HSPonJS != 'undefined') { 111 131 HSPonJS.HSPArray = HSPArray; -
lang/javascript/hsp-on-js/trunk/src/run-in-shell
r20137 r20224 52 52 end 53 53 54 if ARGV.delete('--shell') 55 filenames << '-' 56 end 57 54 58 if ARGV.delete('--rhino') 55 59 system(*%w[rhino -w]+filenames.map{|i|["-f", i]}.flatten) -
lang/javascript/hsp-on-js/trunk/src/run-in-shell.js
r20195 r20224 21 21 function main(){ 22 22 var data = [ 23 '\x48\x53\x50\x33\x01\x03\x00\x00\x01\x00\x00\x00\xe9\x00\x00\x00', 24 '\x60\x00\x00\x00\x66\x00\x00\x00\xc6\x00\x00\x00\x08\x00\x00\x00', 25 '\xce\x00\x00\x00\x04\x00\x00\x00\xd2\x00\x00\x00\x17\x00\x00\x00', 26 '\xe9\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x00\x00\x00\x00\x00\x00', 27 '\xe9\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x00\x00\x00\x00\x00\x00', 28 '\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 29 '\x08\x20\x21\x00\x01\x00\x00\x00\x04\x40\xff\x00\x04\x40\x04\x00', 30 '\x09\x20\x0f\x00\x01\x00\x00\x00\x01\x20\x00\x00\x00\x00\x08\x00', 31 '\x04\x80\x11\x22\x33\x44\x04\x40\x55\x00\x08\x20\x20\x00\x01\x00', 32 '\x00\x00\x01\x40\x00\x00\x04\x40\x04\x00\x04\x40\x00\x00\x04\x40', 33 '\x01\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00\x01\x00', 34 '\x00\x00\x04\x40\x10\x00\x00\x00\x29\x00\x0f\x20\x11\x00\x0f\x20', 35 '\x00\x00\x07\x00\x00\x00\x74\x2e\x68\x73\x70\x00\x61\x00\x2d\x00', 36 '\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x08\x04\x00\x09\x0c\x0c\x00', 37 '\x06\xfd\x06\x00\x00\x00\x00\xff\xff' 23 '\x48\x53\x50\x33\x01\x03\x00\x00\x01\x00\x00\x00\xaf\x00\x00\x00', 24 '\x60\x00\x00\x00\x30\x00\x00\x00\x90\x00\x00\x00\x08\x00\x00\x00', 25 '\x98\x00\x00\x00\x04\x00\x00\x00\x9c\x00\x00\x00\x13\x00\x00\x00', 26 '\xaf\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00', 27 '\xaf\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00', 28 '\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 29 '\x0f\x20\x0a\x00\x01\x00\x00\x00\x04\x40\x64\x00\x08\x20\x21\x00', 30 '\x01\x00\x00\x00\x04\x40\x2a\x00\x04\x40\x41\x00\x09\x20\x0f\x00', 31 '\x01\x00\x00\x00\x0f\x20\x11\x00\x0f\x20\x00\x00\x07\x00\x00\x00', 32 '\x74\x2e\x68\x73\x70\x00\x61\x00\x12\x00\x00\x00\xfe\x00\x00\x00', 33 '\x00\x00\x00\x06\x08\x04\x06\xfd\x06\x00\x00\x00\x00\xff\xff' 38 34 ].join(''); 39 35 … … 49 45 var evaluator = new Evaluator(axdata, sequence); 50 46 evaluator.evaluate(); 47 return evaluator; 51 48 } 52 49 -
lang/javascript/hsp-on-js/trunk/src/str-array.js
r20137 r20224 1 1 function StrArray() { 2 2 HSPArray.call(this); 3 this.values = [ new StrValue('')];3 this.values = [Utils.strTimes("\0", 64)]; 4 4 } 5 5 … … 7 7 8 8 Utils.objectExtend(StrArray.prototype, { 9 assign: function assign(indices, rhs) { 10 this.expand(indices); 11 var offset = this.getOffset(indices); 12 var value = this.values[offset]; 13 rhs = rhs.toStrValue(); 14 value = rhs._value + "\0" + value.slice(rhs._value.length + 1); 15 this.values[offset] = value; 16 }, 9 17 expand: function expand(indices) { 10 18 var isExpanded = HSPArray.prototype.expand.call(this, indices); … … 12 20 var newLen = this.allLength(); 13 21 for(var i = this.values.length; i < newLen; i ++) { 14 this.values[i] = new StrValue('');22 this.values[i] = Utils.strTimes("\0", 64); 15 23 } 16 24 } 17 25 return isExpanded; 18 26 }, 27 at: function at(indices) { 28 var offset = this.getOffset(indices); 29 if(offset == null) throw new HSPError(ErrorCode.ARRAY_OVERFLOW); 30 return new StrValue(Utils.getCStr(this.values[offset])); 31 }, 19 32 getType: function getType() { 20 33 return VarType.STR; 34 }, 35 strDim: function strDim(strLength, l0, l1, l2, l3) { 36 if(strLength == undefined || strLength < 64) { 37 strLength = 64; 38 } 39 var indices = HSPArray.lengthToIndices(l0, l1, l2, l3); 40 HSPArray.prototype.expand.call(this, indices); 41 var len = this.allLength(); 42 for(var i = 0; i < len; i ++) { 43 this.values[i] = Utils.strTimes("\0", strLength); 44 } 45 }, 46 getbyte: function getbyte(indices, bytesOffset) { 47 var offset = this.getOffset(indices); 48 if(offset == null) throw new HSPError(ErrorCode.ARRAY_OVERFLOW); 49 if(!(0 <= bytesOffset && bytesOffset < this.values[offset].length)) { 50 throw new HSPError(ErrorCode.ILLEGAL_FUNCTION); 51 } 52 return this.values[offset].charCodeAt(bytesOffset); 53 }, 54 setbyte: function setbyte(indices, bytesOffset, val) { 55 var offset = this.getOffset(indices); 56 if(offset == null) throw new HSPError(ErrorCode.ARRAY_OVERFLOW); 57 var str = this.values[offset]; 58 if(!(0 <= bytesOffset && bytesOffset < str.length)) { 59 throw new HSPError(ErrorCode.ILLEGAL_FUNCTION); 60 } 61 this.values[offset] = str.slice(0, bytesOffset) + String.fromCharCode(val & 0xff) + str.slice(bytesOffset + 1); 21 62 } 22 63 }); -
lang/javascript/hsp-on-js/trunk/src/t.hsp
r20195 r20224 1 memset a, 0xff, 4 1 sdim a, 100 2 memset a, '*', 65 2 3 mes a 3 4 a = 0x44332211, 0x555 memcpy a, a, 4, 0, 16 mes str(a, 16)7 -
lang/javascript/hsp-on-js/trunk/src/variable.js
r20195 r20224 69 69 throw new HSPError(ErrorCode.ILLEGAL_FUNCTION, '異常な変数型の値です'); 70 70 } 71 var indices = [l0, l1, l2, l3]; 72 // 後ろから 0 を取り除く 73 var i = indices.length - 1; 74 while(i >= 0) { 75 if(indices[i]) break; 76 indices.pop(); 77 i --; 78 } 79 for(var i = 0; i < indices.length; i ++) { 80 if(indices[i] < 0) { 81 throw new HSPError(ErrorCode.ILLEGAL_FUNCTION, '配列の要素数に負の数が指定されています'); 82 } 83 if(indices[i] != 0) { 84 indices[i] --; 85 } 86 } 71 var indices = HSPArray.lengthToIndices(l0, l1, l2, l3); 87 72 ary.expand(indices); 88 73 this.value = ary;
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)