mirror of
https://github.com/boxgaming/qbjs.git
synced 2024-09-20 04:24:45 +00:00
Merge branch 'main' of https://github.com/boxgaming/qbjs
This commit is contained in:
commit
22a21b8b3d
4 changed files with 153 additions and 37 deletions
|
@ -35,12 +35,12 @@ CodeMirror.defineMode("qbjs", function(conf, parserConf) {
|
||||||
// TODO: adjust for QB
|
// TODO: adjust for QB
|
||||||
var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];
|
var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];
|
||||||
|
|
||||||
var builtinFuncsWords = ['_acos', '_acosh', '_alpha', '_alpha32', '_asin', '_asinh', '_atan2', '_atanh', '_autodisplay', '_blue', '_blue32', '_continue', '_copyimage', '_cosh', '_coth', '_csch', '_d2r', '_delay', '_dest',
|
var builtinFuncsWords = ['_acos', '_acosh', '_alpha', '_alpha32', '_asin', '_asinh', '_atan2', '_atanh', '_autodisplay', '_blue', '_blue32', '_ceil', '_continue', '_copyimage', '_cosh', '_coth', '_csch', '_d2g', '_d2r', '_delay', '_dest',
|
||||||
'_display', '_fontwidth', '_freeimage', '_fullscreen', '_green', '_green32', '_height', '_instrrev', '_limit', '_keyclear', '_keydown',
|
'_display', '_fontwidth', '_freeimage', '_fullscreen', '_g2d', '_g2r', '_green', '_green32', '_height', '_hypot', '_instrrev', '_limit', '_keyclear', '_keydown',
|
||||||
'_keyhit', '_loadimage', '_mousebutton', '_mouseinput', '_mousex', '_mousey', '_newimage', '_pi', '_printstring', '_printwidth',
|
'_keyhit', '_loadimage', '_mousebutton', '_mouseinput', '_mousex', '_mousey', '_newimage', '_pi', '_printstring', '_printwidth',
|
||||||
'_putimage', '_r2d', '_red', '_red32', '_resize', '_resizewidth', '_resizeheight', '_rgb', '_rgba', '_rgb32', '_rgba32', '_round',
|
'_putimage', '_r2d', '_r2g', '_readbit', '_red', '_red32', '_resetbit', '_resize', '_resizewidth', '_resizeheight', '_rgb', '_rgba', '_rgb32', '_rgba32', '_round',
|
||||||
'_screenexists', '_sech', '_sinh', '_source', '_sndclose', '_sndopen', '_sndplay', '_sndloop', '_sndpause', '_sndstop', '_sndvol', '_tanh',
|
'_screenexists', '_sech', '_setbit', '_shl', '_shr', '_sinh', '_source', '_sndclose', '_sndopen', '_sndplay', '_sndloop', '_sndpause', '_sndstop', '_sndvol', '_strcmp', '_stricmp', '_tanh',
|
||||||
'_title', '_trim', '_width', 'abs', 'asc', 'atn', 'beep', 'chr', 'circle', 'cls', 'color', 'command', 'cos', 'cvi', 'cvl', 'data', 'draw', 'exp',
|
'_title', '_trim', '_togglebit', '_width', 'abs', 'asc', 'atn', 'beep', 'chr', 'cdbl', 'cint', 'clng', 'csng', 'circle', 'cls', 'color', 'command', 'cos', 'cvi', 'cvl', 'data', 'date', 'draw', 'exp',
|
||||||
'fix', 'hex', 'input', 'inkey', 'instr', 'int', 'lbound', 'left', 'lcase', 'len', 'line', 'locate', 'log', 'ltrim', 'mid', 'mki', 'mkl',
|
'fix', 'hex', 'input', 'inkey', 'instr', 'int', 'lbound', 'left', 'lcase', 'len', 'line', 'locate', 'log', 'ltrim', 'mid', 'mki', 'mkl',
|
||||||
'oct', 'paint', 'point', 'preset', 'print', 'pset', 'right', 'rtrim', 'randomize', 'read', 'restore', 'rnd', 'screen', 'shared', 'sgn', 'sin', 'sleep', 'space', 'sqr',
|
'oct', 'paint', 'point', 'preset', 'print', 'pset', 'right', 'rtrim', 'randomize', 'read', 'restore', 'rnd', 'screen', 'shared', 'sgn', 'sin', 'sleep', 'space', 'sqr',
|
||||||
'str', 'swap', 'tan', 'time', 'timer', 'ubound', 'ucase', 'val', 'varptr', 'window',
|
'str', 'swap', 'tan', 'time', 'timer', 'ubound', 'ucase', 'val', 'varptr', 'window',
|
||||||
|
|
108
qb.js
108
qb.js
|
@ -202,6 +202,10 @@ var QB = new function() {
|
||||||
return _color(rgb).b;
|
return _color(rgb).b;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__Ceil = function(x) {
|
||||||
|
return Math.ceil(x);
|
||||||
|
};
|
||||||
|
|
||||||
this.func__CopyImage = function(srcImageId) {
|
this.func__CopyImage = function(srcImageId) {
|
||||||
var srcCanvas = _images[srcImageId].canvas;
|
var srcCanvas = _images[srcImageId].canvas;
|
||||||
var destImageId = QB.func__NewImage(srcCanvas.width, srcCanvas.height);
|
var destImageId = QB.func__NewImage(srcCanvas.width, srcCanvas.height);
|
||||||
|
@ -227,6 +231,10 @@ var QB = new function() {
|
||||||
return x*Math.PI/180;
|
return x*Math.PI/180;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__D2G = function(x) {
|
||||||
|
return (x * 10/9);
|
||||||
|
};
|
||||||
|
|
||||||
this.sub__Delay = async function(seconds) {
|
this.sub__Delay = async function(seconds) {
|
||||||
await GX.sleep(seconds*1000);
|
await GX.sleep(seconds*1000);
|
||||||
};
|
};
|
||||||
|
@ -274,6 +282,14 @@ var QB = new function() {
|
||||||
// TODO: implement smooth option (maybe) - the canvas does smooth scaling by default
|
// TODO: implement smooth option (maybe) - the canvas does smooth scaling by default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.func__G2D = function(x) {
|
||||||
|
return (x * 9/10);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func__G2R = function(x) {
|
||||||
|
return (x * 9/10) * Math.PI/180;
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Green = function(rgb, imageHandle) {
|
this.func__Green = function(rgb, imageHandle) {
|
||||||
// TODO: implement corresponding logic when an image handle is supplied (maybe)
|
// TODO: implement corresponding logic when an image handle is supplied (maybe)
|
||||||
return _color(rgb).g;
|
return _color(rgb).g;
|
||||||
|
@ -297,6 +313,10 @@ var QB = new function() {
|
||||||
return _images[imageId].canvas.height;
|
return _images[imageId].canvas.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.func__Hypot = function(x, y) {
|
||||||
|
return Math.hypot(x, y);
|
||||||
|
};
|
||||||
|
|
||||||
this.func__InStrRev = function(arg1, arg2, arg3) {
|
this.func__InStrRev = function(arg1, arg2, arg3) {
|
||||||
var startIndex = +Infinity;
|
var startIndex = +Infinity;
|
||||||
var strSource = "";
|
var strSource = "";
|
||||||
|
@ -523,6 +543,19 @@ var QB = new function() {
|
||||||
return x*180/Math.PI;
|
return x*180/Math.PI;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__R2G = function(x) {
|
||||||
|
return (x*(9/10))*180/Math.PI;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func__Readbit= function(x, y) {
|
||||||
|
var mask = 1 << y;
|
||||||
|
if ((x & mask) != 0) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Red = function(rgb, imageHandle) {
|
this.func__Red = function(rgb, imageHandle) {
|
||||||
// TODO: implement corresponding logic when an image handle is supplied (maybe)
|
// TODO: implement corresponding logic when an image handle is supplied (maybe)
|
||||||
return _color(rgb).r;
|
return _color(rgb).r;
|
||||||
|
@ -533,6 +566,11 @@ var QB = new function() {
|
||||||
return _color(rgb).r;
|
return _color(rgb).r;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__Resetbit = function(x, y) {
|
||||||
|
var mask = 1 << y;
|
||||||
|
return x & ~mask;
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Resize = function() {
|
this.func__Resize = function() {
|
||||||
var tmp = _resize;
|
var tmp = _resize;
|
||||||
_resize = false;
|
_resize = false;
|
||||||
|
@ -578,7 +616,11 @@ var QB = new function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.func__Round = function(value) {
|
this.func__Round = function(value) {
|
||||||
|
if (value < 0) {
|
||||||
|
return -Math.round(-value);
|
||||||
|
} else {
|
||||||
return Math.round(value);
|
return Math.round(value);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.func__ScreenExists = function() {
|
this.func__ScreenExists = function() {
|
||||||
|
@ -589,6 +631,19 @@ var QB = new function() {
|
||||||
return 1/Math.cosh(x);
|
return 1/Math.cosh(x);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__Setbit = function(x, y) {
|
||||||
|
var mask = 1 << y;
|
||||||
|
return x | mask;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func__Shl = function(x, y) {
|
||||||
|
return x << y;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func__Shr = function(x, y) {
|
||||||
|
return x >>> y;
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Sinh = function(x) {
|
this.func__Sinh = function(x) {
|
||||||
return Math.sinh(x);
|
return Math.sinh(x);
|
||||||
};
|
};
|
||||||
|
@ -628,6 +683,16 @@ var QB = new function() {
|
||||||
GX.soundVolumne(sid, v);
|
GX.soundVolumne(sid, v);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__Strcmp = function(x, y) {
|
||||||
|
return (( x == y ) ? 0 : (( x > y ) ? 1 : -1 ));
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func__Stricmp = function(x, y) {
|
||||||
|
var a = x.toLowerCase();
|
||||||
|
var b = y.toLowerCase();
|
||||||
|
return (( a == b ) ? 0 : (( a > b ) ? 1 : -1 ));
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Tanh = function(x) {
|
this.func__Tanh = function(x) {
|
||||||
return Math.tanh(x);
|
return Math.tanh(x);
|
||||||
};
|
};
|
||||||
|
@ -640,6 +705,11 @@ var QB = new function() {
|
||||||
return value.trim();
|
return value.trim();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func__Togglebit = function(x, y) {
|
||||||
|
var mask = 1 << y;
|
||||||
|
return x ^ mask;
|
||||||
|
};
|
||||||
|
|
||||||
this.func__Width = function(imageId) {
|
this.func__Width = function(imageId) {
|
||||||
if (imageId == undefined) { imageId = _activeImage; }
|
if (imageId == undefined) { imageId = _activeImage; }
|
||||||
if (_images[imageId].charSizeMode) {
|
if (_images[imageId].charSizeMode) {
|
||||||
|
@ -766,6 +836,14 @@ var QB = new function() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.func_Date = function() {
|
||||||
|
var today = new Date();
|
||||||
|
var dd = String(today.getDate()).padStart(2, '0');
|
||||||
|
var mm = String(today.getMonth() + 1).padStart(2, '0');
|
||||||
|
var yyyy = today.getFullYear();
|
||||||
|
return mm + '-' + dd + '-' + yyyy;
|
||||||
|
}
|
||||||
|
|
||||||
this.sub_Draw = function(t) {
|
this.sub_Draw = function(t) {
|
||||||
|
|
||||||
// Turn input string into array of characters.
|
// Turn input string into array of characters.
|
||||||
|
@ -1195,6 +1273,33 @@ var QB = new function() {
|
||||||
return Math.log(value);
|
return Math.log(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func_Cdbl = function(value) {
|
||||||
|
const buffer = new ArrayBuffer(16);
|
||||||
|
const view = new DataView(buffer);
|
||||||
|
view.setFloat32(1, value);
|
||||||
|
return view.getFloat32(1);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func_Cint = function(value) {
|
||||||
|
if (value > 0) {
|
||||||
|
return Math.round(value);
|
||||||
|
} else {
|
||||||
|
return -Math.round(-value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func_Clng = function(value) {
|
||||||
|
if (value > 0) {
|
||||||
|
return Math.round(value);
|
||||||
|
} else {
|
||||||
|
return -Math.round(-value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.func_Csng = function(value) {
|
||||||
|
return value; // TODO: Implement this.
|
||||||
|
};
|
||||||
|
|
||||||
this.sub_Circle = function(step, x, y, radius, color, startAngle, endAngle, aspect) {
|
this.sub_Circle = function(step, x, y, radius, color, startAngle, endAngle, aspect) {
|
||||||
|
|
||||||
var screen = _images[_activeImage];
|
var screen = _images[_activeImage];
|
||||||
|
@ -1717,7 +1822,7 @@ var QB = new function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sub_Restore = function(t) {
|
this.sub_Restore = function(t) {
|
||||||
if (t == undefined || t.trim() == "") {
|
if ((t == undefined) || (t.trim() == "")) {
|
||||||
_readCursorPosition = 0;
|
_readCursorPosition = 0;
|
||||||
} else {
|
} else {
|
||||||
_readCursorPosition = _dataLabelMap[t];
|
_readCursorPosition = _dataLabelMap[t];
|
||||||
|
@ -1922,6 +2027,7 @@ var QB = new function() {
|
||||||
|
|
||||||
this.func_Val = function(value) {
|
this.func_Val = function(value) {
|
||||||
var ret;
|
var ret;
|
||||||
|
value = value.toString();
|
||||||
if (value.substring(0, 2) == "&H") {
|
if (value.substring(0, 2) == "&H") {
|
||||||
ret = parseInt(value.slice(2), 16);
|
ret = parseInt(value.slice(2), 16);
|
||||||
} else if (value.substring(0, 2) == "&O") {
|
} else if (value.substring(0, 2) == "&O") {
|
||||||
|
|
21
qb2js.js
21
qb2js.js
|
@ -31,8 +31,6 @@ async function _QBCompiler() {
|
||||||
var currentMethod = ''; // STRING
|
var currentMethod = ''; // STRING
|
||||||
var currentModule = ''; // STRING
|
var currentModule = ''; // STRING
|
||||||
var programMethods = 0; // INTEGER
|
var programMethods = 0; // INTEGER
|
||||||
var dataTicker = 0; // INTEGER
|
|
||||||
dataTicker = 1;
|
|
||||||
if (QB.func_Command() != "" ) {
|
if (QB.func_Command() != "" ) {
|
||||||
await sub_QBToJS( QB.func_Command(), FILE, "");
|
await sub_QBToJS( QB.func_Command(), FILE, "");
|
||||||
await sub_PrintJS();
|
await sub_PrintJS();
|
||||||
|
@ -2801,10 +2799,12 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "SUB", "_AutoDisplay", False);
|
await sub_AddQBMethod( "SUB", "_AutoDisplay", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Blue", False);
|
await sub_AddQBMethod( "FUNCTION", "_Blue", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Blue32", False);
|
await sub_AddQBMethod( "FUNCTION", "_Blue32", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Ceil", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_CopyImage", False);
|
await sub_AddQBMethod( "FUNCTION", "_CopyImage", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Cosh", False);
|
await sub_AddQBMethod( "FUNCTION", "_Cosh", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Coth", False);
|
await sub_AddQBMethod( "FUNCTION", "_Coth", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Csch", False);
|
await sub_AddQBMethod( "FUNCTION", "_Csch", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_D2G", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_D2R", False);
|
await sub_AddQBMethod( "FUNCTION", "_D2R", False);
|
||||||
await sub_AddQBMethod( "SUB", "_Delay", True);
|
await sub_AddQBMethod( "SUB", "_Delay", True);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Dest", False);
|
await sub_AddQBMethod( "FUNCTION", "_Dest", False);
|
||||||
|
@ -2815,9 +2815,12 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "SUB", "_FreeImage", False);
|
await sub_AddQBMethod( "SUB", "_FreeImage", False);
|
||||||
await sub_AddQBMethod( "SUB", "_FullScreen", False);
|
await sub_AddQBMethod( "SUB", "_FullScreen", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_FullScreen", False);
|
await sub_AddQBMethod( "FUNCTION", "_FullScreen", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_G2D", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_G2R", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Green", False);
|
await sub_AddQBMethod( "FUNCTION", "_Green", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Green32", False);
|
await sub_AddQBMethod( "FUNCTION", "_Green32", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Height", False);
|
await sub_AddQBMethod( "FUNCTION", "_Height", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Hypot", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_InStrRev", False);
|
await sub_AddQBMethod( "FUNCTION", "_InStrRev", False);
|
||||||
await sub_AddQBMethod( "SUB", "_Limit", True);
|
await sub_AddQBMethod( "SUB", "_Limit", True);
|
||||||
await sub_AddQBMethod( "SUB", "_KeyClear", False);
|
await sub_AddQBMethod( "SUB", "_KeyClear", False);
|
||||||
|
@ -2834,8 +2837,11 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "FUNCTION", "_PrintWidth", False);
|
await sub_AddQBMethod( "FUNCTION", "_PrintWidth", False);
|
||||||
await sub_AddQBMethod( "SUB", "_PutImage", False);
|
await sub_AddQBMethod( "SUB", "_PutImage", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_R2D", False);
|
await sub_AddQBMethod( "FUNCTION", "_R2D", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_R2G", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Readbit", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Red", False);
|
await sub_AddQBMethod( "FUNCTION", "_Red", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Red32", False);
|
await sub_AddQBMethod( "FUNCTION", "_Red32", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Resetbit", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Resize", False);
|
await sub_AddQBMethod( "FUNCTION", "_Resize", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_ResizeHeight", False);
|
await sub_AddQBMethod( "FUNCTION", "_ResizeHeight", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_ResizeWidth", False);
|
await sub_AddQBMethod( "FUNCTION", "_ResizeWidth", False);
|
||||||
|
@ -2846,6 +2852,9 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Round", False);
|
await sub_AddQBMethod( "FUNCTION", "_Round", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_ScreenExists", False);
|
await sub_AddQBMethod( "FUNCTION", "_ScreenExists", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Sech", False);
|
await sub_AddQBMethod( "FUNCTION", "_Sech", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Setbit", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Shl", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Shr", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Sinh", False);
|
await sub_AddQBMethod( "FUNCTION", "_Sinh", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Source", False);
|
await sub_AddQBMethod( "FUNCTION", "_Source", False);
|
||||||
await sub_AddQBMethod( "SUB", "_Source", False);
|
await sub_AddQBMethod( "SUB", "_Source", False);
|
||||||
|
@ -2856,8 +2865,11 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "SUB", "_SndPause", False);
|
await sub_AddQBMethod( "SUB", "_SndPause", False);
|
||||||
await sub_AddQBMethod( "SUB", "_SndStop", False);
|
await sub_AddQBMethod( "SUB", "_SndStop", False);
|
||||||
await sub_AddQBMethod( "SUB", "_SndVol", False);
|
await sub_AddQBMethod( "SUB", "_SndVol", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Strcmp", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Stricmp", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Tanh", False);
|
await sub_AddQBMethod( "FUNCTION", "_Tanh", False);
|
||||||
await sub_AddQBMethod( "SUB", "_Title", False);
|
await sub_AddQBMethod( "SUB", "_Title", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "_Togglebit", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Trim", False);
|
await sub_AddQBMethod( "FUNCTION", "_Trim", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "_Width", False);
|
await sub_AddQBMethod( "FUNCTION", "_Width", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Abs", False);
|
await sub_AddQBMethod( "FUNCTION", "Abs", False);
|
||||||
|
@ -2865,6 +2877,10 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "FUNCTION", "Atn", False);
|
await sub_AddQBMethod( "FUNCTION", "Atn", False);
|
||||||
await sub_AddQBMethod( "SUB", "Beep", False);
|
await sub_AddQBMethod( "SUB", "Beep", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Chr$", False);
|
await sub_AddQBMethod( "FUNCTION", "Chr$", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Cdbl", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Cint", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Clng", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Csng", False);
|
||||||
await sub_AddQBMethod( "SUB", "Circle", False);
|
await sub_AddQBMethod( "SUB", "Circle", False);
|
||||||
await sub_AddQBMethod( "SUB", "Cls", False);
|
await sub_AddQBMethod( "SUB", "Cls", False);
|
||||||
await sub_AddQBMethod( "SUB", "Color", False);
|
await sub_AddQBMethod( "SUB", "Color", False);
|
||||||
|
@ -2873,6 +2889,7 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "FUNCTION", "Csrlin", False);
|
await sub_AddQBMethod( "FUNCTION", "Csrlin", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Cvi", False);
|
await sub_AddQBMethod( "FUNCTION", "Cvi", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Cvl", False);
|
await sub_AddQBMethod( "FUNCTION", "Cvl", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Date$", False);
|
||||||
await sub_AddQBMethod( "SUB", "Draw", False);
|
await sub_AddQBMethod( "SUB", "Draw", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Exp", False);
|
await sub_AddQBMethod( "FUNCTION", "Exp", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Fix", False);
|
await sub_AddQBMethod( "FUNCTION", "Fix", False);
|
||||||
|
|
|
@ -2,6 +2,8 @@ Option _Explicit
|
||||||
$Console:Only
|
$Console:Only
|
||||||
'$ExeIcon:'./../gx/resource/gx.ico'
|
'$ExeIcon:'./../gx/resource/gx.ico'
|
||||||
|
|
||||||
|
' In console, after creating qb2js.exe, run: qb2js qb2js.bas > ../qb2js.js
|
||||||
|
|
||||||
Const FILE = 1
|
Const FILE = 1
|
||||||
Const TEXT = 2
|
Const TEXT = 2
|
||||||
Const False = 0
|
Const False = 0
|
||||||
|
@ -69,8 +71,6 @@ Dim Shared modLevel As Integer
|
||||||
Dim Shared As String currentMethod
|
Dim Shared As String currentMethod
|
||||||
Dim Shared As String currentModule
|
Dim Shared As String currentModule
|
||||||
Dim Shared As Integer programMethods
|
Dim Shared As Integer programMethods
|
||||||
Dim Shared As Integer dataTicker
|
|
||||||
dataTicker = 1
|
|
||||||
|
|
||||||
' Only execute the conversion from the native version if we have been passed the
|
' Only execute the conversion from the native version if we have been passed the
|
||||||
' source file to convert on the command line
|
' source file to convert on the command line
|
||||||
|
@ -1744,19 +1744,6 @@ Function ReadLine (lineIndex As Integer, fline As String, rawJS As Integer)
|
||||||
|
|
||||||
ReadLine = rawJS
|
ReadLine = rawJS
|
||||||
|
|
||||||
'If (_Trim$(LCase$(Left$(fline, 4))) = "data") Then
|
|
||||||
' 'AddLineTop dataTicker, fline
|
|
||||||
' 'AddSubLinesTop dataTicker, fline
|
|
||||||
' AddLine dataTicker, fline
|
|
||||||
' AddSubLines dataTicker, fline
|
|
||||||
' Exit Function
|
|
||||||
'End If
|
|
||||||
'If (_Trim$(LCase$(Left$(fline, 6))) = "_label") Then
|
|
||||||
' 'AddLineTop dataTicker, fline
|
|
||||||
' AddLine dataTicker, fline
|
|
||||||
' Exit Function
|
|
||||||
'End If
|
|
||||||
|
|
||||||
If _Trim$(fline) = "" Then Exit Function
|
If _Trim$(fline) = "" Then Exit Function
|
||||||
|
|
||||||
Dim word As String
|
Dim word As String
|
||||||
|
@ -2356,19 +2343,6 @@ Sub AddQBMethod (mtype As String, mname As String, sync As Integer)
|
||||||
AddMethod m, "QB.", sync
|
AddMethod m, "QB.", sync
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Sub AddLineTop (lineIndex As Integer, fline As String)
|
|
||||||
' Dim lcount As Integer: lcount = UBound(lines) + 1
|
|
||||||
' ReDim _Preserve As CodeLine lines(lcount)
|
|
||||||
' Dim j As Integer
|
|
||||||
' For j = UBound(lines) To dataTicker Step -1
|
|
||||||
' lines(j).line = lines(j - 1).line
|
|
||||||
' lines(j).text = lines(j - 1).text
|
|
||||||
' Next
|
|
||||||
' lines(dataTicker).line = dataTicker
|
|
||||||
' lines(dataTicker).text = fline
|
|
||||||
' dataTicker = dataTicker + 1
|
|
||||||
'End Sub
|
|
||||||
|
|
||||||
Sub AddLine (lineIndex As Integer, fline As String)
|
Sub AddLine (lineIndex As Integer, fline As String)
|
||||||
__AddLine lineIndex, fline
|
__AddLine lineIndex, fline
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -3007,10 +2981,12 @@ Sub InitQBMethods
|
||||||
AddQBMethod "SUB", "_AutoDisplay", False
|
AddQBMethod "SUB", "_AutoDisplay", False
|
||||||
AddQBMethod "FUNCTION", "_Blue", False
|
AddQBMethod "FUNCTION", "_Blue", False
|
||||||
AddQBMethod "FUNCTION", "_Blue32", False
|
AddQBMethod "FUNCTION", "_Blue32", False
|
||||||
|
AddQBMethod "FUNCTION", "_Ceil", False
|
||||||
AddQBMethod "FUNCTION", "_CopyImage", False
|
AddQBMethod "FUNCTION", "_CopyImage", False
|
||||||
AddQBMethod "FUNCTION", "_Cosh", False
|
AddQBMethod "FUNCTION", "_Cosh", False
|
||||||
AddQBMethod "FUNCTION", "_Coth", False
|
AddQBMethod "FUNCTION", "_Coth", False
|
||||||
AddQBMethod "FUNCTION", "_Csch", False
|
AddQBMethod "FUNCTION", "_Csch", False
|
||||||
|
AddQBMethod "FUNCTION", "_D2G", False
|
||||||
AddQBMethod "FUNCTION", "_D2R", False
|
AddQBMethod "FUNCTION", "_D2R", False
|
||||||
AddQBMethod "SUB", "_Delay", True
|
AddQBMethod "SUB", "_Delay", True
|
||||||
AddQBMethod "FUNCTION", "_Dest", False
|
AddQBMethod "FUNCTION", "_Dest", False
|
||||||
|
@ -3021,9 +2997,12 @@ Sub InitQBMethods
|
||||||
AddQBMethod "SUB", "_FreeImage", False
|
AddQBMethod "SUB", "_FreeImage", False
|
||||||
AddQBMethod "SUB", "_FullScreen", False
|
AddQBMethod "SUB", "_FullScreen", False
|
||||||
AddQBMethod "FUNCTION", "_FullScreen", False
|
AddQBMethod "FUNCTION", "_FullScreen", False
|
||||||
|
AddQBMethod "FUNCTION", "_G2D", False
|
||||||
|
AddQBMethod "FUNCTION", "_G2R", False
|
||||||
AddQBMethod "FUNCTION", "_Green", False
|
AddQBMethod "FUNCTION", "_Green", False
|
||||||
AddQBMethod "FUNCTION", "_Green32", False
|
AddQBMethod "FUNCTION", "_Green32", False
|
||||||
AddQBMethod "FUNCTION", "_Height", False
|
AddQBMethod "FUNCTION", "_Height", False
|
||||||
|
AddQBMethod "FUNCTION", "_Hypot", False
|
||||||
AddQBMethod "FUNCTION", "_InStrRev", False
|
AddQBMethod "FUNCTION", "_InStrRev", False
|
||||||
AddQBMethod "SUB", "_Limit", True
|
AddQBMethod "SUB", "_Limit", True
|
||||||
AddQBMethod "SUB", "_KeyClear", False
|
AddQBMethod "SUB", "_KeyClear", False
|
||||||
|
@ -3040,8 +3019,11 @@ Sub InitQBMethods
|
||||||
AddQBMethod "FUNCTION", "_PrintWidth", False
|
AddQBMethod "FUNCTION", "_PrintWidth", False
|
||||||
AddQBMethod "SUB", "_PutImage", False
|
AddQBMethod "SUB", "_PutImage", False
|
||||||
AddQBMethod "FUNCTION", "_R2D", False
|
AddQBMethod "FUNCTION", "_R2D", False
|
||||||
|
AddQBMethod "FUNCTION", "_R2G", False
|
||||||
|
AddQBMethod "FUNCTION", "_Readbit", False
|
||||||
AddQBMethod "FUNCTION", "_Red", False
|
AddQBMethod "FUNCTION", "_Red", False
|
||||||
AddQBMethod "FUNCTION", "_Red32", False
|
AddQBMethod "FUNCTION", "_Red32", False
|
||||||
|
AddQBMethod "FUNCTION", "_Resetbit", False
|
||||||
AddQBMethod "FUNCTION", "_Resize", False
|
AddQBMethod "FUNCTION", "_Resize", False
|
||||||
AddQBMethod "FUNCTION", "_ResizeHeight", False
|
AddQBMethod "FUNCTION", "_ResizeHeight", False
|
||||||
AddQBMethod "FUNCTION", "_ResizeWidth", False
|
AddQBMethod "FUNCTION", "_ResizeWidth", False
|
||||||
|
@ -3052,6 +3034,9 @@ Sub InitQBMethods
|
||||||
AddQBMethod "FUNCTION", "_Round", False
|
AddQBMethod "FUNCTION", "_Round", False
|
||||||
AddQBMethod "FUNCTION", "_ScreenExists", False
|
AddQBMethod "FUNCTION", "_ScreenExists", False
|
||||||
AddQBMethod "FUNCTION", "_Sech", False
|
AddQBMethod "FUNCTION", "_Sech", False
|
||||||
|
AddQBMethod "FUNCTION", "_Setbit", False
|
||||||
|
AddQBMethod "FUNCTION", "_Shl", False
|
||||||
|
AddQBMethod "FUNCTION", "_Shr", False
|
||||||
AddQBMethod "FUNCTION", "_Sinh", False
|
AddQBMethod "FUNCTION", "_Sinh", False
|
||||||
AddQBMethod "FUNCTION", "_Source", False
|
AddQBMethod "FUNCTION", "_Source", False
|
||||||
AddQBMethod "SUB", "_Source", False
|
AddQBMethod "SUB", "_Source", False
|
||||||
|
@ -3062,8 +3047,11 @@ Sub InitQBMethods
|
||||||
AddQBMethod "SUB", "_SndPause", False
|
AddQBMethod "SUB", "_SndPause", False
|
||||||
AddQBMethod "SUB", "_SndStop", False
|
AddQBMethod "SUB", "_SndStop", False
|
||||||
AddQBMethod "SUB", "_SndVol", False
|
AddQBMethod "SUB", "_SndVol", False
|
||||||
|
AddQBMethod "FUNCTION", "_Strcmp", False
|
||||||
|
AddQBMethod "FUNCTION", "_Stricmp", False
|
||||||
AddQBMethod "FUNCTION", "_Tanh", False
|
AddQBMethod "FUNCTION", "_Tanh", False
|
||||||
AddQBMethod "SUB", "_Title", False
|
AddQBMethod "SUB", "_Title", False
|
||||||
|
AddQBMethod "FUNCTION", "_Togglebit", False
|
||||||
AddQBMethod "FUNCTION", "_Trim", False
|
AddQBMethod "FUNCTION", "_Trim", False
|
||||||
AddQBMethod "FUNCTION", "_Width", False
|
AddQBMethod "FUNCTION", "_Width", False
|
||||||
|
|
||||||
|
@ -3074,6 +3062,10 @@ Sub InitQBMethods
|
||||||
AddQBMethod "FUNCTION", "Atn", False
|
AddQBMethod "FUNCTION", "Atn", False
|
||||||
AddQBMethod "SUB", "Beep", False
|
AddQBMethod "SUB", "Beep", False
|
||||||
AddQBMethod "FUNCTION", "Chr$", False
|
AddQBMethod "FUNCTION", "Chr$", False
|
||||||
|
AddQBMethod "FUNCTION", "Cdbl", False
|
||||||
|
AddQBMethod "FUNCTION", "Cint", False
|
||||||
|
AddQBMethod "FUNCTION", "Clng", False
|
||||||
|
AddQBMethod "FUNCTION", "Csng", False
|
||||||
AddQBMethod "SUB", "Circle", False
|
AddQBMethod "SUB", "Circle", False
|
||||||
AddQBMethod "SUB", "Cls", False
|
AddQBMethod "SUB", "Cls", False
|
||||||
AddQBMethod "SUB", "Color", False
|
AddQBMethod "SUB", "Color", False
|
||||||
|
@ -3082,6 +3074,7 @@ Sub InitQBMethods
|
||||||
AddQBMethod "FUNCTION", "Csrlin", False
|
AddQBMethod "FUNCTION", "Csrlin", False
|
||||||
AddQBMethod "FUNCTION", "Cvi", False
|
AddQBMethod "FUNCTION", "Cvi", False
|
||||||
AddQBMethod "FUNCTION", "Cvl", False
|
AddQBMethod "FUNCTION", "Cvl", False
|
||||||
|
AddQBMethod "FUNCTION", "Date$", False
|
||||||
AddQBMethod "SUB", "Draw", False
|
AddQBMethod "SUB", "Draw", False
|
||||||
AddQBMethod "FUNCTION", "Exp", False
|
AddQBMethod "FUNCTION", "Exp", False
|
||||||
AddQBMethod "FUNCTION", "Fix", False
|
AddQBMethod "FUNCTION", "Fix", False
|
||||||
|
|
Loading…
Reference in a new issue