hermes-parser 0.25.1 → 0.27.0
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/dist/HermesParser.js +2 -2
- package/dist/HermesParser.js.flow +2 -0
- package/dist/HermesParserNodeDeserializers.js +182 -1
- package/dist/HermesParserWASM.js +1 -1
- package/dist/HermesParserWASM.js.flow +10 -2
- package/dist/ParserOptions.js +1 -1
- package/dist/ParserOptions.js.flow +2 -0
- package/dist/estree/TransformMatchSyntax.js +1016 -0
- package/dist/estree/TransformMatchSyntax.js.flow +913 -0
- package/dist/generated/ESTreeVisitorKeys.js +17 -0
- package/dist/generated/ParserVisitorKeys.js +60 -0
- package/dist/index.js +4 -1
- package/dist/index.js.flow +3 -0
- package/dist/utils/Builders.js +174 -0
- package/dist/utils/Builders.js.flow +198 -0
- package/dist/utils/GenID.js +41 -0
- package/dist/utils/GenID.js.flow +38 -0
- package/package.json +2 -2
package/dist/HermesParser.js
CHANGED
|
@@ -51,7 +51,7 @@ function initHermesParserWASM() {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
});
|
|
54
|
-
hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);
|
|
54
|
+
hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number']);
|
|
55
55
|
hermesParseResult_free = HermesParserWASM.cwrap('hermesParseResult_free', 'void', ['number']);
|
|
56
56
|
hermesParseResult_getError = HermesParserWASM.cwrap('hermesParseResult_getError', 'string', ['number']);
|
|
57
57
|
hermesParseResult_getErrorLine = HermesParserWASM.cwrap('hermesParseResult_getErrorLine', 'number', ['number']);
|
|
@@ -81,7 +81,7 @@ function parse(source, options) {
|
|
|
81
81
|
try {
|
|
82
82
|
// Copy source text onto WASM heap
|
|
83
83
|
copyToHeap(sourceBuffer, sourceAddr);
|
|
84
|
-
const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.enableExperimentalComponentSyntax, options.tokens, options.allowReturnOutsideFunction);
|
|
84
|
+
const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.enableExperimentalComponentSyntax, options.enableExperimentalFlowMatchSyntax, options.tokens, options.allowReturnOutsideFunction);
|
|
85
85
|
|
|
86
86
|
try {
|
|
87
87
|
// Extract and throw error from parse result if parsing failed
|
|
@@ -54,6 +54,7 @@ function initHermesParserWASM() {
|
|
|
54
54
|
'number',
|
|
55
55
|
'number',
|
|
56
56
|
'number',
|
|
57
|
+
'number',
|
|
57
58
|
]);
|
|
58
59
|
|
|
59
60
|
hermesParseResult_free = HermesParserWASM.cwrap(
|
|
@@ -124,6 +125,7 @@ export function parse(source: string, options: ParserOptions): HermesNode {
|
|
|
124
125
|
sourceBuffer.length + 1,
|
|
125
126
|
options.flow === 'detect',
|
|
126
127
|
options.enableExperimentalComponentSyntax,
|
|
128
|
+
options.enableExperimentalFlowMatchSyntax,
|
|
127
129
|
options.tokens,
|
|
128
130
|
options.allowReturnOutsideFunction,
|
|
129
131
|
);
|
|
@@ -124,6 +124,15 @@ function deserializeStatementFirst() {
|
|
|
124
124
|
throw new Error('Statement' + ' should not appear in program buffer');
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
function deserializeMatchStatement() {
|
|
128
|
+
return {
|
|
129
|
+
type: 'MatchStatement',
|
|
130
|
+
loc: this.addEmptyLoc(),
|
|
131
|
+
argument: this.deserializeNode(),
|
|
132
|
+
cases: this.deserializeNodeList()
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
127
136
|
function deserializeLoopStatementFirst() {
|
|
128
137
|
throw new Error('LoopStatement' + ' should not appear in program buffer');
|
|
129
138
|
}
|
|
@@ -204,6 +213,14 @@ function deserializeBlockStatement() {
|
|
|
204
213
|
};
|
|
205
214
|
}
|
|
206
215
|
|
|
216
|
+
function deserializeStaticBlock() {
|
|
217
|
+
return {
|
|
218
|
+
type: 'StaticBlock',
|
|
219
|
+
loc: this.addEmptyLoc(),
|
|
220
|
+
body: this.deserializeNodeList()
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
207
224
|
function deserializeBreakStatement() {
|
|
208
225
|
return {
|
|
209
226
|
type: 'BreakStatement',
|
|
@@ -665,6 +682,10 @@ function deserializeProperty() {
|
|
|
665
682
|
};
|
|
666
683
|
}
|
|
667
684
|
|
|
685
|
+
function deserializeClassLikeFirst() {
|
|
686
|
+
throw new Error('ClassLike' + ' should not appear in program buffer');
|
|
687
|
+
}
|
|
688
|
+
|
|
668
689
|
function deserializeClassDeclaration() {
|
|
669
690
|
return {
|
|
670
691
|
type: 'ClassDeclaration',
|
|
@@ -693,6 +714,10 @@ function deserializeClassExpression() {
|
|
|
693
714
|
};
|
|
694
715
|
}
|
|
695
716
|
|
|
717
|
+
function deserializeClassLikeLast() {
|
|
718
|
+
throw new Error('ClassLike' + ' should not appear in program buffer');
|
|
719
|
+
}
|
|
720
|
+
|
|
696
721
|
function deserializeClassBody() {
|
|
697
722
|
return {
|
|
698
723
|
type: 'ClassBody',
|
|
@@ -878,6 +903,146 @@ function deserializePatternLast() {
|
|
|
878
903
|
throw new Error('Pattern' + ' should not appear in program buffer');
|
|
879
904
|
}
|
|
880
905
|
|
|
906
|
+
function deserializeMatchStatementCase() {
|
|
907
|
+
return {
|
|
908
|
+
type: 'MatchStatementCase',
|
|
909
|
+
loc: this.addEmptyLoc(),
|
|
910
|
+
pattern: this.deserializeNode(),
|
|
911
|
+
body: this.deserializeNode(),
|
|
912
|
+
guard: this.deserializeNode()
|
|
913
|
+
};
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
function deserializeMatchExpression() {
|
|
917
|
+
return {
|
|
918
|
+
type: 'MatchExpression',
|
|
919
|
+
loc: this.addEmptyLoc(),
|
|
920
|
+
argument: this.deserializeNode(),
|
|
921
|
+
cases: this.deserializeNodeList()
|
|
922
|
+
};
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
function deserializeMatchExpressionCase() {
|
|
926
|
+
return {
|
|
927
|
+
type: 'MatchExpressionCase',
|
|
928
|
+
loc: this.addEmptyLoc(),
|
|
929
|
+
pattern: this.deserializeNode(),
|
|
930
|
+
body: this.deserializeNode(),
|
|
931
|
+
guard: this.deserializeNode()
|
|
932
|
+
};
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
function deserializeMatchPatternFirst() {
|
|
936
|
+
throw new Error('MatchPattern' + ' should not appear in program buffer');
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
function deserializeMatchWildcardPattern() {
|
|
940
|
+
return {
|
|
941
|
+
type: 'MatchWildcardPattern',
|
|
942
|
+
loc: this.addEmptyLoc()
|
|
943
|
+
};
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
function deserializeMatchLiteralPattern() {
|
|
947
|
+
return {
|
|
948
|
+
type: 'MatchLiteralPattern',
|
|
949
|
+
loc: this.addEmptyLoc(),
|
|
950
|
+
literal: this.deserializeNode()
|
|
951
|
+
};
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
function deserializeMatchUnaryPattern() {
|
|
955
|
+
return {
|
|
956
|
+
type: 'MatchUnaryPattern',
|
|
957
|
+
loc: this.addEmptyLoc(),
|
|
958
|
+
argument: this.deserializeNode(),
|
|
959
|
+
operator: this.deserializeString()
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
function deserializeMatchIdentifierPattern() {
|
|
964
|
+
return {
|
|
965
|
+
type: 'MatchIdentifierPattern',
|
|
966
|
+
loc: this.addEmptyLoc(),
|
|
967
|
+
id: this.deserializeNode()
|
|
968
|
+
};
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
function deserializeMatchBindingPattern() {
|
|
972
|
+
return {
|
|
973
|
+
type: 'MatchBindingPattern',
|
|
974
|
+
loc: this.addEmptyLoc(),
|
|
975
|
+
id: this.deserializeNode(),
|
|
976
|
+
kind: this.deserializeString()
|
|
977
|
+
};
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
function deserializeMatchObjectPattern() {
|
|
981
|
+
return {
|
|
982
|
+
type: 'MatchObjectPattern',
|
|
983
|
+
loc: this.addEmptyLoc(),
|
|
984
|
+
properties: this.deserializeNodeList(),
|
|
985
|
+
rest: this.deserializeNode()
|
|
986
|
+
};
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
function deserializeMatchArrayPattern() {
|
|
990
|
+
return {
|
|
991
|
+
type: 'MatchArrayPattern',
|
|
992
|
+
loc: this.addEmptyLoc(),
|
|
993
|
+
elements: this.deserializeNodeList(),
|
|
994
|
+
rest: this.deserializeNode()
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
function deserializeMatchOrPattern() {
|
|
999
|
+
return {
|
|
1000
|
+
type: 'MatchOrPattern',
|
|
1001
|
+
loc: this.addEmptyLoc(),
|
|
1002
|
+
patterns: this.deserializeNodeList()
|
|
1003
|
+
};
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
function deserializeMatchAsPattern() {
|
|
1007
|
+
return {
|
|
1008
|
+
type: 'MatchAsPattern',
|
|
1009
|
+
loc: this.addEmptyLoc(),
|
|
1010
|
+
pattern: this.deserializeNode(),
|
|
1011
|
+
target: this.deserializeNode()
|
|
1012
|
+
};
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
function deserializeMatchMemberPattern() {
|
|
1016
|
+
return {
|
|
1017
|
+
type: 'MatchMemberPattern',
|
|
1018
|
+
loc: this.addEmptyLoc(),
|
|
1019
|
+
base: this.deserializeNode(),
|
|
1020
|
+
property: this.deserializeNode()
|
|
1021
|
+
};
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
function deserializeMatchPatternLast() {
|
|
1025
|
+
throw new Error('MatchPattern' + ' should not appear in program buffer');
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
function deserializeMatchObjectPatternProperty() {
|
|
1029
|
+
return {
|
|
1030
|
+
type: 'MatchObjectPatternProperty',
|
|
1031
|
+
loc: this.addEmptyLoc(),
|
|
1032
|
+
key: this.deserializeNode(),
|
|
1033
|
+
pattern: this.deserializeNode(),
|
|
1034
|
+
shorthand: this.deserializeBoolean()
|
|
1035
|
+
};
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
function deserializeMatchRestPattern() {
|
|
1039
|
+
return {
|
|
1040
|
+
type: 'MatchRestPattern',
|
|
1041
|
+
loc: this.addEmptyLoc(),
|
|
1042
|
+
argument: this.deserializeNode()
|
|
1043
|
+
};
|
|
1044
|
+
}
|
|
1045
|
+
|
|
881
1046
|
function deserializeJSXFirst() {
|
|
882
1047
|
throw new Error('JSX' + ' should not appear in program buffer');
|
|
883
1048
|
}
|
|
@@ -1661,6 +1826,7 @@ function deserializeTypeParameter() {
|
|
|
1661
1826
|
type: 'TypeParameter',
|
|
1662
1827
|
loc: this.addEmptyLoc(),
|
|
1663
1828
|
name: this.deserializeString(),
|
|
1829
|
+
const: this.deserializeBoolean(),
|
|
1664
1830
|
bound: this.deserializeNode(),
|
|
1665
1831
|
variance: this.deserializeNode(),
|
|
1666
1832
|
default: this.deserializeNode(),
|
|
@@ -2288,4 +2454,19 @@ function deserializeCoverLast() {
|
|
|
2288
2454
|
throw new Error('Cover' + ' should not appear in program buffer');
|
|
2289
2455
|
}
|
|
2290
2456
|
|
|
2291
|
-
|
|
2457
|
+
function deserializeSHBuiltin() {
|
|
2458
|
+
return {
|
|
2459
|
+
type: 'SHBuiltin',
|
|
2460
|
+
loc: this.addEmptyLoc()
|
|
2461
|
+
};
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
function deserializeImplicitCheckedCast() {
|
|
2465
|
+
return {
|
|
2466
|
+
type: 'ImplicitCheckedCast',
|
|
2467
|
+
loc: this.addEmptyLoc(),
|
|
2468
|
+
argument: this.deserializeNode()
|
|
2469
|
+
};
|
|
2470
|
+
}
|
|
2471
|
+
|
|
2472
|
+
module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, deserializeHookDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeMatchStatement, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeStaticBlock, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassLikeFirst, deserializeClassDeclaration, deserializeClassExpression, deserializeClassLikeLast, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeMatchStatementCase, deserializeMatchExpression, deserializeMatchExpressionCase, deserializeMatchPatternFirst, deserializeMatchWildcardPattern, deserializeMatchLiteralPattern, deserializeMatchUnaryPattern, deserializeMatchIdentifierPattern, deserializeMatchBindingPattern, deserializeMatchObjectPattern, deserializeMatchArrayPattern, deserializeMatchOrPattern, deserializeMatchAsPattern, deserializeMatchMemberPattern, deserializeMatchPatternLast, deserializeMatchObjectPatternProperty, deserializeMatchRestPattern, deserializeJSXFirst, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeJSXLast, deserializeFlowFirst, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeHookTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeTypeOperator, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareHook, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareNamespace, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeAsExpression, deserializeAsConstExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBigIntBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBigIntMember, deserializeEnumBooleanMember, deserializeComponentParameter, deserializeFlowLast, deserializeTSFirst, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSUndefinedKeyword, deserializeTSUnknownKeyword, deserializeTSNeverKeyword, deserializeTSBigIntKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeTSLast, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast, deserializeSHBuiltin, deserializeImplicitCheckedCast];
|