Files

99 lines
2.7 KiB
JavaScript

'use strict';
pbc.globalFunctionD['type'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
if (args.length != 1) {
throw new Error("Incorrect number of arguments");
}
return block("controls_type", func.lineno, {}, {
'DATA': py2block.convert(args[0]),
}, {
"inline": "false"
});
}
function typeName() {
function converter(py2block, node, id, ctx, nodeName) {
return block("controls_typeLists", node.lineno, {'type': nodeName}, {}, {
"inline": "true"
});
}
return converter;
}
pbc.reservedNameD['int'] = typeName();
pbc.reservedNameD['float'] = typeName();
pbc.reservedNameD['str'] = typeName();
pbc.reservedNameD['list'] = typeName();
pbc.reservedNameD['tuple'] = typeName();
pbc.reservedNameD['dict'] = typeName();
pbc.reservedNameD['set'] = typeName();
pbc.reservedNameD['NoneType'] = typeName();
pbc.globalFunctionD['range'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
var args_len = args.length;
if (args_len > 3 || args_len < 1) {
throw new Error("Incorrect number of arguments");
}
var arg1block, arg2block, arg3block;
if (args_len == 1) {
arg2block = py2block.convert(args[0]);
var args0 = {
_astname: "Num",
n: {
'v': 0
}
};
arg1block = py2block.convert(args0);
var args2 = {
_astname: "Num",
n: {
'v': 1
}
};
arg3block = py2block.convert(args2);
}else if (args_len == 2) {
var args2 = {
_astname: "Num",
n: {
'v': 1
}
};
arg1block = py2block.convert(args[0]);
arg2block = py2block.convert(args[1]);
arg3block = py2block.convert(args2);
}else {
arg1block = py2block.convert(args[0]);
arg2block = py2block.convert(args[1]);
arg3block = py2block.convert(args[2]);
}
return block("controls_range", func.lineno, {
}, {
'FROM': arg1block,
'TO': arg2block,
'STEP': arg3block
}, {
"inline": "true"
});
};
pbc.moduleFunctionD.get('_thread')['start_new_thread'] = function(py2block, func, args, keywords, starargs, kwargs, node){
if (args.length !== 2) {
throw new Error("Incorrect number of arguments");
}
pbc.pinType = "pins_callback";
var callback = py2block.convert(args[0]);
pbc.pinType=null;
var tupblock = py2block.convert(args[1]);
return [block("controls_thread", func.lineno, {},{
"callback":callback,
"VAR":tupblock
},{
"inline": "true"
})];
};
//for i in ...在python_to_blockly.js中实现