Files
mixly3/boards/default_src/micropython_nrf51822_mithoncc/converters/system.js
2024-07-19 10:16:00 +08:00

70 lines
2.1 KiB
JavaScript

'use strict';
//microbit[py]的停止程序
pbc.whileStatementD.get('while_stop_program')['check_condition'] = function (py2block, node, test, body, orelse) {
if (test._astname == "Name" && py2block.Name_str(test) == "True"
&& body.length == 1 && body[0]._astname == "Pass") {
return true;
}
return false;
}
pbc.whileStatementD.get('while_stop_program')['create_block'] = function (py2block, node, test, body, orelse) {
return [block("controls_end_program", node.lineno, {}, {}, {
"inline": "true"
})];
}
pbc.globalFunctionD['sleep'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 1) {
throw new Error("Incorrect number of arguments");
}
return [block("base_delay", func.lineno, {}, {
'DELAY_TIME': py2block.convert(args[0]),
}, {
"inline": "true"
})];
}
pbc.globalFunctionD['running_time'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 0) {
throw new Error("Incorrect number of arguments");
}
return block("controls_millis", func.lineno, {}, {}, {
"inline": "true"
});
}
pbc.globalFunctionD['panic'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 1) {
throw new Error("Incorrect number of arguments");
}
return [block("Panic_with_status_code", func.lineno, {}, {
'STATUS_CODE': py2block.convert(args[0])
}, {
"inline": "true"
})];
}
pbc.globalFunctionD['reset'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 0) {
throw new Error("Incorrect number of arguments");
}
return [block("reset", func.lineno, {}, {}, {
"inline": "true"
})];
}
pbc.moduleFunctionD.get('os')['uname'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 0) {
throw new Error("Incorrect number of arguments");
}
return block("controls_uname", func.lineno, {}, {}, {
"inline": "true"
});
}