mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 06:28:14 +00:00
52 lines
2.0 KiB
JavaScript
52 lines
2.0 KiB
JavaScript
const { luaGenerator } = require('blockly/lua');
|
|
|
|
if (!luaGenerator.forBlock) {
|
|
luaGenerator.forBlock = {};
|
|
}
|
|
|
|
luaGenerator.forBlock['io_open'] = function(block, generator) {
|
|
const filename = generator.valueToCode(block, 'FILENAME', generator.ORDER_ATOMIC);
|
|
const mode = block.getFieldValue('MODE');
|
|
const code = `io.open(${filename}, "${mode}")`;
|
|
return [code, generator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['io_close'] = function(block, generator) {
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const code = `${file}:close()\n`;
|
|
return code;
|
|
};
|
|
|
|
luaGenerator.forBlock['io_read'] = function(block, generator) {
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const format = block.getFieldValue('FORMAT');
|
|
const code = `${file}:read("${format}")`;
|
|
return [code, generator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['io_write'] = function(block, generator) {
|
|
const data = generator.valueToCode(block, 'DATA', generator.ORDER_NONE) || '""';
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const code = `${file}:write(${data})\n`;
|
|
return code;
|
|
};
|
|
|
|
luaGenerator.forBlock['io_seek'] = function(block, generator) {
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const position = generator.valueToCode(block, 'POSITION', generator.ORDER_ATOMIC);
|
|
const offset = generator.valueToCode(block, 'OFFSET', generator.ORDER_ATOMIC);
|
|
const code = `${file}:seek("${position}", ${offset})`;
|
|
return [code, generator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['io_lines'] = function(block, generator) {
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const code = `${file}:lines()`;
|
|
return [code, generator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['io_flush'] = function(block, generator) {
|
|
const file = generator.valueToCode(block, 'FILE', generator.ORDER_ATOMIC);
|
|
const code = `${file}:flush()\n`;
|
|
return code;
|
|
}; |