basic:load function

This commit is contained in:
minjaesong
2020-11-14 13:58:11 +09:00
parent 4af9df40a2
commit 34cfec60c7

View File

@@ -32,6 +32,7 @@ lang.badOperatorFormat = "Illegal operator format";
lang.badFunctionCallFormat = "Illegal function call";
lang.unmatchedBrackets = "Unmatched brackets";
lang.missingOperand = "Missing operand";
lang.noSuchFile = "No such file";
lang.syntaxfehler = function(line, reason) {
return "Syntax error" + ((line !== undefined) ? (" in "+line) : "") + ((reason !== undefined) ? (": "+reason) : "");
};
@@ -1447,6 +1448,23 @@ bF.save = function(args) { // SAVE function
cmdbuf.forEach(function(v,i) { sb += i+" "+v+"\n"; });
fs.write(sb);
};
bF.load = function(args) { // LOAD function
if (args[1] === undefined) throw lang.missingOperand;
let fileOpened = fs.open(args[1], "R");
if (!fileOpened) {
throw lang.noSuchFile;
return;
}
let prg = fs.readAll();
cmdbuf = [];
prg.split('\n').forEach(function(line) {
let i = line.indexOf(" ");
let lnum = line.slice(0, i);
if (isNaN(lnum)) throw lang.illegalType();
cmdbuf[lnum] = line.slice(i + 1, line.length);
});
};
Object.freeze(bF);
while (!tbasexit) {
let line = sys.read().trim();