enhancement #I9F2HP 链路继承中的占位符换成双括弧

This commit is contained in:
everywhere.z 2024-04-09 10:50:29 +08:00
parent 4abeabbcb1
commit cdac0d131e
16 changed files with 152 additions and 158 deletions

View File

@ -19,7 +19,7 @@ public class ElRegexUtil {
private static final String REGEX_COMMENT = "(?<!(:|@))\\/\\/.*|\\/\\*(\\s|.)*?\\*\\/";
// abstractChain 占位符正则表达式
private static final String REGEX_ABSTRACT_HOLDER = "\\{\\s*([a-zA-Z_][a-zA-Z_\\d]*|\\d+)\\s*\\}(?![\\s]*=)";
private static final String REGEX_ABSTRACT_HOLDER = "\\{\\{\\s*([a-zA-Z_][a-zA-Z_\\d]*|\\d+)\\s*\\}\\}(?![\\s]*=)";
/**
* 移除 el 表达式中的注释支持 java 的注释包括单行注释多行注释 会压缩字符串移除空格和换行符
@ -52,13 +52,13 @@ public class ElRegexUtil {
while (placeHolderMatcher.find()) {
//到implChain中找到对应的占位符实现
String holder = placeHolderMatcher.group(1);
Pattern placeHolderImpl = Pattern.compile("\\s*\\{" + holder + "\\}\\s*=\\s*(.*?);");
Pattern placeHolderImpl = Pattern.compile("\\s*\\{\\{" + holder + "\\}\\}\\s*=\\s*(.*?);");
Matcher implMatcher = placeHolderImpl.matcher(implChain);
if (implMatcher.find()) {
String replacement = implMatcher.group(1).trim();
abstractChain = abstractChain.replace("{" + holder + "}", replacement);
abstractChain = abstractChain.replace("{{" + holder + "}}", replacement);
} else {
throw new ParseException("missing implementation of {" + holder + "} in expression \r\n" + implChain);
throw new ParseException("missing implementation of {{" + holder + "}} in expression \r\n" + implChain);
}
}
return abstractChain;

View File

@ -4,37 +4,35 @@
{
"id": "implB",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=j;"
"value": "{{3}}=THEN(a,b);\n {{4}}=j;"
},
{
"id": "implC",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
"value": "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
},
{
"id": "base",
"abstract": true,
"value": "THEN(a, b, {0}, {1});"
"value": "THEN(a, b, {{0}}, {{1}});"
},
{
"id": "implA",
"extends": "base",
"value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
"value": "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
},
{
"id": "base2",
"extends": "base",
"abstract": true,
"value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
"value": "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
},
{
"id": "base3",
"value": "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain});"
"value": "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}});"
},
{
"id": "implD",
"extends": "base3",
"value": "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
"value": "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"
}
]
}

View File

@ -1,38 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain id="implB" extends="base2">
{3}=THEN(a,b);
{4}=j;
{{3}}=THEN(a,b);
{{4}}=j;
</chain>
<chain id="implC" extends="base2">
{3}=THEN(a,b);
{4}=THEN(a,b).id("j");
{{3}}=THEN(a,b);
{{4}}=THEN(a,b).id("j");
</chain>
<chain abstract="true" name="base">
THEN(a, b, {0}, {1})
THEN(a, b, {{0}}, {{1}})
</chain>
<chain id="implA" extends="base">
{0}=IF(c, d, e);
{1}=SWITCH(f).to(j,k);
{{0}}=IF(c, d, e);
{{1}}=SWITCH(f).to(j,k);
</chain>
<chain abstract="true" id="base2" extends="base">
{0}=THEN(a,b,{3});
{1}=SWITCH(f).to({4},k);
{{0}}=THEN(a,b,{{3}});
{{1}}=SWITCH(f).to({{4}},k);
</chain>
<chain name="base3">
THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})
THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})
</chain>
<chain extends="base3" id="implD">
{_pre} = THEN(a,b);
{mainChain}=THEN(a,b);
{subChain1}=THEN(j,k);
{subChain2}=IF(c, d, e);
{end_chain}=SWITCH(f).to(j,k);
{{_pre}} = THEN(a,b);
{{mainChain}}=THEN(a,b);
{{subChain1}}=THEN(j,k);
{{subChain2}}=IF(c, d, e);
{{end_chain}}=SWITCH(f).to(j,k);
</chain>
</flow>

View File

@ -2,22 +2,22 @@ flow:
chain:
- id: implB
extends: base2
value: "{3}=THEN(a,b);\n {4}=j;"
value: "{{3}}=THEN(a,b);\n {{4}}=j;"
- id: implC
extends: base2
value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
value: "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
- id: base
abstract: true
value: "THEN(a, b, {0}, {1});"
value: "THEN(a, b, {{0}}, {{1}});"
- id: implA
extends: base
value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
value: "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
- id: base2
extends: base
abstract: true
value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
value: "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
- id: base3
value: "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})"
value: "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})"
- id: implD
extends: base3
value: "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
value: "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"

View File

@ -4,37 +4,35 @@
{
"id": "implB",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=j;"
"value": "{{3}}=THEN(a,b);\n {{4}}=j;"
},
{
"id": "implC",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
"value": "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
},
{
"id": "base",
"abstract": true,
"value": "THEN(a, b, {0}, {1});"
"value": "THEN(a, b, {{0}}, {{1}});"
},
{
"id": "implA",
"extends": "base",
"value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
"value": "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
},
{
"id": "base2",
"extends": "base",
"abstract": true,
"value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
"value": "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
},
{
"id": "base3",
"value": "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain});"
"value": "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}});"
},
{
"id": "implD",
"extends": "base3",
"value": "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
"value": "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"
}
]
}

View File

@ -1,38 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain id="implB" extends="base2">
{3}=THEN(a,b);
{4}=j;
{{3}}=THEN(a,b);
{{4}}=j;
</chain>
<chain id="implC" extends="base2">
{3}=THEN(a,b);
{4}=THEN(a,b).id("j");
{{3}} = THEN(a,b);
{{4}}=THEN(a,b).id("j");
</chain>
<chain abstract="true" name="base">
THEN(a, b, {0}, {1})
<chain name="base">
THEN(a, b, {{0}}, {{1}})
</chain>
<chain id="implA" extends="base">
{0}=IF(c, d, e);
{1}=SWITCH(f).to(j,k);
{{0}}=IF(c, d, e);
{{1}}=SWITCH(f).to(j,k);
</chain>
<chain abstract="true" id="base2" extends="base">
{0}=THEN(a,b,{3});
{1}=SWITCH(f).to({4},k);
<chain id="base2" extends="base">
{{0}}=THEN(a,b,{{3}});
{{1}}=SWITCH(f).to({{4}},k);
</chain>
<chain name="base3">
THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})
THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})
</chain>
<chain extends="base3" id="implD">
{_pre} = THEN(a,b);
{mainChain}=THEN(a,b);
{subChain1}=THEN(j,k);
{subChain2}=IF(c, d, e);
{end_chain}=SWITCH(f).to(j,k);
{{_pre}} = THEN(a,b);
{{mainChain}}=THEN(a,b);
{{subChain1}}=THEN(j,k);
{{subChain2}}=IF(c, d, e);
{{end_chain}}=SWITCH(f).to(j,k);
</chain>
</flow>

View File

@ -2,22 +2,20 @@ flow:
chain:
- id: implB
extends: base2
value: "{3}=THEN(a,b);\n {4}=j;"
value: "{{3}}=THEN(a,b);\n {{4}}=j;"
- id: implC
extends: base2
value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
value: "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
- id: base
abstract: true
value: "THEN(a, b, {0}, {1});"
value: "THEN(a, b, {{0}}, {{1}});"
- id: implA
extends: base
value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
value: "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
- id: base2
extends: base
abstract: true
value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
value: "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
- id: base3
value: "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})"
value: "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})"
- id: implD
extends: base3
value: "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
value: "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"

View File

@ -40,37 +40,37 @@
{
"id": "implB",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=j;"
"value": "{{3}}=THEN(a,b);\n {{4}}=j;"
},
{
"id": "implC",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
"value": "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
},
{
"id": "base",
"abstract": true,
"value": "THEN(a, b, {0}, {1});"
"value": "THEN(a, b, {{0}}, {{1}});"
},
{
"id": "implA",
"extends": "base",
"value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
"value": "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
},
{
"id": "base2",
"extends": "base",
"abstract": true,
"value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
"value": "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
},
{
"id": "base3",
"value": "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain});"
"value": "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}});"
},
{
"id": "implD",
"extends": "base3",
"value": "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
"value": "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"
}
]
}

View File

@ -12,38 +12,38 @@
</nodes>
<chain id="implB" extends="base2">
{3}=THEN(a,b);
{4}=j;
{{3}}=THEN(a,b);
{{4}}=j;
</chain>
<chain id="implC" extends="base2">
{3}=THEN(a,b);
{4}=THEN(a,b).id("j");
{{3}}=THEN(a,b);
{{4}}=THEN(a,b).id("j");
</chain>
<chain abstract="true" name="base">
THEN(a, b, {0}, {1})
THEN(a, b, {{0}}, {{1}})
</chain>
<chain id="implA" extends="base">
{0}=IF(c, d, e);
{1}=SWITCH(f).to(j,k);
{{0}}=IF(c, d, e);
{{1}}=SWITCH(f).to(j,k);
</chain>
<chain abstract="true" id="base2" extends="base">
{0}=THEN(a,b,{3});
{1}=SWITCH(f).to({4},k);
{{0}}=THEN(a,b,{{3}});
{{1}}=SWITCH(f).to({{4}},k);
</chain>
<chain name="base3">
THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})
THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})
</chain>
<chain extends="base3" id="implD">
{_pre} = THEN(a,b);
{mainChain}=THEN(a,b);
{subChain1}=THEN(j,k);
{subChain2}=IF(c, d, e);
{end_chain}=SWITCH(f).to(j,k);
{{_pre}} = THEN(a,b);
{{mainChain}}=THEN(a,b);
{{subChain1}}=THEN(j,k);
{{subChain2}}=IF(c, d, e);
{{end_chain}}=SWITCH(f).to(j,k);
</chain>
</flow>

View File

@ -20,23 +20,23 @@ flow:
chain:
- id: implB
extends: base2
value: "{3}=THEN(a,b);\n {4}=j;"
value: "{{3}}=THEN(a,b);\n {{4}}=j;"
- id: implC
extends: base2
value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
value: "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
- id: base
abstract: true
value: "THEN(a, b, {0}, {1});"
value: "THEN(a, b, {{0}}, {{1}});"
- id: implA
extends: base
value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
value: "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
- id: base2
extends: base
abstract: true
value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
value: "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
- id: base3
value: "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})"
value: "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})"
- id: implD
extends: base3
value: "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
value: "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"

View File

@ -4,35 +4,35 @@
{
"id": "implB",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=j;"
"value": "{{3}}=THEN(a,b);\n {{4}}=j;"
},
{
"id": "implC",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
"value": "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
},
{
"id": "base",
"value": "THEN(a, b, {0}, {1});"
"value": "THEN(a, b, {{0}}, {{1}});"
},
{
"id": "implA",
"extends": "base",
"value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
"value": "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
},
{
"id": "base2",
"extends": "base",
"value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
"value": "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
},
{
"id": "base3",
"value": "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain});"
"value": "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}});"
},
{
"id": "implD",
"extends": "base3",
"value": "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
"value": "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"
}
]
}

View File

@ -1,38 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain id="implB" extends="base2">
{3}=THEN(a,b);
{4}=j;
{{3}}=THEN(a,b);
{{4}}=j;
</chain>
<chain id="implC" extends="base2">
{3} = THEN(a,b);
{4}=THEN(a,b).id("j");
{{3}} = THEN(a,b);
{{4}}=THEN(a,b).id("j");
</chain>
<chain name="base">
THEN(a, b, {0}, {1})
THEN(a, b, {{0}}, {{1}})
</chain>
<chain id="implA" extends="base">
{0}=IF(c, d, e);
{1}=SWITCH(f).to(j,k);
{{0}}=IF(c, d, e);
{{1}}=SWITCH(f).to(j,k);
</chain>
<chain id="base2" extends="base">
{0}=THEN(a,b,{3});
{1}=SWITCH(f).to({4},k);
{{0}}=THEN(a,b,{{3}});
{{1}}=SWITCH(f).to({{4}},k);
</chain>
<chain name="base3">
THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})
THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})
</chain>
<chain extends="base3" id="implD">
{_pre} = THEN(a,b);
{mainChain}=THEN(a,b);
{subChain1}=THEN(j,k);
{subChain2}=IF(c, d, e);
{end_chain}=SWITCH(f).to(j,k);
{{_pre}} = THEN(a,b);
{{mainChain}}=THEN(a,b);
{{subChain1}}=THEN(j,k);
{{subChain2}}=IF(c, d, e);
{{end_chain}}=SWITCH(f).to(j,k);
</chain>
</flow>

View File

@ -2,20 +2,20 @@ flow:
chain:
- id: implB
extends: base2
value: "{3}=THEN(a,b);\n {4}=j;"
value: "{{3}}=THEN(a,b);\n {{4}}=j;"
- id: implC
extends: base2
value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
value: "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
- id: base
value: "THEN(a, b, {0}, {1});"
value: "THEN(a, b, {{0}}, {{1}});"
- id: implA
extends: base
value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
value: "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
- id: base2
extends: base
value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
value: "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
- id: base3
value: "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})"
value: "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})"
- id: implD
extends: base3
value: "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
value: "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"

View File

@ -4,37 +4,37 @@
{
"id": "implB",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=j;"
"value": "{{3}}=THEN(a,b);\n {{4}}=j;"
},
{
"id": "implC",
"extends": "base2",
"value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
"value": "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
},
{
"id": "base",
"abstract": true,
"value": "THEN(a, b, {0}, {1});"
"value": "THEN(a, b, {{0}}, {{1}});"
},
{
"id": "implA",
"extends": "base",
"value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
"value": "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
},
{
"id": "base2",
"extends": "base",
"abstract": true,
"value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
"value": "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
},
{
"id": "base3",
"value": "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain});"
"value": "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}});"
},
{
"id": "implD",
"extends": "base3",
"value": "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
"value": "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"
}
]
}

View File

@ -1,39 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain id="implB" extends="base2">
{3}=THEN(a,b);
{4}=j;
{{3}}=THEN(a,b);
{{4}}=j;
</chain>
<chain id="implC" extends="base2">
{3}=THEN(a,b);
{4}=THEN(a,b).id("j");
{{3}}=THEN(a,b);
{{4}}=THEN(a,b).id("j");
</chain>
<chain abstract="true" name="base">
THEN(a, b, {0}, {1})
THEN(a, b, {{0}}, {{1}})
</chain>
<chain id="implA" extends="base">
{0}=IF(c, d, e);
{1}=SWITCH(f).to(j,k);
{{0}}=IF(c, d, e);
{{1}}=SWITCH(f).to(j,k);
</chain>
<chain abstract="true" id="base2" extends="base">
{0}=THEN(a,b,{3});
{1}=SWITCH(f).to({4},k);
{{0}}=THEN(a,b,{{3}});
{{1}}=SWITCH(f).to({{4}},k);
</chain>
<chain name="base3">
THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})
THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})
</chain>
<chain extends="base3" id="implD">
{_pre} = THEN(a,b);
{mainChain}=THEN(a,b);
{subChain1}=THEN(j,k);
{subChain2}=IF(c, d, e);
{end_chain}=SWITCH(f).to(j,k);
{{_pre}} = THEN(a,b);
{{mainChain}}=THEN(a,b);
{{subChain1}}=THEN(j,k);
{{subChain2}}=IF(c, d, e);
{{end_chain}}=SWITCH(f).to(j,k);
</chain>

View File

@ -2,22 +2,22 @@ flow:
chain:
- id: implB
extends: base2
value: "{3}=THEN(a,b);\n {4}=j;"
value: "{{3}}=THEN(a,b);\n {{4}}=j;"
- id: implC
extends: base2
value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");"
value: "{{3}}=THEN(a,b);\n {{4}}=THEN(a,b).id(\"j\");"
- id: base
abstract: true
value: "THEN(a, b, {0}, {1});"
value: "THEN(a, b, {{0}}, {{1}});"
- id: implA
extends: base
value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);"
value: "{{0}}=IF(c, d, e);\n {{1}}=SWITCH(f).to(j,k);"
- id: base2
extends: base
abstract: true
value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"
value: "{{0}}=THEN(a,b,{{3}});\n {{1}}=SWITCH(f).to({{4}},k);"
- id: base3
value: "THEN({_pre},{mainChain}, {subChain1},{subChain2},{end_chain})"
value: "THEN({{_pre}},{{mainChain}}, {{subChain1}},{{subChain2}},{{end_chain}})"
- id: implD
extends: base3
value: "{_pre} = THEN(a,b);\n {mainChain}=THEN(a,b);\n{subChain1}=THEN(j,k);\n{subChain2}=IF(c, d, e);\n{end_chain}=SWITCH(f).to(j,k);"
value: "{{_pre}} = THEN(a,b);\n {{mainChain}}=THEN(a,b);\n{{subChain1}}=THEN(j,k);\n{{subChain2}}=IF(c, d, e);\n{{end_chain}}=SWITCH(f).to(j,k);"