brighterscript 0.67.8 → 0.68.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/LanguageServer.js +0 -1
- package/dist/LanguageServer.js.map +1 -1
- package/dist/astUtils/creators.d.ts +35 -2
- package/dist/astUtils/creators.js +32 -1
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +3 -2
- package/dist/astUtils/visitors.js +37 -14
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +162 -4
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.d.ts +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +140 -3
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
- package/dist/lexer/Lexer.js +15 -3
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +18 -1
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +2 -0
- package/dist/lexer/TokenKind.js +10 -0
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/Expression.js +12 -0
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.js +7 -3
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Statement.d.ts +4 -2
- package/dist/parser/Statement.js +12 -8
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +1 -1
- package/dist/parser/TranspileState.js +4 -1
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +351 -71
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ const stackedVisitor_1 = require("./stackedVisitor");
|
|
|
13
13
|
const AstEditor_1 = require("./AstEditor");
|
|
14
14
|
const Parser_1 = require("../parser/Parser");
|
|
15
15
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
16
|
+
const Expression_1 = require("../parser/Expression");
|
|
16
17
|
describe('astUtils visitors', () => {
|
|
17
18
|
const rootDir = process.cwd();
|
|
18
19
|
let program;
|
|
@@ -1005,6 +1006,78 @@ describe('astUtils visitors', () => {
|
|
|
1005
1006
|
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1006
1007
|
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(0);
|
|
1007
1008
|
});
|
|
1009
|
+
it('walks everything when the first element is replaced', () => {
|
|
1010
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1011
|
+
sub main()
|
|
1012
|
+
print 1
|
|
1013
|
+
print 2
|
|
1014
|
+
print 3
|
|
1015
|
+
end sub
|
|
1016
|
+
`);
|
|
1017
|
+
const target = ast.findChild(reflection_1.isBlock).statements[0];
|
|
1018
|
+
let callCount = 0;
|
|
1019
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1020
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1021
|
+
callCount++;
|
|
1022
|
+
}
|
|
1023
|
+
if (astNode === target) {
|
|
1024
|
+
owner.splice(key, 1);
|
|
1025
|
+
}
|
|
1026
|
+
}, {
|
|
1027
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1028
|
+
});
|
|
1029
|
+
//the visitor should have been called for every statement
|
|
1030
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1031
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1032
|
+
});
|
|
1033
|
+
it('walks everything when the middle element is replaced', () => {
|
|
1034
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1035
|
+
sub main()
|
|
1036
|
+
print 1
|
|
1037
|
+
print 2
|
|
1038
|
+
print 3
|
|
1039
|
+
end sub
|
|
1040
|
+
`);
|
|
1041
|
+
const target = ast.findChild(reflection_1.isBlock).statements[1];
|
|
1042
|
+
let callCount = 0;
|
|
1043
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1044
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1045
|
+
callCount++;
|
|
1046
|
+
}
|
|
1047
|
+
if (astNode === target) {
|
|
1048
|
+
owner.splice(key, 1);
|
|
1049
|
+
}
|
|
1050
|
+
}, {
|
|
1051
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1052
|
+
});
|
|
1053
|
+
//the visitor should have been called for every statement
|
|
1054
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1055
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1056
|
+
});
|
|
1057
|
+
it('walks everything when the end element is replaced', () => {
|
|
1058
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1059
|
+
sub main()
|
|
1060
|
+
print 1
|
|
1061
|
+
print 2
|
|
1062
|
+
print 3
|
|
1063
|
+
end sub
|
|
1064
|
+
`);
|
|
1065
|
+
const target = ast.findChild(reflection_1.isBlock).statements[2];
|
|
1066
|
+
let callCount = 0;
|
|
1067
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1068
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1069
|
+
callCount++;
|
|
1070
|
+
}
|
|
1071
|
+
if (astNode === target) {
|
|
1072
|
+
owner.splice(key, 1);
|
|
1073
|
+
}
|
|
1074
|
+
}, {
|
|
1075
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1076
|
+
});
|
|
1077
|
+
//the visitor should have been called for every statement
|
|
1078
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1079
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1080
|
+
});
|
|
1008
1081
|
it('can be used to insert statements', () => {
|
|
1009
1082
|
const { ast } = Parser_1.Parser.parse(`
|
|
1010
1083
|
sub main()
|
|
@@ -1020,20 +1093,105 @@ describe('astUtils visitors', () => {
|
|
|
1020
1093
|
PrintStatement: (astNode, parent, owner, key) => {
|
|
1021
1094
|
printStatementCount++;
|
|
1022
1095
|
//add another expression to the list every time. This should result in 1 the first time, 2 the second, 3 the third.
|
|
1023
|
-
calls.push(new Statement_1.ExpressionStatement((0, creators_1.createCall)((0, creators_1.createVariableExpression)('doSomethingBeforePrint')
|
|
1024
|
-
|
|
1096
|
+
calls.push(new Statement_1.ExpressionStatement((0, creators_1.createCall)((0, creators_1.createVariableExpression)('doSomethingBeforePrint'), [
|
|
1097
|
+
(0, creators_1.createIntegerLiteral)(callExpressionCount.toString())
|
|
1098
|
+
])));
|
|
1099
|
+
owner.splice(key + 1, 0, ...calls.map(x => x.clone()));
|
|
1025
1100
|
},
|
|
1026
|
-
CallExpression: () => {
|
|
1101
|
+
CallExpression: (call) => {
|
|
1027
1102
|
callExpressionCount++;
|
|
1103
|
+
console.log('call visitor for', call.args[0].token.text);
|
|
1028
1104
|
}
|
|
1029
1105
|
}), {
|
|
1030
1106
|
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1031
1107
|
});
|
|
1032
1108
|
//the visitor should have been called for every statement
|
|
1033
1109
|
(0, chai_config_spec_1.expect)(printStatementCount).to.eql(3);
|
|
1034
|
-
|
|
1110
|
+
//since the calls were injected after each print statement, we should have 1 call for the first print, 2 for the second, and 3 for the third
|
|
1111
|
+
(0, chai_config_spec_1.expect)(callExpressionCount).to.eql(6);
|
|
1035
1112
|
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(9);
|
|
1036
1113
|
});
|
|
1114
|
+
it('walks a new child when returned from a visitor', () => {
|
|
1115
|
+
let walkedLiterals = [];
|
|
1116
|
+
Parser_1.Parser.parse(`
|
|
1117
|
+
sub main()
|
|
1118
|
+
print 1 + 2
|
|
1119
|
+
end sub
|
|
1120
|
+
`).ast.walk((0, visitors_1.createVisitor)({
|
|
1121
|
+
BinaryExpression: (node, parent, owner, key) => {
|
|
1122
|
+
//replace the `1 + 2` binary expression with a new binary expression
|
|
1123
|
+
if ((0, reflection_1.isLiteralExpression)(node.left) && node.left.token.text === '1') {
|
|
1124
|
+
return new Expression_1.BinaryExpression((0, creators_1.createIntegerLiteral)('3'), (0, creators_1.createToken)(TokenKind_1.TokenKind.Plus), (0, creators_1.createIntegerLiteral)('4'));
|
|
1125
|
+
}
|
|
1126
|
+
},
|
|
1127
|
+
LiteralExpression: (node) => {
|
|
1128
|
+
walkedLiterals.push(node.token.text);
|
|
1129
|
+
}
|
|
1130
|
+
}), {
|
|
1131
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1132
|
+
});
|
|
1133
|
+
(0, chai_config_spec_1.expect)(walkedLiterals).to.eql(['3', '4']);
|
|
1134
|
+
});
|
|
1135
|
+
it('walks a new child when returned from a visitor and using an AstEditor', () => {
|
|
1136
|
+
let walkedLiterals = [];
|
|
1137
|
+
Parser_1.Parser.parse(`
|
|
1138
|
+
sub main()
|
|
1139
|
+
print 1 + 2
|
|
1140
|
+
end sub
|
|
1141
|
+
`).ast.walk((0, visitors_1.createVisitor)({
|
|
1142
|
+
BinaryExpression: (node, parent, owner, key) => {
|
|
1143
|
+
//replace the `1 + 2` binary expression with a new binary expression
|
|
1144
|
+
if ((0, reflection_1.isLiteralExpression)(node.left) && node.left.token.text === '1') {
|
|
1145
|
+
return new Expression_1.BinaryExpression((0, creators_1.createIntegerLiteral)('3'), (0, creators_1.createToken)(TokenKind_1.TokenKind.Plus), (0, creators_1.createIntegerLiteral)('4'));
|
|
1146
|
+
}
|
|
1147
|
+
},
|
|
1148
|
+
LiteralExpression: (node) => {
|
|
1149
|
+
walkedLiterals.push(node.token.text);
|
|
1150
|
+
}
|
|
1151
|
+
}), {
|
|
1152
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive,
|
|
1153
|
+
editor: new AstEditor_1.AstEditor()
|
|
1154
|
+
});
|
|
1155
|
+
(0, chai_config_spec_1.expect)(walkedLiterals).to.eql(['3', '4']);
|
|
1156
|
+
});
|
|
1157
|
+
});
|
|
1158
|
+
describe('walkArray', () => {
|
|
1159
|
+
const one = (0, creators_1.createVariableExpression)('one');
|
|
1160
|
+
const two = (0, creators_1.createVariableExpression)('two');
|
|
1161
|
+
const three = (0, creators_1.createVariableExpression)('three');
|
|
1162
|
+
const four = (0, creators_1.createVariableExpression)('four');
|
|
1163
|
+
const five = (0, creators_1.createVariableExpression)('five');
|
|
1164
|
+
function doTest(startingArray, expected, visitor) {
|
|
1165
|
+
const visitedItems = [];
|
|
1166
|
+
(0, visitors_1.walkArray)(startingArray, (item, parent, owner, key) => {
|
|
1167
|
+
visitedItems.push(item);
|
|
1168
|
+
return visitor === null || visitor === void 0 ? void 0 : visitor(item, parent, owner, key);
|
|
1169
|
+
}, { walkMode: visitors_1.WalkMode.visitAllRecursive });
|
|
1170
|
+
(0, chai_config_spec_1.expect)(visitedItems.map(x => x.name.text)).to.eql(expected.map(x => x.name.text));
|
|
1171
|
+
}
|
|
1172
|
+
it('walks every element in the array', () => {
|
|
1173
|
+
doTest([one, two, three, four, five], [one, two, three, four, five]);
|
|
1174
|
+
});
|
|
1175
|
+
it('walks new items added to the array', () => {
|
|
1176
|
+
doTest([one, two], [one, three, two, four], (item, parent, owner, key) => {
|
|
1177
|
+
//insert a value after one
|
|
1178
|
+
if (item === one) {
|
|
1179
|
+
owner.splice(key + 1, 0, three);
|
|
1180
|
+
//insert a value after one
|
|
1181
|
+
}
|
|
1182
|
+
else if (item === two) {
|
|
1183
|
+
owner.splice(key + 1, 0, four);
|
|
1184
|
+
}
|
|
1185
|
+
});
|
|
1186
|
+
});
|
|
1187
|
+
it('triggers on nodes that were skiped due to insertions', () => {
|
|
1188
|
+
doTest([one, two, three], [one, two, four, three], (item, parent, owner, key) => {
|
|
1189
|
+
//insert a value after one
|
|
1190
|
+
if (item === two) {
|
|
1191
|
+
owner.splice(key, 0, four);
|
|
1192
|
+
}
|
|
1193
|
+
});
|
|
1194
|
+
});
|
|
1037
1195
|
});
|
|
1038
1196
|
});
|
|
1039
1197
|
//# sourceMappingURL=visitors.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitors.spec.js","sourceRoot":"","sources":["../../src/astUtils/visitors.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visitors.spec.js","sourceRoot":"","sources":["../../src/astUtils/visitors.spec.ts"],"names":[],"mappings":";;AAEA,iEAAuE;AACvE,0DAA6C;AAC7C,+BAA+B;AAC/B,wCAAqC;AAGrC,mDAAkG;AAClG,kDAA+C;AAC/C,yCAAgF;AAChF,6CAA8E;AAC9E,yCAAqG;AACrG,qDAAwD;AACxD,2CAAwC;AACxC,6CAA0C;AAE1C,0DAA4D;AAE5D,qDAAwD;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,OAAgB,CAAC;IAErB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BlB,CAAC;IAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;KAsBvB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,SAAS,eAAe,CAAC,OAA0D,EAAE,MAA0B;QAC3G,OAAO,CAAC,IAAa,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjE,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC5C,IAAA,yBAAc,EAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnG,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,uBAAuB,CAAC;YAC3C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAA,qCAAoB,EAAC,CAAC,CAAY,EAAE,KAAkB,EAAE,EAAE;gBACtE,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAe,CAAC;aAClD,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAC/C,IAAA,yBAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,SAAS;gBACT,kBAAkB;gBAClB,kBAAkB;gBAClB,qBAAqB;gBACrB,uBAAuB;gBACvB,eAAe;gBACf,SAAS;gBACT,kBAAkB;gBAClB,eAAe;gBACf,SAAS;gBACT,kBAAkB;gBAClB,SAAS;gBACT,kBAAkB;gBAClB,kBAAkB;gBAClB,SAAS;gBACT,kBAAkB;gBAClB,gBAAgB;gBAChB,uBAAuB;gBACvB,SAAS;gBACT,kBAAkB;gBAClB,SAAS;gBACT,uBAAuB;gBACvB,SAAS;gBACT,kBAAkB,CAAQ,YAAY;aACzC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,IAAI,+CAAuB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAe,CAAC;aAClD,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAC/C,IAAA,yBAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,OAAO;gBACP,gBAAgB;gBAChB,gBAAgB;gBAChB,mBAAmB;gBACnB,qBAAqB;gBACrB,aAAa;gBACb,OAAO;gBACP,gBAAgB;gBAChB,aAAa;gBACb,OAAO;gBACP,gBAAgB;gBAChB,OAAO;gBACP,gBAAgB;gBAChB,gBAAgB;gBAChB,OAAO;gBACP,gBAAgB;gBAChB,cAAc;gBACd,qBAAqB;gBACrB,OAAO;gBACP,gBAAgB;gBAChB,OAAO;gBACP,qBAAqB;gBACrB,OAAO;gBACP,gBAAgB,CAAQ,YAAY;aACvC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,+CAAuB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE;gBAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,IAAA,6BAAgB,EAAC,CAAC,CAAC,EAAE;oBACrB,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE;wBACf,MAAM,CAAC,MAAM,EAAE,CAAC;qBACnB;iBACJ;YACL,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAe,CAAC;aAClD,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAC/C,IAAA,yBAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,OAAO;gBACP,gBAAgB;gBAChB,gBAAgB;gBAChB,mBAAmB;gBACnB,qBAAqB;gBACrB,aAAa;gBACb,OAAO;gBACP,gBAAgB;gBAChB,aAAa;gBACb,OAAO;gBACP,gBAAgB,CAAQ,UAAU;aACrC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC;gBAC1B,cAAc,EAAE,YAAY;gBAC5B,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,0BAAc,CAAC;gBACtC,KAAK,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,KAAK,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,cAAc,GAAG,IAAI,iBAAK,CAAC,EAAE,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACnC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACnC,IAAA,yBAAM,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC3D,IAAA,yBAAM,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,eAAe,GAAG,IAAI,0BAAc,CAAC;gBACvC,KAAK,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,KAAK,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,eAAe,GAAG,IAAI,0BAAc,CAAC;gBACvC,KAAK,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,KAAK,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,iBAAK,CAAC;gBACpB,eAAe;gBACf,IAAI,2BAAe,CAAC,EAAE,MAAM,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACjE,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC;gBAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe;aACxC,CAAC,CAAC;YACH,IAAA,yBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAA,yBAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,qBAAS,EAAE,CAAC;YAE/B,MAAM,eAAe,GAAG,IAAI,0BAAc,CAAC;gBACvC,KAAK,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,KAAK,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;YAEP,MAAM,eAAe,GAAG,IAAI,0BAAc,CAAC;gBACvC,KAAK,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,KAAK,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;YAEP,MAAM,KAAK,GAAG,IAAI,iBAAK,CAAC;gBACpB,eAAe;aAClB,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAG7B,KAAK,CAAC,IAAI,CAAC,IAAA,wBAAa,EAAC;gBACrB,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe;aACxC,CAAC,EAAE;gBACA,QAAQ,EAAE,mBAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,IAAA,yBAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAA,yBAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,IAA6C,CAAC;YAClD,MAAM,gBAAgB,GAAG,IAAA,qCAAoB,EAAC,CAAC,SAAoB,EAAE,KAAkB,EAAE,EAAE;gBACvF,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,SAAS,iBAAiB,CAAC,UAAsB,EAAE,CAAU;gBACzD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE;gBAC1D,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAC7C,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC9B,QAAQ,EAAE,mBAAQ,CAAC,qBAAqB;iBAC3C,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAe,CAAC;aACpD,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;YACpD,IAAA,yBAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,iKAAiK;gBACjK,+DAA+D;gBAC/D,oCAAoC;gBACpC,oCAAoC;gBACpC,2CAA2C;gBAC3C,gDAAgD;gBAChD,oCAAoC;gBACpC,qCAAqC;gBACrC,gDAAgD;gBAChD,oCAAoC;gBACpC,yCAAyC;gBACzC,wCAAwC;gBACxC,yCAAyC;gBACzC,0CAA0C;gBAC1C,0CAA0C;gBAC1C,yCAAyC;gBACzC,wCAAwC;gBACxC,0CAA0C;gBAC1C,yCAAyC;gBACzC,yCAAyC;gBACzC,sCAAsC;gBACtC,0CAA0C;gBAC1C,yCAAyC;gBACzC,sCAAsC;gBACtC,0CAA0C;gBAC1C,kCAAkC;gBAClC,yCAAyC;gBACzC,uCAAuC;gBACvC,mCAAmC;gBACnC,qCAAqC;gBACrC,oCAAoC;gBACpC,yCAAyC;gBACzC,gCAAgC;gBAChC,kCAAkC;gBAClC,iCAAiC;gBACjC,gCAAgC;gBAChC,kCAAkC;gBAClC,+BAA+B;gBAC/B,iCAAiC;gBACjC,qCAAqC,CAAa,mBAAmB;aACxE,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,SAAS,QAAQ,CAAC,IAAY,EAAE,oBAA8B,EAAE,QAAQ,GAAG,mBAAQ,CAAC,iBAAiB;YACjG,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC3B,OAAO,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,EAAE;gBACC,QAAQ,EAAE,QAAQ;aACrB,CAAC,CAAC;YACH,KAAK,GAAG,CAAC,CAAC;YACV,IAAA,yBAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1H,CAAC;QAED,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2E1D,CAAC,CAAC;YACH,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAc,EAAE,CAAC;YAC5B,gDAAgD;YAChD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEtB,4BAA4B;gBAC5B,IAAI,GAAG,GAAG,IAAI,CAAC;gBACf,OAAO,GAAG,CAAC,MAAM,EAAE;oBACf,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;iBACpB;gBACD,6FAA6F;gBAC7F,IAAA,yBAAM,EAAC,GAAG,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;aACvH;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;;aAOvD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,+CAAuB,EAAE,CAAC;YAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,CAAC,CAAC;YAEpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;gBAChC,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,MAAM,CAAC,MAAM,EAAE,CAAC;iBACnB;YACL,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;gBACpC,MAAM,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;YAEH,IAAA,yBAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,QAAQ,CAAC;;;;;;;;;;aAUR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,IAAI;gBACJ,aAAa;gBACb,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;gBACnB,SAAS;gBACT,aAAa;gBACb,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;gBACnB,MAAM;gBACN,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,QAAQ,CAAC;;;;;;aAMR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,aAAa;gBACb,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,QAAQ,CAAC;;;;;aAKR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,mBAAmB;gBACnB,oBAAoB;gBACpB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,QAAQ,CAAC;;;;;;aAMR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,cAAc;gBACd,qBAAqB;gBACrB,mBAAmB;gBACnB,mBAAmB;gBACnB,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC9B,QAAQ,CAAC;;;;;;aAMR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,kBAAkB;gBAClB,wBAAwB;gBACxB,mBAAmB;gBACnB,mBAAmB;gBACnB,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,QAAQ,CAAC;;;;;;aAMR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,qBAAqB;gBACrB,oBAAoB;gBACpB,oBAAoB;gBACpB,mBAAmB;gBACnB,qBAAqB;gBACrB,oBAAoB;gBACpB,mBAAmB;gBACnB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACxB,QAAQ,CAAC;;;;;;aAMR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,kBAAkB;gBAClB,kBAAkB;gBAClB,mBAAmB;gBACnB,mBAAmB;gBACnB,mBAAmB;gBACnB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACvB,QAAQ,CAAC;;;aAGR,EAAE;gBACC,oBAAoB;gBACpB,kCAAkC;gBAClC,qBAAqB;gBACrB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC9B,QAAQ,CAAC;;;;;;;;;;;;;aAaR,EAAE;gBACC,YAAY;gBACZ,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;gBAEnB,gBAAgB;gBAChB,qBAAqB;gBACrB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;gBAEnB,gBAAgB;gBAChB,qBAAqB;gBACrB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;gBAEnB,cAAc;gBACd,qBAAqB;gBACrB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC5B,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,gBAAgB;gBAChB,oBAAoB;gBACpB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,QAAQ,CAAC;;;;;aAKR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,6BAA6B;gBAC7B,OAAO;gBACP,qBAAqB;gBACrB,oBAAoB;gBACpB,6BAA6B;gBAC7B,6BAA6B;gBAC7B,OAAO;aACV,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,qBAAqB;gBACrB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,2BAA2B;gBAC3B,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAClC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,sBAAsB;gBACtB,oBAAoB;gBACpB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,kBAAkB;gBAClB,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,QAAQ,CAAC;;;;;;;aAOR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,qBAAqB;gBACrB,kBAAkB;gBAClB,oBAAoB;gBACpB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,iBAAiB;gBACjB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,0BAA0B;gBAC1B,+BAA+B;gBAC/B,mBAAmB;gBACnB,oBAAoB;gBACpB,+BAA+B;gBAC/B,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,QAAQ,CAAC;;;;;;;;;;;aAWR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,mBAAmB;gBACnB,IAAI;gBACJ,aAAa;gBACb,kBAAkB;gBAClB,oBAAoB;gBACpB,mBAAmB;gBACnB,OAAO;gBACP,iBAAiB;gBACjB,SAAS;gBACT,aAAa;gBACb,kBAAkB;gBAClB,oBAAoB;gBACpB,mBAAmB;gBACnB,OAAO;gBACP,iBAAiB;gBACjB,mBAAmB;gBACnB,MAAM;gBACN,OAAO;gBACP,iBAAiB;gBACjB,kBAAkB;aACrB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC5C,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,gCAAgC;gBAChC,+BAA+B;gBAC/B,mBAAmB;gBACnB,oBAAoB;gBACpB,+BAA+B;gBAC/B,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,gBAAgB;gBAChB,0BAA0B;gBAC1B,+BAA+B;gBAC/B,mBAAmB;gBACnB,kCAAkC;gBAClC,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC3B,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,eAAe;gBACf,gBAAgB;gBAChB,kCAAkC;gBAClC,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,QAAQ,CAAC;;;;aAIR,EAAE;gBACC,mBAAmB;gBACnB,oBAAoB;gBACpB,OAAO;gBACP,qBAAqB;gBACrB,oBAAoB;gBACpB,oBAAoB;gBACpB,mBAAmB;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC5B,QAAQ,CAAC;;;;;;;;aAQR,EAAE;gBACC,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;gBAChB,mBAAmB;gBACnB,iBAAiB;gBACjB,oBAAoB;gBACpB,OAAO;gBACP,iBAAiB;gBACjB,qBAAqB;gBACrB,oBAAoB;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,QAAQ,CAAC;;;;;;;aAOR,EAAE;gBACC,mBAAmB;gBACnB,OAAO;gBACP,qBAAqB;gBACrB,OAAO;gBACP,gBAAgB;gBAChB,qBAAqB;aACxB,EAAE,mBAAQ,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,QAAQ,CAAC;;;;;;;aAOR,EAAE;gBACC,oBAAoB;gBACpB,oBAAoB;gBACpB,6BAA6B;gBAC7B,kBAAkB;gBAClB,mBAAmB;gBACnB,oBAAoB;gBACpB,gBAAgB;gBAChB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,mBAAmB;aACtB,EAAE,mBAAQ,CAAC,yBAAyB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;;aAO5B,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,IAAA,yBAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,IAAA,yBAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM5B,CAAC,CAAC;YACH,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,IAAA,6BAAgB,EAAC,OAAO,CAAC,EAAE;oBAC3B,SAAS,EAAE,CAAC;oBACZ,oFAAoF;oBACpF,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,yDAAyD;YACzD,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,yBAAM,EACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM5B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAQ,oBAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,IAAA,6BAAgB,EAAC,OAAO,CAAC,EAAE;oBAC3B,SAAS,EAAE,CAAC;iBACf;gBACD,IAAI,OAAO,KAAK,MAAM,EAAE;oBACpB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,yDAAyD;YACzD,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,yBAAM,EACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM5B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAQ,oBAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,IAAA,6BAAgB,EAAC,OAAO,CAAC,EAAE;oBAC3B,SAAS,EAAE,CAAC;iBACf;gBACD,IAAI,OAAO,KAAK,MAAM,EAAE;oBACpB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,yDAAyD;YACzD,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,yBAAM,EACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YACzD,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM5B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAQ,oBAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,IAAA,6BAAgB,EAAC,OAAO,CAAC,EAAE;oBAC3B,SAAS,EAAE,CAAC;iBACf;gBACD,IAAI,OAAO,KAAK,MAAM,EAAE;oBACpB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,EAAE;gBACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,yDAAyD;YACzD,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,yBAAM,EACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAGH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,EAAE,GAAG,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM5B,CAAC,CAAC;YACH,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAa,EAAC;gBACnB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;oBACzD,mBAAmB,EAAE,CAAC;oBACtB,mHAAmH;oBACnH,KAAK,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAC9B,IAAA,qBAAU,EACN,IAAA,mCAAwB,EAAC,wBAAwB,CAAC,EAClD;wBACI,IAAA,+BAAoB,EAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;qBACvD,CACJ,CACJ,CAAC,CAAC;oBACH,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;oBACrB,mBAAmB,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpF,CAAC;aACJ,CAAC,EAAE;gBACA,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YACH,yDAAyD;YACzD,IAAA,yBAAM,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,4IAA4I;YAC5I,IAAA,yBAAM,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAA,yBAAM,EACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,IAAI,cAAc,GAAa,EAAE,CAAC;YAElC,eAAM,CAAC,KAAK,CAAC;;;;aAIZ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAa,EAAC;gBACtB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;oBACxD,oEAAoE;oBACpE,IAAI,IAAA,gCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;wBAChE,OAAO,IAAI,6BAAgB,CACvB,IAAA,+BAAoB,EAAC,GAAG,CAAC,EACzB,IAAA,sBAAW,EAAC,qBAAS,CAAC,IAAI,CAAC,EAC3B,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAC5B,CAAC;qBACL;gBACL,CAAC;gBACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;aACJ,CAAC,EAAE;gBACA,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;aACvC,CAAC,CAAC;YAEH,IAAA,yBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC7E,IAAI,cAAc,GAAa,EAAE,CAAC;YAElC,eAAM,CAAC,KAAK,CAAC;;;;aAIZ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAa,EAAC;gBACtB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAkB,EAAE,GAAG,EAAE,EAAE;oBACxD,oEAAoE;oBACpE,IAAI,IAAA,gCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;wBAChE,OAAO,IAAI,6BAAgB,CACvB,IAAA,+BAAoB,EAAC,GAAG,CAAC,EACzB,IAAA,sBAAW,EAAC,qBAAS,CAAC,IAAI,CAAC,EAC3B,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAC5B,CAAC;qBACL;gBACL,CAAC;gBACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;aACJ,CAAC,EAAE;gBACA,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;gBACpC,MAAM,EAAE,IAAI,qBAAS,EAAE;aAC1B,CAAC,CAAC;YAEH,IAAA,yBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAA,mCAAwB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAA,mCAAwB,EAAC,MAAM,CAAC,CAAC;QAE9C,SAAS,MAAM,CAAC,aAAmC,EAAE,QAA8B,EAAE,OAA0E;YAC3J,MAAM,YAAY,GAAyB,EAAE,CAAC;YAC9C,IAAA,oBAAS,EAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClD,YAAY,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;gBAC/B,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC7C,IAAA,yBAAM,EACF,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrC,CAAC,EAAE,CAAC,GAAG,CACJ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjC,CAAC;QACN,CAAC;QAED,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,CACF,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAC7B,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAChC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,MAAM,CACF,CAAC,GAAG,EAAE,GAAG,CAAC,EACV,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EACvB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACzB,0BAA0B;gBAC1B,IAAI,IAAI,KAAK,GAAG,EAAE;oBACd,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAChC,0BAA0B;iBAC7B;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;oBACrB,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;iBAClC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,CACF,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EACvB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACzB,0BAA0B;gBAC1B,IAAI,IAAI,KAAK,GAAG,EAAE;oBACd,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;iBAC9B;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -5,6 +5,7 @@ export declare class BrsFilePreTranspileProcessor {
|
|
|
5
5
|
constructor(event: BeforeFileTranspileEvent<BrsFile>);
|
|
6
6
|
process(): void;
|
|
7
7
|
private iterateExpressions;
|
|
8
|
+
private processTernaryExpression;
|
|
8
9
|
/**
|
|
9
10
|
* Given a string optionally separated by dots, find an enum related to it.
|
|
10
11
|
* For example, all of these would return the enum: `SomeNamespace.SomeEnum.SomeMember`, SomeEnum.SomeMember, `SomeEnum`
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BrsFilePreTranspileProcessor = void 0;
|
|
4
4
|
const creators_1 = require("../../astUtils/creators");
|
|
5
5
|
const reflection_1 = require("../../astUtils/reflection");
|
|
6
|
+
const visitors_1 = require("../../astUtils/visitors");
|
|
6
7
|
const TokenKind_1 = require("../../lexer/TokenKind");
|
|
7
8
|
const Expression_1 = require("../../parser/Expression");
|
|
8
9
|
const Parser_1 = require("../../parser/Parser");
|
|
@@ -18,6 +19,7 @@ class BrsFilePreTranspileProcessor {
|
|
|
18
19
|
}
|
|
19
20
|
iterateExpressions() {
|
|
20
21
|
const scope = this.event.program.getFirstScopeForFile(this.event.file);
|
|
22
|
+
//TODO move away from this loop and use a visitor instead
|
|
21
23
|
for (let expression of this.event.file.parser.references.expressions) {
|
|
22
24
|
if (expression) {
|
|
23
25
|
if ((0, reflection_1.isUnaryExpression)(expression)) {
|
|
@@ -28,6 +30,141 @@ class BrsFilePreTranspileProcessor {
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
}
|
|
33
|
+
const walkMode = visitors_1.WalkMode.visitExpressionsRecursive;
|
|
34
|
+
const visitor = (0, visitors_1.createVisitor)({
|
|
35
|
+
TernaryExpression: (ternaryExpression) => {
|
|
36
|
+
this.processTernaryExpression(ternaryExpression, visitor, walkMode);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
this.event.file.ast.walk(visitor, { walkMode: walkMode });
|
|
40
|
+
}
|
|
41
|
+
processTernaryExpression(ternaryExpression, visitor, walkMode) {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
function getOwnerAndKey(statement) {
|
|
44
|
+
const parent = statement.parent;
|
|
45
|
+
if ((0, reflection_1.isBlock)(parent) || (0, reflection_1.isBody)(parent)) {
|
|
46
|
+
let idx = parent.statements.indexOf(statement);
|
|
47
|
+
if (idx > -1) {
|
|
48
|
+
return { owner: parent.statements, key: idx };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//if the ternary expression is part of a simple assignment, rewrite it as an `IfStatement`
|
|
53
|
+
let parent = ternaryExpression.findAncestor(x => !(0, reflection_1.isGroupingExpression)(x));
|
|
54
|
+
let operator;
|
|
55
|
+
//operators like `+=` will cause the RHS to be a BinaryExpression due to how the parser handles this. let's do a little magic to detect this situation
|
|
56
|
+
if (
|
|
57
|
+
//parent is a binary expression
|
|
58
|
+
(0, reflection_1.isBinaryExpression)(parent) &&
|
|
59
|
+
(((0, reflection_1.isAssignmentStatement)(parent.parent) && (0, reflection_1.isVariableExpression)(parent.left) && parent.left.name === parent.parent.name) ||
|
|
60
|
+
((0, reflection_1.isDottedSetStatement)(parent.parent) && (0, reflection_1.isDottedGetExpression)(parent.left) && parent.left.name === parent.parent.name) ||
|
|
61
|
+
((0, reflection_1.isIndexedSetStatement)(parent.parent) && (0, reflection_1.isIndexedGetExpression)(parent.left) && parent.left.index === parent.parent.index))) {
|
|
62
|
+
//keep the correct operator (i.e. `+=`)
|
|
63
|
+
operator = parent.operator;
|
|
64
|
+
//use the outer parent and skip this BinaryExpression
|
|
65
|
+
parent = parent.parent;
|
|
66
|
+
}
|
|
67
|
+
let ifStatement;
|
|
68
|
+
if ((0, reflection_1.isAssignmentStatement)(parent)) {
|
|
69
|
+
ifStatement = (0, creators_1.createIfStatement)({
|
|
70
|
+
if: (0, creators_1.createToken)(TokenKind_1.TokenKind.If, 'if', ternaryExpression.questionMarkToken.range),
|
|
71
|
+
condition: ternaryExpression.test,
|
|
72
|
+
then: (0, creators_1.createToken)(TokenKind_1.TokenKind.Then, 'then', ternaryExpression.questionMarkToken.range),
|
|
73
|
+
thenBranch: (0, creators_1.createBlock)({
|
|
74
|
+
statements: [
|
|
75
|
+
(0, creators_1.createAssignmentStatement)({
|
|
76
|
+
name: parent.name,
|
|
77
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
78
|
+
value: ternaryExpression.consequent
|
|
79
|
+
})
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
else: (0, creators_1.createToken)(TokenKind_1.TokenKind.Else, 'else', ternaryExpression.questionMarkToken.range),
|
|
83
|
+
elseBranch: (0, creators_1.createBlock)({
|
|
84
|
+
statements: [
|
|
85
|
+
(0, creators_1.createAssignmentStatement)({
|
|
86
|
+
name: parent.name,
|
|
87
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
88
|
+
value: ternaryExpression.alternate
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
}),
|
|
92
|
+
endIf: (0, creators_1.createToken)(TokenKind_1.TokenKind.EndIf, 'end if', ternaryExpression.questionMarkToken.range)
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else if ((0, reflection_1.isDottedSetStatement)(parent)) {
|
|
96
|
+
ifStatement = (0, creators_1.createIfStatement)({
|
|
97
|
+
if: (0, creators_1.createToken)(TokenKind_1.TokenKind.If, 'if', ternaryExpression.questionMarkToken.range),
|
|
98
|
+
condition: ternaryExpression.test,
|
|
99
|
+
then: (0, creators_1.createToken)(TokenKind_1.TokenKind.Then, 'then', ternaryExpression.questionMarkToken.range),
|
|
100
|
+
thenBranch: (0, creators_1.createBlock)({
|
|
101
|
+
statements: [
|
|
102
|
+
(0, creators_1.createDottedSetStatement)({
|
|
103
|
+
obj: parent.obj,
|
|
104
|
+
name: parent.name,
|
|
105
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
106
|
+
value: ternaryExpression.consequent
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
}),
|
|
110
|
+
else: (0, creators_1.createToken)(TokenKind_1.TokenKind.Else, 'else', ternaryExpression.questionMarkToken.range),
|
|
111
|
+
elseBranch: (0, creators_1.createBlock)({
|
|
112
|
+
statements: [
|
|
113
|
+
(0, creators_1.createDottedSetStatement)({
|
|
114
|
+
obj: parent.obj,
|
|
115
|
+
name: parent.name,
|
|
116
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
117
|
+
value: ternaryExpression.alternate
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
}),
|
|
121
|
+
endIf: (0, creators_1.createToken)(TokenKind_1.TokenKind.EndIf, 'end if', ternaryExpression.questionMarkToken.range)
|
|
122
|
+
});
|
|
123
|
+
//if this is an indexedSetStatement, and the ternary expression is NOT an index
|
|
124
|
+
}
|
|
125
|
+
else if ((0, reflection_1.isIndexedSetStatement)(parent) && parent.index !== ternaryExpression && !((_a = parent.additionalIndexes) === null || _a === void 0 ? void 0 : _a.includes(ternaryExpression))) {
|
|
126
|
+
ifStatement = (0, creators_1.createIfStatement)({
|
|
127
|
+
if: (0, creators_1.createToken)(TokenKind_1.TokenKind.If, 'if', ternaryExpression.questionMarkToken.range),
|
|
128
|
+
condition: ternaryExpression.test,
|
|
129
|
+
then: (0, creators_1.createToken)(TokenKind_1.TokenKind.Then, 'then', ternaryExpression.questionMarkToken.range),
|
|
130
|
+
thenBranch: (0, creators_1.createBlock)({
|
|
131
|
+
statements: [
|
|
132
|
+
(0, creators_1.createIndexedSetStatement)({
|
|
133
|
+
obj: parent.obj,
|
|
134
|
+
openingSquare: parent.openingSquare,
|
|
135
|
+
index: parent.index,
|
|
136
|
+
closingSquare: parent.closingSquare,
|
|
137
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
138
|
+
value: ternaryExpression.consequent,
|
|
139
|
+
additionalIndexes: parent.additionalIndexes
|
|
140
|
+
})
|
|
141
|
+
]
|
|
142
|
+
}),
|
|
143
|
+
else: (0, creators_1.createToken)(TokenKind_1.TokenKind.Else, 'else', ternaryExpression.questionMarkToken.range),
|
|
144
|
+
elseBranch: (0, creators_1.createBlock)({
|
|
145
|
+
statements: [
|
|
146
|
+
(0, creators_1.createIndexedSetStatement)({
|
|
147
|
+
obj: parent.obj,
|
|
148
|
+
openingSquare: parent.openingSquare,
|
|
149
|
+
index: parent.index,
|
|
150
|
+
closingSquare: parent.closingSquare,
|
|
151
|
+
equals: operator !== null && operator !== void 0 ? operator : parent.equals,
|
|
152
|
+
value: ternaryExpression.alternate,
|
|
153
|
+
additionalIndexes: parent.additionalIndexes
|
|
154
|
+
})
|
|
155
|
+
]
|
|
156
|
+
}),
|
|
157
|
+
endIf: (0, creators_1.createToken)(TokenKind_1.TokenKind.EndIf, 'end if', ternaryExpression.questionMarkToken.range)
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (ifStatement) {
|
|
161
|
+
let { owner, key } = (_b = getOwnerAndKey(parent)) !== null && _b !== void 0 ? _b : {};
|
|
162
|
+
if (owner && key !== undefined) {
|
|
163
|
+
this.event.editor.setProperty(owner, key, ifStatement);
|
|
164
|
+
}
|
|
165
|
+
//we've injected an ifStatement, so now we need to trigger a walk to handle any nested ternary expressions
|
|
166
|
+
ifStatement.walk(visitor, { walkMode: walkMode });
|
|
167
|
+
}
|
|
31
168
|
}
|
|
32
169
|
/**
|
|
33
170
|
* Given a string optionally separated by dots, find an enum related to it.
|
|
@@ -53,10 +190,10 @@ class BrsFilePreTranspileProcessor {
|
|
|
53
190
|
};
|
|
54
191
|
}
|
|
55
192
|
}
|
|
56
|
-
processExpression(
|
|
193
|
+
processExpression(ternaryExpression, scope) {
|
|
57
194
|
var _a, _b, _c, _d;
|
|
58
|
-
let containingNamespace = (_a = this.event.file.getNamespaceStatementForPosition(
|
|
59
|
-
const parts = util_1.default.splitExpression(
|
|
195
|
+
let containingNamespace = (_a = this.event.file.getNamespaceStatementForPosition(ternaryExpression.range.start)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
|
|
196
|
+
const parts = util_1.default.splitExpression(ternaryExpression);
|
|
60
197
|
const processedNames = [];
|
|
61
198
|
for (let part of parts) {
|
|
62
199
|
let entityName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrsFilePreTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"BrsFilePreTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.ts"],"names":[],"mappings":"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"}
|
package/dist/lexer/Lexer.js
CHANGED
|
@@ -6,6 +6,10 @@ const TokenKind_1 = require("./TokenKind");
|
|
|
6
6
|
const Characters_1 = require("./Characters");
|
|
7
7
|
const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
8
8
|
const util_1 = require("../util");
|
|
9
|
+
/**
|
|
10
|
+
* Numeric type designators can only be one of these characters
|
|
11
|
+
*/
|
|
12
|
+
const numericTypeDesignatorCharsRegexp = /[#d!e&%]/;
|
|
9
13
|
class Lexer {
|
|
10
14
|
constructor() {
|
|
11
15
|
/**
|
|
@@ -390,7 +394,11 @@ class Lexer {
|
|
|
390
394
|
let asString = this.source.slice(this.start, this.current);
|
|
391
395
|
let numberOfDigits = containsDecimal ? asString.length - 1 : asString.length;
|
|
392
396
|
let designator = this.peek().toLowerCase();
|
|
393
|
-
|
|
397
|
+
//set to undefined if it's not one of the supported designator chars
|
|
398
|
+
if (!numericTypeDesignatorCharsRegexp.test(designator)) {
|
|
399
|
+
designator = undefined;
|
|
400
|
+
}
|
|
401
|
+
if (numberOfDigits >= 10 && !designator) {
|
|
394
402
|
// numeric literals over 10 digits with no type designator are implicitly Doubles
|
|
395
403
|
this.addToken(TokenKind_1.TokenKind.DoubleLiteral);
|
|
396
404
|
}
|
|
@@ -421,8 +429,8 @@ class Lexer {
|
|
|
421
429
|
this.addToken(TokenKind_1.TokenKind.FloatLiteral);
|
|
422
430
|
}
|
|
423
431
|
else if (designator === 'e') {
|
|
424
|
-
// literals that use "
|
|
425
|
-
// consume the "
|
|
432
|
+
// literals that use "e" as the exponent are also automatic Floats
|
|
433
|
+
// consume the "e"
|
|
426
434
|
this.advance();
|
|
427
435
|
// exponents are optionally signed
|
|
428
436
|
if (this.peek() === '+' || this.peek() === '-') {
|
|
@@ -432,6 +440,10 @@ class Lexer {
|
|
|
432
440
|
while ((0, Characters_1.isDecimalDigit)(this.peek())) {
|
|
433
441
|
this.advance();
|
|
434
442
|
}
|
|
443
|
+
//optionally consume a trailing type designator
|
|
444
|
+
if (numericTypeDesignatorCharsRegexp.test(this.peek())) {
|
|
445
|
+
this.advance();
|
|
446
|
+
}
|
|
435
447
|
this.addToken(TokenKind_1.TokenKind.FloatLiteral);
|
|
436
448
|
}
|
|
437
449
|
else if (containsDecimal) {
|