逐步推導
S001 · implies
操作前
source roles = [regex-ast-qualification]
操作後
derived = [[alphabet, canonical_typed_AST, AST_qualified, qualification_statement]]
條件:無
直接明列此操作與mode完整欄序,不依JavaScript、不由答案形狀猜角色;布林、字串、null與未作聲稱保持不同。
步驟識別與依賴
規則:source_ordered_fields_without_JS · 依賴:G001
S002 · implies
操作前
source roles = [root.children[0].children[0].children[0].children[0], [a, b, c], {'type': 'symbol', 'value': 'c'}]操作後
derived = [{'type': 'symbol', 'value': 'c'}, {type:"symbol",value:"c"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S001
S003 · implies
操作前
source roles = [root.children[0].children[0].children[0].children[1], [a, b, c], {'type': 'symbol', 'value': 'a'}]操作後
derived = [{'type': 'symbol', 'value': 'a'}, {type:"symbol",value:"a"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S002
S004 · implies
操作前
source roles = [root.children[0].children[0].children[0].children[2], [a, b, c], {'type': 'symbol', 'value': 'b'}]操作後
derived = [{'type': 'symbol', 'value': 'b'}, {type:"symbol",value:"b"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S003
S005 · implies
操作前
source roles = [root.children[0].children[0].children[0], [a, b, c], {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}]操作後
derived = [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}, {children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"}],type:"concat"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S004
S006 · implies
操作前
source roles = [root.children[0].children[0].children[1].child, [a, b, c], {'type': 'symbol', 'value': 'a'}]操作後
derived = [{'type': 'symbol', 'value': 'a'}, {type:"symbol",value:"a"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S005
S007 · implies
操作前
source roles = [root.children[0].children[0].children[1], [a, b, c], {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]操作後
derived = [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {child:{type:"symbol",value:"a"},type:"star"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S006
S008 · implies
操作前
source roles = [root.children[0].children[0], [a, b, c], {'type': 'union', 'children': [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]}]操作後
derived = [{'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}]}, {children:[{child:{type:"symbol",value:"a"},type:"star"},{children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"}],type:"concat"}],type:"union"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S007
S009 · implies
操作前
source roles = [root.children[0].children[1].child, [a, b, c], {'type': 'symbol', 'value': 'b'}]操作後
derived = [{'type': 'symbol', 'value': 'b'}, {type:"symbol",value:"b"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S008
S010 · implies
操作前
source roles = [root.children[0].children[1], [a, b, c], {'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}]操作後
derived = [{'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}, {child:{type:"symbol",value:"b"},type:"star"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S009
S011 · implies
操作前
source roles = [root.children[0], [a, b, c], {'type': 'union', 'children': [{'type': 'union', 'children': [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}]}]操作後
derived = [{'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}, {'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}]}]}, {children:[{child:{type:"symbol",value:"b"},type:"star"},{children:[{child:{type:"symbol",value:"a"},type:"star"},{children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"}],type:"concat"}],type:"union"}],type:"union"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S010
S012 · implies
操作前
source roles = [root.children[1].child, [a, b, c], {'type': 'symbol', 'value': 'c'}]操作後
derived = [{'type': 'symbol', 'value': 'c'}, {type:"symbol",value:"c"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S011
S013 · implies
操作前
source roles = [root.children[1], [a, b, c], {'type': 'star', 'child': {'type': 'symbol', 'value': 'c'}}]操作後
derived = [{'type': 'star', 'child': {'type': 'symbol', 'value': 'c'}}, {child:{type:"symbol",value:"c"},type:"star"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S012
S014 · implies
操作前
source roles = [root, [a, b, c], {'type': 'union', 'children': [{'type': 'union', 'children': [{'type': 'union', 'children': [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'c'}}]}]操作後
derived = [{'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'c'}}, {'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'b'}}, {'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}]}]}]}]}, {children:[{child:{type:"symbol",value:"c"},type:"star"},{children:[{child:{type:"symbol",value:"b"},type:"star"},{children:[{child:{type:"symbol",value:"a"},type:"star"},{children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"}],type:"concat"}],type:"union"}],type:"union"}],type:"union"}]條件:無
逐node檢type、exact keys與symbol membership。union在raw至少兩child之後才extensional去重(canonical可剩一child);concat保原順序,star保child。不把canonical結果當raw再多加arity限制。
步驟識別與依賴
規則:Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · 依賴:G001, S013