Skip to content

Commit cbce061

Browse files
committed
refactor: leverage Prettier's AstPath and comment attachment
1 parent 361120c commit cbce061

File tree

78 files changed

+4396
-5919
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+4396
-5919
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"lerna": "8.1.9",
4242
"lint-staged": "15.2.10",
4343
"mocha": "10.8.2",
44-
"prettier": "3.4.2",
44+
"prettier": "^3.0.0",
4545
"sinon": "19.0.2"
4646
}
4747
}

packages/java-parser/api.d.ts

Lines changed: 265 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {
1+
import type {
22
CstNode as ChevrotainCstNode,
33
IToken as ChevrotainIToken,
44
CstNodeLocation,
@@ -7,24 +7,260 @@ import {
77

88
export interface CstNode extends ChevrotainCstNode {
99
children: CstChildrenDictionary;
10-
leadingComments?: IToken[];
11-
trailingComments?: IToken[];
12-
ignore?: boolean;
13-
location: CstNodeLocation;
10+
location: Required<CstNodeLocation>;
11+
comments?: IToken[];
1412
}
1513

1614
export interface IToken extends ChevrotainIToken {
17-
leadingComments?: IToken[];
18-
trailingComments?: IToken[];
1915
startOffset: number;
2016
startLine: number;
2117
startColumn: number;
2218
endOffset: number;
2319
endLine: number;
2420
endColumn: number;
25-
}
26-
27-
export type CstElement = IToken | CstNode;
21+
comments?: IToken[];
22+
}
23+
24+
export type CstElement =
25+
| IToken
26+
| AdditionalBoundCstNode
27+
| AmbiguousNameCstNode
28+
| AnnotationCstNode
29+
| AnnotationInterfaceBodyCstNode
30+
| AnnotationInterfaceDeclarationCstNode
31+
| AnnotationInterfaceElementDeclarationCstNode
32+
| AnnotationInterfaceElementModifierCstNode
33+
| AnnotationInterfaceMemberDeclarationCstNode
34+
| ArgumentListCstNode
35+
| ArrayAccessSuffixCstNode
36+
| ArrayCreationExpressionCstNode
37+
| ArrayCreationExpressionWithoutInitializerSuffixCstNode
38+
| ArrayCreationWithInitializerSuffixCstNode
39+
| ArrayInitializerCstNode
40+
| AssertStatementCstNode
41+
| BasicForStatementCstNode
42+
| BinaryExpressionCstNode
43+
| BlockCstNode
44+
| BlockStatementCstNode
45+
| BlockStatementsCstNode
46+
| BooleanLiteralCstNode
47+
| BreakStatementCstNode
48+
| CaseConstantCstNode
49+
| CasePatternCstNode
50+
| CastExpressionCstNode
51+
| CatchClauseCstNode
52+
| CatchesCstNode
53+
| CatchFormalParameterCstNode
54+
| CatchTypeCstNode
55+
| ClassBodyCstNode
56+
| ClassBodyDeclarationCstNode
57+
| ClassDeclarationCstNode
58+
| ClassExtendsCstNode
59+
| ClassImplementsCstNode
60+
| ClassLiteralSuffixCstNode
61+
| ClassMemberDeclarationCstNode
62+
| ClassModifierCstNode
63+
| ClassOrInterfaceTypeCstNode
64+
| ClassOrInterfaceTypeToInstantiateCstNode
65+
| ClassPermitsCstNode
66+
| ClassTypeCstNode
67+
| CompactConstructorDeclarationCstNode
68+
| CompilationUnitCstNode
69+
| ComponentPatternCstNode
70+
| ComponentPatternListCstNode
71+
| ConciseLambdaParameterCstNode
72+
| ConciseLambdaParameterListCstNode
73+
| ConditionalExpressionCstNode
74+
| ConstantDeclarationCstNode
75+
| ConstantModifierCstNode
76+
| ConstructorBodyCstNode
77+
| ConstructorDeclarationCstNode
78+
| ConstructorDeclaratorCstNode
79+
| ConstructorModifierCstNode
80+
| ContinueStatementCstNode
81+
| DefaultValueCstNode
82+
| DiamondCstNode
83+
| DimExprCstNode
84+
| DimExprsCstNode
85+
| DimsCstNode
86+
| DoStatementCstNode
87+
| ElementValueArrayInitializerCstNode
88+
| ElementValueCstNode
89+
| ElementValueListCstNode
90+
| ElementValuePairCstNode
91+
| ElementValuePairListCstNode
92+
| EmbeddedExpressionCstNode
93+
| EmptyStatementCstNode
94+
| EnhancedForStatementCstNode
95+
| EnumBodyCstNode
96+
| EnumBodyDeclarationsCstNode
97+
| EnumConstantCstNode
98+
| EnumConstantListCstNode
99+
| EnumConstantModifierCstNode
100+
| EnumDeclarationCstNode
101+
| ExceptionTypeCstNode
102+
| ExceptionTypeListCstNode
103+
| ExplicitConstructorInvocationCstNode
104+
| ExportsModuleDirectiveCstNode
105+
| ExpressionCstNode
106+
| ExpressionNameCstNode
107+
| ExpressionStatementCstNode
108+
| FieldDeclarationCstNode
109+
| FieldModifierCstNode
110+
| FinallyCstNode
111+
| FloatingPointLiteralCstNode
112+
| FloatingPointTypeCstNode
113+
| ForInitCstNode
114+
| FormalParameterCstNode
115+
| FormalParameterListCstNode
116+
| ForStatementCstNode
117+
| ForUpdateCstNode
118+
| FqnOrRefTypeCstNode
119+
| FqnOrRefTypePartCommonCstNode
120+
| FqnOrRefTypePartFirstCstNode
121+
| FqnOrRefTypePartRestCstNode
122+
| GuardCstNode
123+
| IfStatementCstNode
124+
| ImportDeclarationCstNode
125+
| InstanceInitializerCstNode
126+
| IntegerLiteralCstNode
127+
| IntegralTypeCstNode
128+
| InterfaceBodyCstNode
129+
| InterfaceDeclarationCstNode
130+
| InterfaceExtendsCstNode
131+
| InterfaceMemberDeclarationCstNode
132+
| InterfaceMethodDeclarationCstNode
133+
| InterfaceMethodModifierCstNode
134+
| InterfaceModifierCstNode
135+
| InterfacePermitsCstNode
136+
| InterfaceTypeCstNode
137+
| InterfaceTypeListCstNode
138+
| LabeledStatementCstNode
139+
| LambdaBodyCstNode
140+
| LambdaExpressionCstNode
141+
| LambdaParameterListCstNode
142+
| LambdaParametersCstNode
143+
| LambdaParametersWithBracesCstNode
144+
| LambdaParameterTypeCstNode
145+
| LiteralCstNode
146+
| LocalVariableDeclarationCstNode
147+
| LocalVariableDeclarationStatementCstNode
148+
| LocalVariableTypeCstNode
149+
| MatchAllPatternCstNode
150+
| MethodBodyCstNode
151+
| MethodDeclarationCstNode
152+
| MethodDeclaratorCstNode
153+
| MethodHeaderCstNode
154+
| MethodInvocationSuffixCstNode
155+
| MethodModifierCstNode
156+
| MethodNameCstNode
157+
| MethodReferenceSuffixCstNode
158+
| ModularCompilationUnitCstNode
159+
| ModuleDeclarationCstNode
160+
| ModuleDirectiveCstNode
161+
| ModuleNameCstNode
162+
| NewExpressionCstNode
163+
| NormalClassDeclarationCstNode
164+
| NormalInterfaceDeclarationCstNode
165+
| NormalLambdaParameterCstNode
166+
| NormalLambdaParameterListCstNode
167+
| NumericTypeCstNode
168+
| OpensModuleDirectiveCstNode
169+
| OrdinaryCompilationUnitCstNode
170+
| PackageDeclarationCstNode
171+
| PackageModifierCstNode
172+
| PackageNameCstNode
173+
| PackageOrTypeNameCstNode
174+
| ParenthesisExpressionCstNode
175+
| PatternCstNode
176+
| PrimaryCstNode
177+
| PrimaryPrefixCstNode
178+
| PrimarySuffixCstNode
179+
| PrimitiveCastExpressionCstNode
180+
| PrimitiveTypeCstNode
181+
| ProvidesModuleDirectiveCstNode
182+
| QualifiedExplicitConstructorInvocationCstNode
183+
| ReceiverParameterCstNode
184+
| RecordBodyCstNode
185+
| RecordBodyDeclarationCstNode
186+
| RecordComponentCstNode
187+
| RecordComponentListCstNode
188+
| RecordComponentModifierCstNode
189+
| RecordDeclarationCstNode
190+
| RecordHeaderCstNode
191+
| RecordPatternCstNode
192+
| ReferenceTypeCastExpressionCstNode
193+
| ReferenceTypeCstNode
194+
| RegularLambdaParameterCstNode
195+
| RequiresModifierCstNode
196+
| RequiresModuleDirectiveCstNode
197+
| ResourceCstNode
198+
| ResourceListCstNode
199+
| ResourceSpecificationCstNode
200+
| ResultCstNode
201+
| ReturnStatementCstNode
202+
| ShiftOperatorCstNode
203+
| SimpleTypeNameCstNode
204+
| StatementCstNode
205+
| StatementExpressionCstNode
206+
| StatementExpressionListCstNode
207+
| StatementWithoutTrailingSubstatementCstNode
208+
| StaticInitializerCstNode
209+
| StringTemplateCstNode
210+
| SwitchBlockCstNode
211+
| SwitchBlockStatementGroupCstNode
212+
| SwitchLabelCstNode
213+
| SwitchRuleCstNode
214+
| SwitchStatementCstNode
215+
| SynchronizedStatementCstNode
216+
| TemplateArgumentCstNode
217+
| TemplateCstNode
218+
| TextBlockTemplateCstNode
219+
| ThrowsCstNode
220+
| ThrowStatementCstNode
221+
| TryStatementCstNode
222+
| TryWithResourcesStatementCstNode
223+
| TypeArgumentCstNode
224+
| TypeArgumentListCstNode
225+
| TypeArgumentsCstNode
226+
| TypeArgumentsOrDiamondCstNode
227+
| TypeBoundCstNode
228+
| TypeDeclarationCstNode
229+
| TypeIdentifierCstNode
230+
| TypeNameCstNode
231+
| TypeParameterCstNode
232+
| TypeParameterListCstNode
233+
| TypeParameterModifierCstNode
234+
| TypeParametersCstNode
235+
| TypePatternCstNode
236+
| TypeVariableCstNode
237+
| UnannClassOrInterfaceTypeCstNode
238+
| UnannClassTypeCstNode
239+
| UnannInterfaceTypeCstNode
240+
| UnannPrimitiveTypeCstNode
241+
| UnannPrimitiveTypeWithOptionalDimsSuffixCstNode
242+
| UnannReferenceTypeCstNode
243+
| UnannTypeCstNode
244+
| UnannTypeVariableCstNode
245+
| UnaryExpressionCstNode
246+
| UnaryExpressionNotPlusMinusCstNode
247+
| UnqualifiedClassInstanceCreationExpressionCstNode
248+
| UnqualifiedExplicitConstructorInvocationCstNode
249+
| UsesModuleDirectiveCstNode
250+
| VariableAccessCstNode
251+
| VariableArityParameterCstNode
252+
| VariableArityRecordComponentCstNode
253+
| VariableDeclaratorCstNode
254+
| VariableDeclaratorIdCstNode
255+
| VariableDeclaratorListCstNode
256+
| VariableInitializerCstNode
257+
| VariableInitializerListCstNode
258+
| VariableModifierCstNode
259+
| VariableParaRegularParameterCstNode
260+
| WhileStatementCstNode
261+
| WildcardBoundsCstNode
262+
| WildcardCstNode
263+
| YieldStatementCstNode;
28264

29265
export declare type CstChildrenDictionary = {
30266
[identifier: string]: CstElement[];
@@ -57,6 +293,7 @@ export abstract class JavaCstVisitor<IN, OUT> implements ICstVisitor<IN, OUT> {
57293
integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT;
58294
floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT;
59295
booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT;
296+
shiftOperator(cts: ShiftOperatorCtx, param?: IN): OUT;
60297
primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT;
61298
numericType(ctx: NumericTypeCtx, param?: IN): OUT;
62299
integralType(ctx: IntegralTypeCtx, param?: IN): OUT;
@@ -300,7 +537,7 @@ export abstract class JavaCstVisitor<IN, OUT> implements ICstVisitor<IN, OUT> {
300537
param?: IN
301538
): OUT;
302539
normalLambdaParameterList(ctx: NormalLambdaParameterListCtx, param?: IN): OUT;
303-
normalLambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT;
540+
normalLambdaParameter(ctx: NormalLambdaParameterCtx, param?: IN): OUT;
304541
regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT;
305542
lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT;
306543
conciseLambdaParameter(ctx: ConciseLambdaParameterCtx, param?: IN): OUT;
@@ -385,6 +622,7 @@ export abstract class JavaCstVisitorWithDefaults<IN, OUT>
385622
integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT;
386623
floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT;
387624
booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT;
625+
shiftOperator(cts: ShiftOperatorCtx, param?: IN): OUT;
388626
primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT;
389627
numericType(ctx: NumericTypeCtx, param?: IN): OUT;
390628
integralType(ctx: IntegralTypeCtx, param?: IN): OUT;
@@ -628,7 +866,7 @@ export abstract class JavaCstVisitorWithDefaults<IN, OUT>
628866
param?: IN
629867
): OUT;
630868
normalLambdaParameterList(ctx: NormalLambdaParameterListCtx, param?: IN): OUT;
631-
normalLambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT;
869+
normalLambdaParameter(ctx: NormalLambdaParameterCtx, param?: IN): OUT;
632870
regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT;
633871
lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT;
634872
conciseLambdaParameter(ctx: ConciseLambdaParameterCtx, param?: IN): OUT;
@@ -755,6 +993,16 @@ export type BooleanLiteralCtx = {
755993
False?: IToken[];
756994
};
757995

996+
export interface ShiftOperatorCstNode extends CstNode {
997+
name: "shiftOperator";
998+
children: ShiftOperatorCtx;
999+
}
1000+
1001+
export type ShiftOperatorCtx = {
1002+
Less?: IToken[];
1003+
Greater?: IToken[];
1004+
};
1005+
7581006
export interface PrimitiveTypeCstNode extends CstNode {
7591007
name: "primitiveType";
7601008
children: PrimitiveTypeCtx;
@@ -1801,17 +2049,16 @@ export interface CompilationUnitCstNode extends CstNode {
18012049

18022050
export type AbstractOrdinaryCompilationUnitCtx = {
18032051
ordinaryCompilationUnit: OrdinaryCompilationUnitCstNode[];
1804-
EOF: IToken[];
18052052
};
18062053

18072054
export type AbstractModularCompilationUnitCtx = {
18082055
modularCompilationUnit: OrdinaryCompilationUnitCstNode[];
1809-
EOF: IToken[];
18102056
};
18112057

18122058
export type CompilationUnitCtx =
18132059
| AbstractOrdinaryCompilationUnitCtx
1814-
| AbstractModularCompilationUnitCtx;
2060+
| AbstractModularCompilationUnitCtx
2061+
| { EOF: IToken[] };
18152062

18162063
export interface OrdinaryCompilationUnitCstNode extends CstNode {
18172064
name: "ordinaryCompilationUnit";
@@ -2894,10 +3141,10 @@ export type NormalLambdaParameterListCtx = {
28943141

28953142
export interface NormalLambdaParameterCstNode extends CstNode {
28963143
name: "normalLambdaParameter";
2897-
children: LambdaParameterCtx;
3144+
children: NormalLambdaParameterCtx;
28983145
}
28993146

2900-
export type LambdaParameterCtx = {
3147+
export type NormalLambdaParameterCtx = {
29013148
regularLambdaParameter?: RegularLambdaParameterCstNode[];
29023149
variableArityParameter?: VariableArityParameterCstNode[];
29033150
};
@@ -2967,8 +3214,7 @@ export type BinaryExpressionCtx = {
29673214
referenceType?: ReferenceTypeCstNode[];
29683215
AssignmentOperator?: IToken[];
29693216
expression?: ExpressionCstNode[];
2970-
Less?: IToken[];
2971-
Greater?: IToken[];
3217+
shiftOperator?: ShiftOperatorCstNode[];
29723218
BinaryOperator?: IToken[];
29733219
};
29743220

0 commit comments

Comments
 (0)