1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /**
- * @license Licensed under the Apache License, Version 2.0 (the "License"):
- * http://www.apache.org/licenses/LICENSE-2.0
- */
- /**
- * @fileoverview Generating Arduino code for variables blocks.
- */
- 'use strict';
- goog.provide('Blockly.Python.variables');
- goog.require('Blockly.Python');
- /**
- * Code generator for variable (X) getter.
- * Arduino code: loop { X }
- * @param {Blockly.Block} block Block to generate the code from.
- * @return {array} Completed code with order of operation.
- */
- Blockly.Python['variables_get'] = function(block) {
- var code = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'),
- Blockly.Variables.NAME_TYPE);
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
- /**
- * Code generator for variable (X) setter (Y).
- * Arduino code: type X;
- * loop { X = Y; }
- * @param {Blockly.Block} block Block to generate the code from.
- * @return {string} Completed code.
- */
- Blockly.Python['variables_set'] = function(block) {
- var argument0 = Blockly.Python.valueToCode(block, 'VALUE',
- Blockly.Python.ORDER_ASSIGNMENT) || '0';
- //console.log(block.getBlockType());
- //console.log(block.childBlocks_[0].type);
-
- if (block.childBlocks_.length) {
- if (block.childBlocks_[0].type == "lists_create_with") {
- // console.log("test1");
- var varName = block.getFieldValue('VAR');
- var decl = 'int '+ varName + '[] = ' + argument0 + ';\n';
- Blockly.Python.addDeclaration('create_int_list', decl);
- return '';
- } else if (block.childBlocks_[0].type == "lists_create_with2"){
- // console.log("test2");
- var varName = block.getFieldValue('VAR');
- var decl = 'String '+ varName + '[] = ' + argument0 + ';\n';
- Blockly.Python.addDeclaration('create_string_list', decl);
- return '';
- } else {
- // console.log('test3');
-
- var varName = Blockly.Python.variableDB_.getName(
- block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE);
- //var varName = block.getFieldValue('VAR');
- return varName + ' = ' + argument0 + ';\n';
- }
- }
- // var argument0_Type = block.getBlockType();
- var varName = Blockly.Python.variableDB_.getName(
- block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE);
- //var varName = block.getFieldValue('VAR');
- return varName + ' = ' + argument0 + ';\n';
- };
- /**
- * Code generator for variable (X) csasting (Y).
- * Arduino code: loop { (Y)X }
- * @param {Blockly.Block} block Block to generate the code from.
- * @return {array} Completed code with order of operation.
- */
- Blockly.Python['variables_set_type'] = function(block) {
- var argument0 = Blockly.Python.valueToCode(block, 'VARIABLE_SETTYPE_INPUT',
- Blockly.Python.ORDER_ASSIGNMENT) || '0';
- var varType = Blockly.Python.getArduinoType_(
- Blockly.Types[block.getFieldValue('VARIABLE_SETTYPE_TYPE')]);
- var code = '(' + varType + ')(' + argument0 + ')';
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
|