Update(boards): 所有板卡执行 build:prod

This commit is contained in:
王立帮
2024-09-21 22:29:48 +08:00
parent 61ae2048fb
commit 6501c5895c
102 changed files with 1447 additions and 52068 deletions

View File

@@ -132,10 +132,10 @@ export const controls_whileUntil = function (a, generator) {
//ok
export const controls_flow_statements = function (a) {
switch (a.getFieldValue("FLOW")) {
case "BREAK":
return "break\n";
case "CONTINUE":
return "continue\n"
case "BREAK":
return "break\n";
case "CONTINUE":
return "continue\n"
}
throw "Unknown flow statement.";
}

View File

@@ -129,17 +129,16 @@ export const dicts_add_change_del = function (block, generator) {
// var text=this.getFieldValue('KEY');
switch (mode) {
case 'INSERT':
//var at2 = block.getFieldValue('AT2');
var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0';
var code = dict + "[" + KEY + "] = " + at2 + '\n'
break;
case 'DELETE':
var code = 'del ' + dict + "[" + KEY + "]\n"
break;
default:
throw 'Unhandled option (lists_setIndex2)';
case 'INSERT':
//var at2 = block.getFieldValue('AT2');
var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0';
var code = dict + "[" + KEY + "] = " + at2 + '\n'
break;
case 'DELETE':
var code = 'del ' + dict + "[" + KEY + "]\n"
break;
default:
throw 'Unhandled option (lists_setIndex2)';
}
return code;
}

View File

@@ -150,36 +150,36 @@ export const list_trig = function (a, generator) {
generator.definitions_['import_math'] = "import math";
a = generator.valueToCode(a, 'data', generator.ORDER_NONE)
switch (b) {
case "LEN":
c = "len(" + a + ")";
break;
case "SUM":
c = "sum(" + a + ")";
break;
case "MIN":
c = "min(" + a + ")";
break;
case "MAX":
c = "max(" + a + ")";
break;
case 'AVERAGE':
generator.definitions_['import_mixpy_math_mean'] = "from mixpy import math_mean";
c = 'math_mean(' + a + ')';
break;
case 'MEDIAN':
generator.definitions_['import_mixpy_math_median'] = "from mixpy import math_median";
c = 'math_median(' + a + ')';
break;
case 'MODE':
generator.definitions_['import_mixpy_math_modes'] = "from mixpy import math_modes";
c = 'math_modes(' + a + ')';
break;
case 'STD_DEV':
generator.definitions_['import_mixpy_math_standard_deviation'] = "from mixpy import math_standard_deviation";
c = 'math_standard_deviation(' + a + ')';
break;
default:
throw 'Unknown operator: ' + b;
case "LEN":
c = "len(" + a + ")";
break;
case "SUM":
c = "sum(" + a + ")";
break;
case "MIN":
c = "min(" + a + ")";
break;
case "MAX":
c = "max(" + a + ")";
break;
case 'AVERAGE':
generator.definitions_['import_mixpy_math_mean'] = "from mixpy import math_mean";
c = 'math_mean(' + a + ')';
break;
case 'MEDIAN':
generator.definitions_['import_mixpy_math_median'] = "from mixpy import math_median";
c = 'math_median(' + a + ')';
break;
case 'MODE':
generator.definitions_['import_mixpy_math_modes'] = "from mixpy import math_modes";
c = 'math_modes(' + a + ')';
break;
case 'STD_DEV':
generator.definitions_['import_mixpy_math_standard_deviation'] = "from mixpy import math_standard_deviation";
c = 'math_standard_deviation(' + a + ')';
break;
default:
throw 'Unknown operator: ' + b;
}
if (c)
return [c, generator.ORDER_ATOMIC];

View File

@@ -70,13 +70,13 @@ export const math_selfcalcu = function (_, generator) {
var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0';
var operator = this.getFieldValue('OP');
switch (operator) {
case 'ADD': var op = '+='; break;
case 'MINUS': var op = '-='; break;
case 'MULTIPLY': var op = '*='; break;
case 'DIVIDE': var op = '/='; break;
case 'QUYU': var op = '%='; break;
case 'ZHENGCHU': var op = '//='; break;
case 'POWER': var op = '**='; break;
case 'ADD': var op = '+='; break;
case 'MINUS': var op = '-='; break;
case 'MULTIPLY': var op = '*='; break;
case 'DIVIDE': var op = '/='; break;
case 'QUYU': var op = '%='; break;
case 'ZHENGCHU': var op = '//='; break;
case 'POWER': var op = '**='; break;
}
var code = argument0 + ' ' + op + ' ' + argument1 + '\n';
return code;
@@ -90,66 +90,66 @@ export const math_single = function (a, generator) {
generator.definitions_['import_math'] = "import math";
a = "SIN" == b || "COS" == b || "TAN" == b ? generator.valueToCode(a, "NUM", generator.ORDER_MULTIPLICATIVE) || "0" : generator.valueToCode(a, "NUM", generator.ORDER_NONE) || "0";
switch (b) {
case "ABS":
c = "math.fabs(" + a + ")";
break;
case "ROOT":
c = "math.sqrt(" +
case "ABS":
c = "math.fabs(" + a + ")";
break;
case "ROOT":
c = "math.sqrt(" +
a + ")";
break;
case "LN":
c = "math.log(" + a + ")";
break;
case "LOG10":
c = "math.log10(" + a + ")";
break;
case "EXP":
c = "math.exp(" + a + ")";
break;
case "POW10":
c = "math.pow(10," + a + ")";
break;
case "ROUND":
c = "round(" + a + ")";
break;
case "ROUNDUP":
c = "math.ceil(" + a + ")";
break;
case "ROUNDDOWN":
c = "math.floor(" + a + ")";
break;
case "SIN":
c = "math.sin(" + a + ")";
break;
case "COS":
c = "math.cos(" + a + ")";
break;
case "TAN":
c = "math.tan(" + a + ")";
break;
case "++":
c = "++(" + a + ")";
break;
case "--":
c = "--(" + a + ")";
break;
case "-":
c = "-(" + a + ")";
break;
default:
break;
case "LN":
c = "math.log(" + a + ")";
break;
case "LOG10":
c = "math.log10(" + a + ")";
break;
case "EXP":
c = "math.exp(" + a + ")";
break;
case "POW10":
c = "math.pow(10," + a + ")";
break;
case "ROUND":
c = "round(" + a + ")";
break;
case "ROUNDUP":
c = "math.ceil(" + a + ")";
break;
case "ROUNDDOWN":
c = "math.floor(" + a + ")";
break;
case "SIN":
c = "math.sin(" + a + ")";
break;
case "COS":
c = "math.cos(" + a + ")";
break;
case "TAN":
c = "math.tan(" + a + ")";
break;
case "++":
c = "++(" + a + ")";
break;
case "--":
c = "--(" + a + ")";
break;
case "-":
c = "-(" + a + ")";
break;
default:
}
if (c)
return [c, generator.ORDER_EXPONENTIATION];
switch (b) {
case "ASIN":
c = "math.degrees(math.asin(" + a + "))";
break;
case "ACOS":
c = "math.degrees(math.acos(" + a + "))";
break;
case "ATAN":
c = "math.degrees(math.atan(" + a + "))";
break;
case "ASIN":
c = "math.degrees(math.asin(" + a + "))";
break;
case "ACOS":
c = "math.degrees(math.acos(" + a + "))";
break;
case "ATAN":
c = "math.degrees(math.atan(" + a + "))";
break;
}
return [c, generator.ORDER_MULTIPLICATIVE]
}

View File

@@ -50,15 +50,15 @@ export const text_char_at2 = function (a, generator) {
var c = a.getFieldValue("WHERE") || "FROM_START",
str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
switch (c) {
case "FROM_START":
a = generator.getAdjustedInt(a, "AT");
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
case "FROM_END":
a = generator.getAdjustedInt(a, "AT", 1, !0);
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
case "RANDOM":
generator.definitions_.import_random = "import random";
return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL];
case "FROM_START":
a = generator.getAdjustedInt(a, "AT");
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
case "FROM_END":
a = generator.getAdjustedInt(a, "AT", 1, !0);
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
case "RANDOM":
generator.definitions_.import_random = "import random";
return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL];
}
throw "Unhandled combination (lists_getIndex).";
}
@@ -96,41 +96,41 @@ export const text_substring2 = function (block, generator) {
var where1 = block.getFieldValue('WHERE1');
var where2 = block.getFieldValue('WHERE2');
switch (where1) {
case 'FROM_START':
var at1 = generator.getAdjustedInt(block, 'AT1');
if (at1 == '0') {
at1 = '';
}
break;
case 'FROM_END':
var at1 = generator.getAdjustedInt(block, 'AT1', 0, true);
break;
case 'FIRST':
var at1 = '0';
break;
default:
throw 'Unhandled option (lists_getSublist)';
case 'FROM_START':
var at1 = generator.getAdjustedInt(block, 'AT1');
if (at1 == '0') {
at1 = '';
}
break;
case 'FROM_END':
var at1 = generator.getAdjustedInt(block, 'AT1', 0, true);
break;
case 'FIRST':
var at1 = '0';
break;
default:
throw 'Unhandled option (lists_getSublist)';
}
switch (where2) {
case 'FROM_START':
var at2 = generator.getAdjustedInt(block, 'AT2');
break;
case 'FROM_END':
var at2 = generator.getAdjustedInt(block, 'AT2', 0, true);
// Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected.
if (!Blockly.isNumber(String(at2))) {
generator.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize';
} else if (at2 == '0') {
at2 = '';
}
break;
case 'LAST':
var at2 = '-1';
break;
default:
throw 'Unhandled option (lists_getSublist)';
case 'FROM_START':
var at2 = generator.getAdjustedInt(block, 'AT2');
break;
case 'FROM_END':
var at2 = generator.getAdjustedInt(block, 'AT2', 0, true);
// Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected.
if (!Blockly.isNumber(String(at2))) {
generator.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize';
} else if (at2 == '0') {
at2 = '';
}
break;
case 'LAST':
var at2 = '-1';
break;
default:
throw 'Unhandled option (lists_getSublist)';
}
var code = str + '[' + at1 + ' : ' + at2 + ']';
return [code, generator.ORDER_ATOMIC];

View File

@@ -107,90 +107,90 @@ export const tuple_trig = function (a, generator) {
generator.definitions_['import_math'] = "import math";
a = generator.valueToCode(a, 'data', generator.ORDER_NONE)
switch (b) {
case "LEN":
c = "len(" + a + ")";
break;
case "SUM":
c = "sum(" + a + ")";
break;
case "MIN":
c = "min(" + a + ")";
break;
case "MAX":
c = "max(" + a + ")";
break;
case 'AVERAGE':
// generator.definitions_['from_numbers_import_Number'] =
// 'from numbers import Number';
var functionName = generator.provideFunction_(
'math_mean',
// This operation excludes null and values that aren't int or float:',
// math_mean([null, null, "aString", 1, 9]) == 5.0.',
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
' localList = [e for e in myList if type(e) == int or type(e) == float]',
' if not localList: return',
' return float(sum(localList)) / len(localList)']);
c = functionName + '(' + a + ')';
break;
case 'MEDIAN':
// generator.definitions_['from_numbers_import_Number'] =
// 'from numbers import Numberd';
var functionName = generator.provideFunction_(
'math_median',
// This operation excludes null values:
// math_median([null, null, 1, 3]) == 2.0.
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
' localList = sorted([e for e in myList if type(e) == int or type(e) == float])',
' if not localList: return',
' if len(localList) % 2 == 0:',
' return (localList[len(localList) // 2 - 1] + ' +
case "LEN":
c = "len(" + a + ")";
break;
case "SUM":
c = "sum(" + a + ")";
break;
case "MIN":
c = "min(" + a + ")";
break;
case "MAX":
c = "max(" + a + ")";
break;
case 'AVERAGE':
// generator.definitions_['from_numbers_import_Number'] =
// 'from numbers import Number';
var functionName = generator.provideFunction_(
'math_mean',
// This operation excludes null and values that aren't int or float:',
// math_mean([null, null, "aString", 1, 9]) == 5.0.',
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
' localList = [e for e in myList if type(e) == int or type(e) == float]',
' if not localList: return',
' return float(sum(localList)) / len(localList)']);
c = functionName + '(' + a + ')';
break;
case 'MEDIAN':
// generator.definitions_['from_numbers_import_Number'] =
// 'from numbers import Numberd';
var functionName = generator.provideFunction_(
'math_median',
// This operation excludes null values:
// math_median([null, null, 1, 3]) == 2.0.
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
' localList = sorted([e for e in myList if type(e) == int or type(e) == float])',
' if not localList: return',
' if len(localList) % 2 == 0:',
' return (localList[len(localList) // 2 - 1] + ' +
'localList[len(localList) // 2]) / 2.0',
' else:',
' return localList[(len(localList) - 1) // 2]']);
c = functionName + '(' + a + ')';
break;
case 'MODE':
var functionName = generator.provideFunction_(
'math_modes',
// As a list of numbers can contain more than one mode,
// the returned result is provided as an array.
// Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1].
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):',
' modes = []',
' # Using a lists of [item, count] to keep count rather than dict',
' # to avoid "unhashable" errors when the counted item is ' +
' else:',
' return localList[(len(localList) - 1) // 2]']);
c = functionName + '(' + a + ')';
break;
case 'MODE':
var functionName = generator.provideFunction_(
'math_modes',
// As a list of numbers can contain more than one mode,
// the returned result is provided as an array.
// Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1].
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):',
' modes = []',
' # Using a lists of [item, count] to keep count rather than dict',
' # to avoid "unhashable" errors when the counted item is ' +
'itself a list or dict.',
' counts = []',
' maxCount = 1',
' for item in some_list:',
' found = False',
' for count in counts:',
' if count[0] == item:',
' count[1] += 1',
' maxCount = max(maxCount, count[1])',
' found = True',
' if not found:',
' counts.append([item, 1])',
' for counted_item, item_count in counts:',
' if item_count == maxCount:',
' modes.append(counted_item)',
' return modes']);
c = functionName + '(' + a + ')';
break;
case 'STD_DEV':
generator.definitions_['import_math'] = 'import math';
var functionName = generator.provideFunction_(
'math_standard_deviation',
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):',
' n = len(numbers)',
' if n == 0: return',
' mean = float(sum(numbers)) / n',
' variance = sum((x - mean) ** 2 for x in numbers) / n',
' return math.sqrt(variance)']);
c = functionName + '(' + a + ')';
break;
default:
throw 'Unknown operator: ' + b;
' counts = []',
' maxCount = 1',
' for item in some_list:',
' found = False',
' for count in counts:',
' if count[0] == item:',
' count[1] += 1',
' maxCount = max(maxCount, count[1])',
' found = True',
' if not found:',
' counts.append([item, 1])',
' for counted_item, item_count in counts:',
' if item_count == maxCount:',
' modes.append(counted_item)',
' return modes']);
c = functionName + '(' + a + ')';
break;
case 'STD_DEV':
generator.definitions_['import_math'] = 'import math';
var functionName = generator.provideFunction_(
'math_standard_deviation',
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):',
' n = len(numbers)',
' if n == 0: return',
' mean = float(sum(numbers)) / n',
' variance = sum((x - mean) ** 2 for x in numbers) / n',
' return math.sqrt(variance)']);
c = functionName + '(' + a + ')';
break;
default:
throw 'Unknown operator: ' + b;
}
if (c)
return [c, generator.ORDER_FUNCTION_CALL];
@@ -204,42 +204,42 @@ export const tuple_getSublist = function (block, generator) {
var where1 = block.getFieldValue('WHERE1');
var where2 = block.getFieldValue('WHERE2');
switch (where1) {
case 'FROM_START':
var at1 = generator.getAdjustedInt(block, 'AT1');
if (at1 == '0') {
at1 = '';
}
break;
case 'FROM_END':
var at1 = generator.getAdjustedInt(block, 'AT1', 1, true);
break;
case 'FIRST':
var at1 = '0';
break;
default:
throw 'Unhandled option (lists_getSublist)';
case 'FROM_START':
var at1 = generator.getAdjustedInt(block, 'AT1');
if (at1 == '0') {
at1 = '';
}
break;
case 'FROM_END':
var at1 = generator.getAdjustedInt(block, 'AT1', 1, true);
break;
case 'FIRST':
var at1 = '0';
break;
default:
throw 'Unhandled option (lists_getSublist)';
}
switch (where2) {
case 'FROM_START':
var at2 = generator.getAdjustedInt(block, 'AT2', 1);
at2 = at2 - 1;
break;
case 'FROM_END':
var at2 = generator.getAdjustedInt(block, 'AT2', 1, true);
// Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected.
if (!Blockly.isNumber(String(at2))) {
generator.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize';
} else if (at2 == '0') {
at2 = '';
}
break;
case 'LAST':
var at2 = '-1';
break;
default:
throw 'Unhandled option (lists_getSublist)';
case 'FROM_START':
var at2 = generator.getAdjustedInt(block, 'AT2', 1);
at2 = at2 - 1;
break;
case 'FROM_END':
var at2 = generator.getAdjustedInt(block, 'AT2', 1, true);
// Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected.
if (!Blockly.isNumber(String(at2))) {
generator.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize';
} else if (at2 == '0') {
at2 = '';
}
break;
case 'LAST':
var at2 = '-1';
break;
default:
throw 'Unhandled option (lists_getSublist)';
}
var code = list + '[' + at1 + ' : ' + at2 + ']';
return [code, generator.ORDER_MEMBER];