@mixly/arduino-avr
Version:
适用于mixly的arduino avr模块
152 lines (132 loc) • 6.65 kB
JavaScript
export const text = function (_, generator) {
// Text value.
//var code = 'String('+generator.quote_(this.getFieldValue('TEXT'))+')';
var code = generator.quote_(this.getFieldValue('TEXT'));
return [code, generator.ORDER_ATOMIC];
}
export const text_char = function (_, generator) {
var code = '\'' + this.getFieldValue('TEXT') + '\'';
return [code, generator.ORDER_ATOMIC];
}
export const text_join = function (_, generator) {
// Text value.
var a = 'String(' + generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) + ')';
var b = 'String(' + generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) + ')';
return [a + ' + ' + b, generator.ORDER_ATOMIC];
}
export const text_to_number = function (_, generator) {
var towhat = this.getFieldValue('TOWHAT');
var str = 'String(' + generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) + ')';
return [str + '.' + towhat + '()', generator.ORDER_ATOMIC];
}
export const ascii_to_char = function (_, generator) {
var asciivalue = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'
return ['char(' + asciivalue + ')', generator.ORDER_ATOMIC];
}
export const char_to_ascii = function (_, generator) {
var charvalue = '\'' + this.getFieldValue('TEXT') + '\'';
return ['toascii(' + charvalue + ')', generator.ORDER_ATOMIC];
}
export const number_to_text = function (_, generator) {
var towhat = this.getFieldValue('TOWHAT');
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'
return ['String(' + str + ", " + towhat + ")", generator.ORDER_ATOMIC];
}
export const text_length = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
return ['String(' + str + ')' + '.length()', generator.ORDER_ATOMIC];
}
export const text_char_at = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var at = generator.valueToCode(this, 'AT', generator.ORDER_ATOMIC) || '0';
return ['String(' + str + ')' + '.charAt(' + at + ')', generator.ORDER_ATOMIC];
}
export const text_equals_starts_ends = function (_, generator) {
var str1 = 'String(' + (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '""') + ')';
var str2 = 'String(' + (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '""') + ')';
var dowhat = this.getFieldValue('DOWHAT');
return [str1 + '.' + dowhat + '(' + str2 + ')', generator.ORDER_ATOMIC];
}
export const text_compareTo = function (_, generator) {
var str1 = 'String(' + (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '""') + ')';
var str2 = 'String(' + (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '""') + ')';
return [str1 + '.compareTo(' + str2 + ')', generator.ORDER_ATOMIC];
}
// 小数获取有效位
export const decimal_places = function (_, generator) {
var numeral = generator.valueToCode(this, 'numeral', generator.ORDER_ATOMIC);
var decimal_places = generator.valueToCode(this, 'decimal_places', generator.ORDER_ATOMIC);
var code = 'String(' + numeral + ', ' + decimal_places + ')';
return [code, generator.ORDER_ATOMIC];
}
// 截取字符串
export const substring = function (_, generator) {
var name = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC);
var Start = generator.valueToCode(this, 'Start', generator.ORDER_ATOMIC);
var end = generator.valueToCode(this, 'end', generator.ORDER_ATOMIC);
var code = 'String(' + name + ').substring(' + Start + ',' + end + ')';
return [code, generator.ORDER_ATOMIC];
}
// 字符串转化为大小写
export const letter_conversion = function (_, generator) {
var type = this.getFieldValue('type');
var String = generator.valueToCode(this, 'String', generator.ORDER_ATOMIC);
var code = '' + String + '' + type + ';\n';
return code;
}
// 字符串变量替换
export const data_replacement = function (_, generator) {
var String = generator.valueToCode(this, 'String', generator.ORDER_ATOMIC);
var replace = generator.valueToCode(this, 'replace', generator.ORDER_ATOMIC);
var source_data = generator.valueToCode(this, 'source_data', generator.ORDER_ATOMIC);
var code = '' + String + '.replace(' + source_data + ', ' + replace + ');\n';
return code;
}
// 消除非可视字符
export const eliminate = function (_, generator) {
var String = generator.valueToCode(this, 'String', generator.ORDER_ATOMIC);
var code = '' + String + '.trim();\n';
return code;
}
// 检测是否以特定字符串开头或结尾
export const first_and_last = function (_, generator) {
var type = this.getFieldValue('type');
var String = generator.valueToCode(this, 'String', generator.ORDER_ATOMIC);
var String1 = generator.valueToCode(this, 'String1', generator.ORDER_ATOMIC);
var code = 'String(' + String + ')' + type + '(' + String1 + ')';
return [code, generator.ORDER_ATOMIC];
}
// 数据类型转换
export const type_conversion = function (_, generator) {
var variable = generator.valueToCode(this, 'variable', generator.ORDER_ATOMIC);
var type = this.getFieldValue('type');
var code = '' + type + '(' + variable + ')';
return [code, generator.ORDER_ATOMIC];
}
export const String_indexOf = function (_, generator) {
var str1 = generator.valueToCode(this, 'str1', generator.ORDER_ATOMIC);
var str2 = generator.valueToCode(this, 'str2', generator.ORDER_ATOMIC);
var code = 'String(' + str1 + ').indexOf(String(' + str2 + '))';
return [code, generator.ORDER_ATOMIC];
}
export const text_join2 = function (_, generator) {
// Create a list with any number of elements of any type.
var code = new Array(this.itemCount_);
for (var n = 0; n < this.itemCount_; n++) {
code[n] = generator.valueToCode(this, 'ADD' + n,
generator.ORDER_NONE) || '0';
}
var code1 = '';
for (var n = 0; n < this.itemCount_; n++) {
code1 = code1 + ' + ' + 'String(' + code[n] + ')';
}
code1 = code1.substring(3);
return [code1, generator.ORDER_ATOMIC];
}
// 字符串转长整数
export const String_to_Long_Integer = function(_, generator) {
var data= generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
var type= this.getFieldValue('type');
var code = 'strtol(String(' +data+ ').c_str(), NULL, ' +type+ ')';
return [code, generator.ORDER_ATOMIC];
}