variables.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * @license
  3. * Visual Blocks Language
  4. *
  5. * Copyright 2012 Google Inc.
  6. * https://developers.google.com/blockly/
  7. *
  8. * Licensed under the Apache License, Version 2.0 (the "License");
  9. * you may not use this file except in compliance with the License.
  10. * You may obtain a copy of the License at
  11. *
  12. * http://www.apache.org/licenses/LICENSE-2.0
  13. *
  14. * Unless required by applicable law or agreed to in writing, software
  15. * distributed under the License is distributed on an "AS IS" BASIS,
  16. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. */
  20. /**
  21. * @fileoverview Generating Python for variable blocks.
  22. * @author q.neutron@gmail.com (Quynh Neutron)
  23. */
  24. 'use strict';
  25. goog.provide('Blockly.Python.variables');
  26. goog.require('Blockly.Python');
  27. Blockly.Python['variables_get'] = function(block) {
  28. // Variable getter.
  29. var code = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'),
  30. Blockly.Variables.NAME_TYPE);
  31. return [code, Blockly.Python.ORDER_ATOMIC];
  32. };
  33. Blockly.Python['variables_set'] = function(block) {
  34. // Variable setter.
  35. var argument0 = Blockly.Python.valueToCode(block, 'VALUE',
  36. Blockly.Python.ORDER_NONE) || '___';
  37. var varName = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'),
  38. Blockly.Variables.NAME_TYPE);
  39. return varName + ' = ' + argument0 + '\n';
  40. };
  41. Blockly.Python['variables_getself'] = function(block) {
  42. var var_arg0 = Blockly.Python.valueToCode(block, 'VAR',
  43. Blockly.Python.ORDER_NONE) || '___';
  44. var code = "self."+ var_arg0;
  45. return [code, Blockly.Python.ORDER_ATOMIC];
  46. }
  47. Blockly.Python['variables_setself'] = function(block) {
  48. var var_arg0 = Blockly.Python.valueToCode(block, 'VAR',
  49. Blockly.Python.ORDER_NONE) || '___';
  50. var to_arg0 = Blockly.Python.valueToCode(block, 'TO',
  51. Blockly.Python.ORDER_NONE) || '___';
  52. var code = "self."+ var_arg0 + " = "+ to_arg0+ "\n";
  53. return code
  54. }