rename variableDB to nameDB
rename variableDB_ to nameDB_ as it is deprecated
This commit is contained in:
		
							parent
							
								
									abfa5d0bed
								
							
						
					
					
						commit
						a8cf038821
					
				| @ -121,21 +121,21 @@ Blockly["Arduino"].init = function (workspace) { | ||||
| 
 | ||||
|   Blockly["Arduino"].variablesInitCode_ = ""; | ||||
| 
 | ||||
|   if (!Blockly["Arduino"].variableDB_) { | ||||
|     Blockly["Arduino"].variableDB_ = new Blockly.Names( | ||||
|   if (!Blockly["Arduino"].nameDB_) { | ||||
|     Blockly["Arduino"].nameDB_ = new Blockly.Names( | ||||
|       Blockly["Arduino"].RESERVED_WORDS_ | ||||
|     ); | ||||
|   } else { | ||||
|     Blockly["Arduino"].variableDB_.reset(); | ||||
|     Blockly["Arduino"].nameDB_.reset(); | ||||
|   } | ||||
| 
 | ||||
|   Blockly["Arduino"].variableDB_.setVariableMap(workspace.getVariableMap()); | ||||
|   Blockly["Arduino"].nameDB_.setVariableMap(workspace.getVariableMap()); | ||||
| 
 | ||||
|   // We don't have developer variables for now
 | ||||
|   // // Add developer variables (not created or named by the user).
 | ||||
|   // var devVarList = Blockly.Variables.allDeveloperVariables(workspace);
 | ||||
|   // for (var i = 0; i < devVarList.length; i++) {
 | ||||
|   //     defvars.push(Blockly['Arduino'].variableDB_.getName(devVarList[i],
 | ||||
|   //     defvars.push(Blockly['Arduino'].nameDB_.getName(devVarList[i],
 | ||||
|   //         Blockly.Names.DEVELOPER_VARIABLE_TYPE));
 | ||||
|   // }
 | ||||
| 
 | ||||
| @ -145,7 +145,7 @@ Blockly["Arduino"].init = function (workspace) { | ||||
|   for (i = 0; i < doubleVariables.length; i += 1) { | ||||
|     variableCode += | ||||
|       "double " + | ||||
|       Blockly["Arduino"].variableDB_.getName( | ||||
|       Blockly["Arduino"].nameDB_.getName( | ||||
|         doubleVariables[i].getId(), | ||||
|         Blockly.Variables.NAME_TYPE | ||||
|       ) + | ||||
| @ -156,7 +156,7 @@ Blockly["Arduino"].init = function (workspace) { | ||||
|   for (i = 0; i < stringVariables.length; i += 1) { | ||||
|     variableCode += | ||||
|       "String " + | ||||
|       Blockly["Arduino"].variableDB_.getName( | ||||
|       Blockly["Arduino"].nameDB_.getName( | ||||
|         stringVariables[i].getId(), | ||||
|         Blockly.Variables.NAME_TYPE | ||||
|       ) + | ||||
| @ -167,7 +167,7 @@ Blockly["Arduino"].init = function (workspace) { | ||||
|   for (i = 0; i < booleanVariables.length; i += 1) { | ||||
|     variableCode += | ||||
|       "boolean " + | ||||
|       Blockly["Arduino"].variableDB_.getDistinctName( | ||||
|       Blockly["Arduino"].nameDB_.getDistinctName( | ||||
|         booleanVariables[i].getId(), | ||||
|         Blockly.Variables.NAME_TYPE | ||||
|       ) + | ||||
| @ -178,7 +178,7 @@ Blockly["Arduino"].init = function (workspace) { | ||||
|   for (i = 0; i < colourVariables.length; i += 1) { | ||||
|     variableCode += | ||||
|       "RGB " + | ||||
|       Blockly["Arduino"].variableDB_.getName( | ||||
|       Blockly["Arduino"].nameDB_.getName( | ||||
|         colourVariables[i].getId(), | ||||
|         Blockly.Variables.NAME_TYPE | ||||
|       ) + | ||||
| @ -281,7 +281,7 @@ Blockly["Arduino"].finish = function (code) { | ||||
|   delete Blockly["Arduino"].loopCodeOnce_; | ||||
|   delete Blockly["Arduino"].variablesInitCode_; | ||||
|   delete Blockly["Arduino"].libraries_; | ||||
|   Blockly["Arduino"].variableDB_.reset(); | ||||
|   Blockly["Arduino"].nameDB_.reset(); | ||||
| 
 | ||||
|   return code; | ||||
| }; | ||||
|  | ||||
| @ -275,7 +275,7 @@ Blockly.Arduino["math_change"] = function (block) { | ||||
|       "DELTA", | ||||
|       Blockly.Arduino.ORDER_ADDITIVE | ||||
|     ) || "0"; | ||||
|   var varName = Blockly.Arduino.variableDB_.getName( | ||||
|   var varName = Blockly.Arduino.nameDB_.getName( | ||||
|     block.getFieldValue("VAR"), | ||||
|     Blockly.Variables.NAME_TYPE | ||||
|   ); | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| 
 | ||||
| import * as Blockly from "blockly/core"; | ||||
| 
 | ||||
| /** | ||||
|  * Code generator to add code into the setup() and loop() functions. | ||||
| @ -7,121 +6,122 @@ import * as Blockly from 'blockly/core'; | ||||
|  * @param {!Blockly.Block} block Block to generate the code from. | ||||
|  * @return {string} Completed code. | ||||
|  */ | ||||
| Blockly.Arduino['arduino_functions'] = function (block) { | ||||
|     // Edited version of Blockly.Generator.prototype.statementToCode
 | ||||
|     function statementToCodeNoTab(block, name) { | ||||
|         var targetBlock = block.getInputTargetBlock(name); | ||||
|         var code = Blockly.Arduino.blockToCode(targetBlock); | ||||
|         if (typeof code != 'string') { | ||||
|             throw new Error('Expecting code from statement block "' + targetBlock.type + '".'); | ||||
|         } | ||||
|         return code; | ||||
| Blockly.Arduino["arduino_functions"] = function (block) { | ||||
|   // Edited version of Blockly.Generator.prototype.statementToCode
 | ||||
|   function statementToCodeNoTab(block, name) { | ||||
|     var targetBlock = block.getInputTargetBlock(name); | ||||
|     var code = Blockly.Arduino.blockToCode(targetBlock); | ||||
|     if (typeof code != "string") { | ||||
|       throw new Error( | ||||
|         'Expecting code from statement block "' + targetBlock.type + '".' | ||||
|       ); | ||||
|     } | ||||
|     return code; | ||||
|   } | ||||
| 
 | ||||
|     var setupBranch = Blockly.Arduino.statementToCode(block, 'SETUP_FUNC'); | ||||
|     // //var setupCode = Blockly.Arduino.scrub_(block, setupBranch); No comment block
 | ||||
|     if (setupBranch) { | ||||
|         Blockly.Arduino.setupCode_['mainsetup'] = setupBranch; | ||||
|     } | ||||
|   var setupBranch = Blockly.Arduino.statementToCode(block, "SETUP_FUNC"); | ||||
|   // //var setupCode = Blockly.Arduino.scrub_(block, setupBranch); No comment block
 | ||||
|   if (setupBranch) { | ||||
|     Blockly.Arduino.setupCode_["mainsetup"] = setupBranch; | ||||
|   } | ||||
| 
 | ||||
|     var loopBranch = statementToCodeNoTab(block, 'LOOP_FUNC'); | ||||
|     //var loopcode = Blockly.Arduino.scrub_(block, loopBranch); No comment block
 | ||||
|     return loopBranch; | ||||
|   var loopBranch = statementToCodeNoTab(block, "LOOP_FUNC"); | ||||
|   //var loopcode = Blockly.Arduino.scrub_(block, loopBranch); No comment block
 | ||||
|   return loopBranch; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino['procedures_defreturn'] = function (block) { | ||||
|     // Define a procedure with a return value.
 | ||||
|     const funcName = Blockly.Arduino.variableDB_.getName( | ||||
|         block.getFieldValue('NAME'), | ||||
|         Blockly.Procedures.NAME_TYPE | ||||
|     ); | ||||
|     const branch = Blockly.Arduino.statementToCode(block, 'STACK'); | ||||
|     const returnType = block.getFieldValue('RETURN TYPE') || 'void'; | ||||
| Blockly.Arduino["procedures_defreturn"] = function (block) { | ||||
|   // Define a procedure with a return value.
 | ||||
|   const funcName = Blockly.Arduino.nameDB_.getName( | ||||
|     block.getFieldValue("NAME"), | ||||
|     Blockly.Procedures.NAME_TYPE | ||||
|   ); | ||||
|   const branch = Blockly.Arduino.statementToCode(block, "STACK"); | ||||
|   const returnType = block.getFieldValue("RETURN TYPE") || "void"; | ||||
| 
 | ||||
|     let returnValue = | ||||
|         Blockly.Arduino.valueToCode(block, 'RETURN', Blockly.Arduino.ORDER_NONE) || | ||||
|         ''; | ||||
|     if (returnValue) { | ||||
|         returnValue = Blockly.Arduino.INDENT + 'return ' + returnValue + ';\n'; | ||||
|     } | ||||
|     const args = []; | ||||
|     for (let i = 0; i < block.argumentVarModels_.length; i++) { | ||||
|         args[i] = | ||||
|             translateType(block.argumentVarModels_[i].type) + | ||||
|             ' ' + | ||||
|             block.argumentVarModels_[i].name; | ||||
|     } | ||||
|     let code = | ||||
|         translateType(returnType) + | ||||
|         ' ' + | ||||
|         funcName + | ||||
|         '(' + | ||||
|         args.join(', ') + | ||||
|         ') {\n' + | ||||
|         branch + | ||||
|         returnValue + | ||||
|         '}'; | ||||
|     code = Blockly.Arduino.scrub_(block, code); | ||||
|     // Add % so as not to collide with helper functions in definitions list.
 | ||||
|     Blockly.Arduino.functionNames_['%' + funcName] = code; | ||||
|     return null; | ||||
|   let returnValue = | ||||
|     Blockly.Arduino.valueToCode(block, "RETURN", Blockly.Arduino.ORDER_NONE) || | ||||
|     ""; | ||||
|   if (returnValue) { | ||||
|     returnValue = Blockly.Arduino.INDENT + "return " + returnValue + ";\n"; | ||||
|   } | ||||
|   const args = []; | ||||
|   for (let i = 0; i < block.argumentVarModels_.length; i++) { | ||||
|     args[i] = | ||||
|       translateType(block.argumentVarModels_[i].type) + | ||||
|       " " + | ||||
|       block.argumentVarModels_[i].name; | ||||
|   } | ||||
|   let code = | ||||
|     translateType(returnType) + | ||||
|     " " + | ||||
|     funcName + | ||||
|     "(" + | ||||
|     args.join(", ") + | ||||
|     ") {\n" + | ||||
|     branch + | ||||
|     returnValue + | ||||
|     "}"; | ||||
|   code = Blockly.Arduino.scrub_(block, code); | ||||
|   // Add % so as not to collide with helper functions in definitions list.
 | ||||
|   Blockly.Arduino.functionNames_["%" + funcName] = code; | ||||
|   return null; | ||||
| }; | ||||
| 
 | ||||
| function translateType(type) { | ||||
|     switch (type) { | ||||
| 
 | ||||
|         case 'int': | ||||
|             return 'int'; | ||||
|         case 'String': | ||||
|             return 'String'; | ||||
|         case 'void': | ||||
|             return 'void'; | ||||
|         case 'boolean': | ||||
|             return 'boolean'; | ||||
|         case 'float': | ||||
|             return 'float' | ||||
|         default: | ||||
|             throw new Error('Invalid Parameter Type'); | ||||
|     } | ||||
|   switch (type) { | ||||
|     case "int": | ||||
|       return "int"; | ||||
|     case "String": | ||||
|       return "String"; | ||||
|     case "void": | ||||
|       return "void"; | ||||
|     case "boolean": | ||||
|       return "boolean"; | ||||
|     case "float": | ||||
|       return "float"; | ||||
|     default: | ||||
|       throw new Error("Invalid Parameter Type"); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| Blockly.Arduino['procedures_defnoreturn'] = | ||||
|     Blockly.Arduino['procedures_defreturn']; | ||||
| Blockly.Arduino["procedures_defnoreturn"] = | ||||
|   Blockly.Arduino["procedures_defreturn"]; | ||||
| 
 | ||||
| Blockly.Arduino['procedures_callreturn'] = function (block) { | ||||
|     // Call a procedure with a return value.
 | ||||
|     const funcName = Blockly.Arduino.variableDB_.getName( | ||||
|         block.getFieldValue('NAME'), | ||||
|         Blockly.Procedures.NAME_TYPE | ||||
|     ); | ||||
|     const args = []; | ||||
|     for (let i = 0; i < block.arguments_.length; i++) { | ||||
|         args[i] = | ||||
|             Blockly.Arduino.valueToCode( | ||||
|                 block, | ||||
|                 'ARG' + i, | ||||
|                 Blockly.Arduino.ORDER_COMMA | ||||
|             ) || 'null'; | ||||
|     } | ||||
|     const code = funcName + '(' + args.join(', ') + ')'; | ||||
|     return [code, Blockly.Arduino.ORDER_ATOMIC]; | ||||
| Blockly.Arduino["procedures_callreturn"] = function (block) { | ||||
|   // Call a procedure with a return value.
 | ||||
|   const funcName = Blockly.Arduino.nameDB_.getName( | ||||
|     block.getFieldValue("NAME"), | ||||
|     Blockly.Procedures.NAME_TYPE | ||||
|   ); | ||||
|   const args = []; | ||||
|   for (let i = 0; i < block.arguments_.length; i++) { | ||||
|     args[i] = | ||||
|       Blockly.Arduino.valueToCode( | ||||
|         block, | ||||
|         "ARG" + i, | ||||
|         Blockly.Arduino.ORDER_COMMA | ||||
|       ) || "null"; | ||||
|   } | ||||
|   const code = funcName + "(" + args.join(", ") + ")"; | ||||
|   return [code, Blockly.Arduino.ORDER_ATOMIC]; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino['procedures_callnoreturn'] = function (block) { | ||||
|     // Call a procedure with no return value.
 | ||||
|     const funcName = Blockly.Arduino.variableDB_.getName( | ||||
|         block.getFieldValue('NAME'), | ||||
|         Blockly.Procedures.NAME_TYPE | ||||
|     ); | ||||
|     const args = []; | ||||
|     for (let i = 0; i < block.arguments_.length; i++) { | ||||
|         args[i] = | ||||
|             Blockly.Arduino.valueToCode( | ||||
|                 block, | ||||
|                 'ARG' + i, | ||||
|                 Blockly.Arduino.ORDER_COMMA | ||||
|             ) || 'null'; | ||||
|     } | ||||
| Blockly.Arduino["procedures_callnoreturn"] = function (block) { | ||||
|   // Call a procedure with no return value.
 | ||||
|   const funcName = Blockly.Arduino.nameDB_.getName( | ||||
|     block.getFieldValue("NAME"), | ||||
|     Blockly.Procedures.NAME_TYPE | ||||
|   ); | ||||
|   const args = []; | ||||
|   for (let i = 0; i < block.arguments_.length; i++) { | ||||
|     args[i] = | ||||
|       Blockly.Arduino.valueToCode( | ||||
|         block, | ||||
|         "ARG" + i, | ||||
|         Blockly.Arduino.ORDER_COMMA | ||||
|       ) || "null"; | ||||
|   } | ||||
| 
 | ||||
|     return funcName + '(' + args.join(', ') + ');\n'; | ||||
| }; | ||||
|   return funcName + "(" + args.join(", ") + ");\n"; | ||||
| }; | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| 
 | ||||
| import * as Blockly from "blockly/core"; | ||||
| 
 | ||||
| /** | ||||
|  * Code generator for a literal String (X). | ||||
| @ -7,12 +6,11 @@ import * as Blockly from 'blockly/core'; | ||||
|  * @param {!Blockly.Block} block Block to generate the code from. | ||||
|  * @return {array} Completed code with order of operation. | ||||
|  */ | ||||
| Blockly.Arduino['text'] = function (block) { | ||||
|     var code = Blockly.Arduino.quote_(block.getFieldValue('TEXT')); | ||||
|     return [code, Blockly.Arduino.ORDER_ATOMIC]; | ||||
| Blockly.Arduino["text"] = function (block) { | ||||
|   var code = Blockly.Arduino.quote_(block.getFieldValue("TEXT")); | ||||
|   return [code, Blockly.Arduino.ORDER_ATOMIC]; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * Code generator for a String concatenation (X...Y). This string can be made | ||||
|  * up of any number of elements of any type. | ||||
| @ -22,30 +20,37 @@ Blockly.Arduino['text'] = function (block) { | ||||
|  * @param {!Blockly.Block} block Block to generate the code from. | ||||
|  * @return {array} Completed code with order of operation. | ||||
|  */ | ||||
| Blockly.Arduino['text_join'] = function (block) { | ||||
|     var code; | ||||
|     if (block.itemCount_ === 0) { | ||||
|         return ['""', Blockly.Arduino.ORDER_ATOMIC]; | ||||
|     } else if (block.itemCount_ === 1) { | ||||
|         var argument0 = Blockly.Arduino.valueToCode(block, 'ADD0', | ||||
|             Blockly.Arduino.ORDER_UNARY_POSTFIX) || '""'; | ||||
|         code = 'String(' + argument0 + ')'; | ||||
|         return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
|     } else { | ||||
|         var argument; | ||||
|         code = []; | ||||
|         for (var n = 0; n < block.itemCount_; n++) { | ||||
|             argument = Blockly.Arduino.valueToCode( | ||||
|                 block, 'ADD' + n, Blockly.Arduino.ORDER_NONE); | ||||
|             if (argument === '') { | ||||
|                 code[n] = '""'; | ||||
|             } else { | ||||
|                 code[n] = 'String(' + argument + ')'; | ||||
|             } | ||||
|         } | ||||
|         code = code.join(' + '); | ||||
|         return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
| Blockly.Arduino["text_join"] = function (block) { | ||||
|   var code; | ||||
|   if (block.itemCount_ === 0) { | ||||
|     return ['""', Blockly.Arduino.ORDER_ATOMIC]; | ||||
|   } else if (block.itemCount_ === 1) { | ||||
|     var argument0 = | ||||
|       Blockly.Arduino.valueToCode( | ||||
|         block, | ||||
|         "ADD0", | ||||
|         Blockly.Arduino.ORDER_UNARY_POSTFIX | ||||
|       ) || '""'; | ||||
|     code = "String(" + argument0 + ")"; | ||||
|     return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
|   } else { | ||||
|     var argument; | ||||
|     code = []; | ||||
|     for (var n = 0; n < block.itemCount_; n++) { | ||||
|       argument = Blockly.Arduino.valueToCode( | ||||
|         block, | ||||
|         "ADD" + n, | ||||
|         Blockly.Arduino.ORDER_NONE | ||||
|       ); | ||||
|       if (argument === "") { | ||||
|         code[n] = '""'; | ||||
|       } else { | ||||
|         code[n] = "String(" + argument + ")"; | ||||
|       } | ||||
|     } | ||||
|     code = code.join(" + "); | ||||
|     return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
| @ -55,18 +60,23 @@ Blockly.Arduino['text_join'] = function (block) { | ||||
|  * @param {!Blockly.Block} block Block to generate the code from. | ||||
|  * @return {string} Completed code. | ||||
|  */ | ||||
| Blockly.Arduino['text_append'] = function (block) { | ||||
|     // Append to a variable in place.
 | ||||
|     var varName = Blockly.Arduino.variableDB_.getName( | ||||
|         block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); | ||||
|     var argument0 = Blockly.Arduino.valueToCode(block, 'TEXT', | ||||
|         Blockly.Arduino.ORDER_UNARY_POSTFIX); | ||||
|     if (argument0 === '') { | ||||
|         argument0 = '""'; | ||||
|     } else { | ||||
|         argument0 = 'String(' + argument0 + ')'; | ||||
|     } | ||||
|     return varName + ' += ' + argument0 + ';\n'; | ||||
| Blockly.Arduino["text_append"] = function (block) { | ||||
|   // Append to a variable in place.
 | ||||
|   var varName = Blockly.Arduino.nameDB_.getName( | ||||
|     block.getFieldValue("VAR"), | ||||
|     Blockly.Variables.NAME_TYPE | ||||
|   ); | ||||
|   var argument0 = Blockly.Arduino.valueToCode( | ||||
|     block, | ||||
|     "TEXT", | ||||
|     Blockly.Arduino.ORDER_UNARY_POSTFIX | ||||
|   ); | ||||
|   if (argument0 === "") { | ||||
|     argument0 = '""'; | ||||
|   } else { | ||||
|     argument0 = "String(" + argument0 + ")"; | ||||
|   } | ||||
|   return varName + " += " + argument0 + ";\n"; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
| @ -76,10 +86,13 @@ Blockly.Arduino['text_append'] = function (block) { | ||||
|  * @param {!Blockly.Block} block Block to generate the code from. | ||||
|  * @return {array} Completed code with order of operation. | ||||
|  */ | ||||
| Blockly.Arduino['text_length'] = function (block) { | ||||
|     var argument0 = Blockly.Arduino.valueToCode(block, 'VALUE', | ||||
|         Blockly.Arduino.ORDER_UNARY_POSTFIX) || '""'; | ||||
|     var code = 'String(' + argument0 + ').length()'; | ||||
|     return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
| Blockly.Arduino["text_length"] = function (block) { | ||||
|   var argument0 = | ||||
|     Blockly.Arduino.valueToCode( | ||||
|       block, | ||||
|       "VALUE", | ||||
|       Blockly.Arduino.ORDER_UNARY_POSTFIX | ||||
|     ) || '""'; | ||||
|   var code = "String(" + argument0 + ").length()"; | ||||
|   return [code, Blockly.Arduino.ORDER_UNARY_POSTFIX]; | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -2,7 +2,7 @@ import Blockly from "blockly"; | ||||
| 
 | ||||
| const setVariableFunction = function (defaultValue) { | ||||
|   return function (block) { | ||||
|     const variableName = Blockly["Arduino"].variableDB_.getName( | ||||
|     const variableName = Blockly["Arduino"].nameDB_.getName( | ||||
|       block.getFieldValue("VAR"), | ||||
|       Blockly.Variables.NAME_TYPE | ||||
|     ); | ||||
| @ -48,7 +48,7 @@ const setVariableFunction = function (defaultValue) { | ||||
| }; | ||||
| 
 | ||||
| const getVariableFunction = function (block) { | ||||
|   const variableName = Blockly["Arduino"].variableDB_.getName( | ||||
|   const variableName = Blockly["Arduino"].nameDB_.getName( | ||||
|     block.getFieldValue("VAR"), | ||||
|     Blockly.Variables.NAME_TYPE | ||||
|   ); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user