From 8ccd1f00ec889c2225cf6428d733b383028db48f Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Tue, 25 Dec 2018 10:36:43 -0500 Subject: [PATCH 1/3] tryToUseEvFlag_e --- _server/blockly/MotaAction.g4 | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index d7f56ca9..408272fb 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -2232,7 +2232,8 @@ ActionParser.prototype.parseAction = function() { break case "setValue": this.next = MotaActionBlocks['setValue_s'].xmlText([ - MotaActionBlocks['idString_e'].xmlText([data.name]), + // MotaActionBlocks['idString_e'].xmlText([data.name]), + this.tryToUseEvFlag_e('idString_e', [data.name]), MotaActionBlocks['evalString_e'].xmlText([data.value]), this.next]); break; @@ -2258,7 +2259,8 @@ ActionParser.prototype.parseAction = function() { break; case "if": // 条件判断 this.next = MotaActionBlocks['if_s'].xmlText([ - MotaActionBlocks['evalString_e'].xmlText([data.condition]), + // MotaActionBlocks['evalString_e'].xmlText([data.condition]), + this.tryToUseEvFlag_e('evalString_e', [data.condition]), this.insertActionList(data["true"]), this.insertActionList(data["false"]), this.next]); @@ -2270,7 +2272,9 @@ ActionParser.prototype.parseAction = function() { this.isset(caseNow.case)?MotaActionBlocks['evalString_e'].xmlText([caseNow.case]):"值",this.insertActionList(caseNow.action),case_caseList]); } this.next = MotaActionBlocks['switch_s'].xmlText([ - MotaActionBlocks['evalString_e'].xmlText([data.condition]),case_caseList,this.next]); + // MotaActionBlocks['evalString_e'].xmlText([data.condition]), + this.tryToUseEvFlag_e('evalString_e', [data.condition]), + case_caseList,this.next]); break; case "choices": // 提供选项 var text_choices = null; @@ -2283,7 +2287,8 @@ ActionParser.prototype.parseAction = function() { break; case "while": // 循环处理 this.next = MotaActionBlocks['while_s'].xmlText([ - MotaActionBlocks['evalString_e'].xmlText([data.condition]), + // MotaActionBlocks['evalString_e'].xmlText([data.condition]), + this.tryToUseEvFlag_e('evalString_e', [data.condition]), this.insertActionList(data["data"]), this.next]); break; @@ -2393,6 +2398,15 @@ ActionParser.prototype.EvalString = function(EvalString) { return EvalString.split('\b').join('\\b').split('\t').join('\\t').split('\n').join('\\n'); } +ActionParser.prototype.tryToUseEvFlag_e = function(defaultType, args, isShadow, comment) { + var match=/switch:([A-Z])/.exec(args[0]) + if(match){ + args[0]=match[1] + return MotaActionBlocks['evFlag_e'].xmlText(args, isShadow, comment); + } + return MotaActionBlocks[defaultType||'evalString_e'].xmlText(args, isShadow, comment); +} + MotaActionFunctions.actionParser = new ActionParser(); MotaActionFunctions.workspace = function(){return workspace} From a32d5d5e9890ef1af09afc5026b7cb0cd1003a89 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Tue, 25 Dec 2018 10:44:48 -0500 Subject: [PATCH 2/3] A-F --- _server/blockly/MotaAction.g4 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 408272fb..7b616ace 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -1643,7 +1643,6 @@ colour : this.idstring_eColor default : [null,"自定义flag"] //todo 将其output改成'idString_e' var code = Id_List_0+':'+IdText_0; -if (Id_List_0 === 'flag0') code = "flag:__"+IdText_0+"__"; return [code, Blockly.JavaScript.ORDER_ATOMIC]; */; @@ -1667,7 +1666,7 @@ evFlag_e /* evFlag_e colour : this.idstring_eColor default : ["A"] -var code = "flag:__"+Letter_List_0+"__"; +var code = "switch:"+Letter_List_0; return [code, Blockly.JavaScript.ORDER_ATOMIC]; */; @@ -1784,7 +1783,7 @@ FixedId_List Id_List : '变量' | '状态' | '物品' | '独立开关' - /*Id_List ['flag','status','item', 'flag0']*/; + /*Id_List ['flag','status','item', 'switch']*/; //转blockly后不保留需要加" EvalString @@ -2399,7 +2398,7 @@ ActionParser.prototype.EvalString = function(EvalString) { } ActionParser.prototype.tryToUseEvFlag_e = function(defaultType, args, isShadow, comment) { - var match=/switch:([A-Z])/.exec(args[0]) + var match=/switch:([A-F])/.exec(args[0]) if(match){ args[0]=match[1] return MotaActionBlocks['evFlag_e'].xmlText(args, isShadow, comment); From 2e6b7ebef73715d35ffb443bdffbdc818b7a15d3 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Tue, 25 Dec 2018 10:48:55 -0500 Subject: [PATCH 3/3] fix re /^switch:([A-F])$/ --- _server/blockly/MotaAction.g4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 7b616ace..b048ed4f 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -2398,7 +2398,7 @@ ActionParser.prototype.EvalString = function(EvalString) { } ActionParser.prototype.tryToUseEvFlag_e = function(defaultType, args, isShadow, comment) { - var match=/switch:([A-F])/.exec(args[0]) + var match=/^switch:([A-F])$/.exec(args[0]) if(match){ args[0]=match[1] return MotaActionBlocks['evFlag_e'].xmlText(args, isShadow, comment);