123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 'use strict';
- goog.provide('Blockly.Python.parking');
- goog.require('Blockly.Python');
- PythonToBlocks.KNOWN_MODULES['parking'] = {
- "today": ["datetime_day", ["DAY", "TODAY"]],
- "day_compare": ["datetime_check_day", "OP",
- {"type": "variable", "mode": "value", "name": "LEFT"},
- {"type": "mapper", "name": "VALUE", "method": convertDate}],
- "Day": ["datetime_day", {"type": "mapper", "name": "DAY", "method": convertDate}],
- "now": ["datetime_time", ["HOUR", "NOW"]],
- "Time": ["datetime_time", {"type": "integer", "name": "HOUR", "add_mutation": {"name": "@isnow", "value": "false"}},
- {"type": "integer_mapper", "name": "MINUTE", "method": convertMinute},
- "MERIDIAN"],
- "time_compare": ["datetime_check_time", "OP",
- {"type": "variable", "mode": "value", "name": "LEFT"},
- {"type": "integer", "name": "HOURS"},
- {"type": "integer_mapper", "name": "MINUTES", "method": convertMinute},
- "MERIDIANS"]
- };
- Blockly.Python['datetime_day'] = function(block) {
- Blockly.Python.definitions_['import_parking'] = 'import parking';
- var operator = DAYS_MAP[block.getFieldValue('DAY').slice(0, 3).toLowerCase()];
- return [operator, Blockly.Python.ORDER_ATOMIC];
- };
- Blockly.Python['datetime_check_time'] = function(block) {
- Blockly.Python.definitions_['import_parking'] = 'import parking';
- var hour = parseInt(block.getFieldValue('HOURS'));
- var minute = parseInt(block.getFieldValue('MINUTES'));
- var meridian = Blockly.Python.quote_(block.getFieldValue('MERIDIANS'));
- var operator = Blockly.Python.quote_(block.getFieldValue('OP'));
- var left = Blockly.Python.valueToCode(block, 'LEFT', Blockly.Python.ORDER_ATOMIC)
- var code = "parking.time_compare(" + operator+", "+left + ',' + hour + ',' + minute + ',' +meridian + ")";
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
- Blockly.Python['datetime_check_day'] = function(block) {
- Blockly.Python.definitions_['import_parking'] = 'import parking';
- var value = Blockly.Python.quote_(block.getFieldValue('VALUE'));
- var operator = Blockly.Python.quote_(block.getFieldValue('OP'));
- var left = Blockly.Python.valueToCode(block, 'LEFT', Blockly.Python.ORDER_ATOMIC) || "___";
- var code = "parking.day_compare(" + operator + ", " + left + ', ' + value + ")";
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
- Blockly.Python['datetime_time'] = function(block) {
- Blockly.Python.definitions_['import_parking'] = 'import parking';
- var hour = block.getFieldValue('HOUR');
- var code;
- if (hour == "NOW") {
- code = "parking.now()";
- } else {
- var minute = parseInt(block.getFieldValue('MINUTE'));
- var meridian = Blockly.Python.quote_(block.getFieldValue('MERIDIAN'));
- code = 'parking.Time('+hour+','+minute+','+meridian+')';
- }
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
|