{
var types=[];
var optionals = [];
var dimensions = {temp:[]}
function noPara(str){
var temp = str
temp = temp.replace(/\(/g,"")
temp = temp.replace(/\)/g,"")
return temp
}
Blockly.JavaScript['dtype_def'] = function(block) {
types = []
optionals = []
dimensions = {temp:[]}
var text_type = block.getFieldValue('TYPE');
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);
var typess = ["",""]
if (value_name) {
var temp1 = value_name.split("ˆ")
if (!temp1[1]) temp1[1]=""
typess = temp1
}
console.log(typess)
var code = "known_types[\""+text_type+'\"] = { \"name\": \"'+text_type
+'\",'+' "types": ['+noPara(typess[0])+'], "optionals": ['+noPara(typess[1])+'], "outputs": [], "lang": 0, "typeChoice": 0, "contractAddress": "TBD in the next step", "source": "TBD in the next step"};\n';
console.log(code)
return code;
};
Blockly.JavaScript['dtype_op'] = function(block) {
var value_op0 = Blockly.JavaScript.valueToCode(block, 'op0', Blockly.JavaScript.ORDER_ATOMIC);
var dropdown_op = block.getFieldValue('op');
var value_op1 = Blockly.JavaScript.valueToCode(block, 'op1', Blockly.JavaScript.ORDER_ATOMIC);
var code1 = "";
var code2 = "";
switch (dropdown_op) {
case "*":
code1 = value_op0+", "+value_op1;
break;
case "+":
code1 = "TBD:)";
break;
case "|":
code1 = ", "+value_op0;
code2 = value_op1+", ";
break;
}
// TODO: Assemble JavaScript into code variable.
//var code = value_op0+", "+value_op1;
// TODO: Change ORDER_NONE to the correct strength.
return [code1+"ˆ"+code2, Blockly.JavaScript.ORDER_NONE];
};
Blockly.JavaScript['dtype_value'] = function(block) {
var text_name = block.getFieldValue('TYPENAME');
var text_label = block.getFieldValue('LABEL');
var checkbox_rel = block.getFieldValue('REL') == 'TRUE';
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);
//var change = Blockly.Events.BLOCK_CHANGE
//console.log(change)
// TODO: Assemble JavaScript into code variable.
var code = { name: text_name, label: text_label, dimensions: JSON.parse("["+noPara(value_name)+"]"), relation: checkbox_rel? 1:0 }
// TODO: Change ORDER_NONE to the correct strength.
return [JSON.stringify(code), Blockly.JavaScript.ORDER_NONE];
};
Blockly.JavaScript['dtype_array'] = function(block) {
var text_name = block.getFieldValue('NAME');
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
var code = '""'
if (text_name) code = '"'+text_name+'"'
if (value_name) code = code+", "+noPara(value_name) ;
// TODO: Change ORDER_NONE to the correct strength.
return [code, Blockly.JavaScript.ORDER_NONE];
};
}