import { CstNode as ChevrotainCstNode, CstNodeLocation, ICstVisitor, IToken as ChevrotainIToken } from "chevrotain"; export interface CstNode extends ChevrotainCstNode { children: CstChildrenDictionary; leadingComments?: IToken[]; trailingComments?: IToken[]; ignore?: boolean; location: CstNodeLocation; } export interface IToken extends ChevrotainIToken { leadingComments?: IToken[]; trailingComments?: IToken[]; startOffset: number; startLine: number; startColumn: number; endOffset: number; endLine: number; endColumn: number; } export type CstElement = IToken | CstNode; export declare type CstChildrenDictionary = { [identifier: string]: CstElement[]; }; export function parse(text: string, startProduction?: string): CstNode; export const BaseJavaCstVisitor: JavaCstVisitorConstructor; export const BaseJavaCstVisitorWithDefaults: JavaCstVisitorWithDefaultsConstructor< any, any >; export abstract class JavaCstVisitor implements ICstVisitor { // No need to implement these two methods // Generic Visit method implemented by the Chevrotain Library visit(cstNode: CstNode | CstNode[], param?: IN): OUT; validateVisitor(): void; typeIdentifier(ctx: TypeIdentifierCtx, param?: IN): OUT; literal(ctx: LiteralCtx, param?: IN): OUT; integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT; floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT; booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT; primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT; numericType(ctx: NumericTypeCtx, param?: IN): OUT; integralType(ctx: IntegralTypeCtx, param?: IN): OUT; floatingPointType(ctx: FloatingPointTypeCtx, param?: IN): OUT; referenceType(ctx: ReferenceTypeCtx, param?: IN): OUT; classOrInterfaceType(ctx: ClassOrInterfaceTypeCtx, param?: IN): OUT; classType(ctx: ClassTypeCtx, param?: IN): OUT; interfaceType(ctx: InterfaceTypeCtx, param?: IN): OUT; typeVariable(ctx: TypeVariableCtx, param?: IN): OUT; dims(ctx: DimsCtx, param?: IN): OUT; typeParameter(ctx: TypeParameterCtx, param?: IN): OUT; typeParameterModifier(ctx: TypeParameterModifierCtx, param?: IN): OUT; typeBound(ctx: TypeBoundCtx, param?: IN): OUT; additionalBound(ctx: AdditionalBoundCtx, param?: IN): OUT; typeArguments(ctx: TypeArgumentsCtx, param?: IN): OUT; typeArgumentList(ctx: TypeArgumentListCtx, param?: IN): OUT; typeArgument(ctx: TypeArgumentCtx, param?: IN): OUT; wildcard(ctx: WildcardCtx, param?: IN): OUT; wildcardBounds(ctx: WildcardBoundsCtx, param?: IN): OUT; moduleName(ctx: ModuleNameCtx, param?: IN): OUT; packageName(ctx: PackageNameCtx, param?: IN): OUT; typeName(ctx: TypeNameCtx, param?: IN): OUT; expressionName(ctx: ExpressionNameCtx, param?: IN): OUT; methodName(ctx: MethodNameCtx, param?: IN): OUT; packageOrTypeName(ctx: PackageOrTypeNameCtx, param?: IN): OUT; ambiguousName(ctx: AmbiguousNameCtx, param?: IN): OUT; classDeclaration(ctx: ClassDeclarationCtx, param?: IN): OUT; normalClassDeclaration(ctx: NormalClassDeclarationCtx, param?: IN): OUT; classModifier(ctx: ClassModifierCtx, param?: IN): OUT; typeParameters(ctx: TypeParametersCtx, param?: IN): OUT; typeParameterList(ctx: TypeParameterListCtx, param?: IN): OUT; superclass(ctx: SuperclassCtx, param?: IN): OUT; superinterfaces(ctx: SuperinterfacesCtx, param?: IN): OUT; interfaceTypeList(ctx: InterfaceTypeListCtx, param?: IN): OUT; classPermits(ctx: ClassPermitsCtx, param?: IN): OUT; classBody(ctx: ClassBodyCtx, param?: IN): OUT; classBodyDeclaration(ctx: ClassBodyDeclarationCtx, param?: IN): OUT; classMemberDeclaration(ctx: ClassMemberDeclarationCtx, param?: IN): OUT; fieldDeclaration(ctx: FieldDeclarationCtx, param?: IN): OUT; fieldModifier(ctx: FieldModifierCtx, param?: IN): OUT; variableDeclaratorList(ctx: VariableDeclaratorListCtx, param?: IN): OUT; variableDeclarator(ctx: VariableDeclaratorCtx, param?: IN): OUT; variableDeclaratorId(ctx: VariableDeclaratorIdCtx, param?: IN): OUT; variableInitializer(ctx: VariableInitializerCtx, param?: IN): OUT; unannType(ctx: UnannTypeCtx, param?: IN): OUT; unannPrimitiveTypeWithOptionalDimsSuffix( ctx: UnannPrimitiveTypeWithOptionalDimsSuffixCtx, param?: IN ): OUT; unannPrimitiveType(ctx: UnannPrimitiveTypeCtx, param?: IN): OUT; unannReferenceType(ctx: UnannReferenceTypeCtx, param?: IN): OUT; unannClassOrInterfaceType(ctx: UnannClassOrInterfaceTypeCtx, param?: IN): OUT; unannClassType(ctx: UnannClassTypeCtx, param?: IN): OUT; unannInterfaceType(ctx: UnannInterfaceTypeCtx, param?: IN): OUT; unannTypeVariable(ctx: UnannTypeVariableCtx, param?: IN): OUT; methodDeclaration(ctx: MethodDeclarationCtx, param?: IN): OUT; methodModifier(ctx: MethodModifierCtx, param?: IN): OUT; methodHeader(ctx: MethodHeaderCtx, param?: IN): OUT; result(ctx: ResultCtx, param?: IN): OUT; methodDeclarator(ctx: MethodDeclaratorCtx, param?: IN): OUT; receiverParameter(ctx: ReceiverParameterCtx, param?: IN): OUT; formalParameterList(ctx: FormalParameterListCtx, param?: IN): OUT; formalParameter(ctx: FormalParameterCtx, param?: IN): OUT; variableParaRegularParameter( ctx: VariableParaRegularParameterCtx, param?: IN ): OUT; variableArityParameter(ctx: VariableArityParameterCtx, param?: IN): OUT; variableModifier(ctx: VariableModifierCtx, param?: IN): OUT; throws(ctx: ThrowsCtx, param?: IN): OUT; exceptionTypeList(ctx: ExceptionTypeListCtx, param?: IN): OUT; exceptionType(ctx: ExceptionTypeCtx, param?: IN): OUT; methodBody(ctx: MethodBodyCtx, param?: IN): OUT; instanceInitializer(ctx: InstanceInitializerCtx, param?: IN): OUT; staticInitializer(ctx: StaticInitializerCtx, param?: IN): OUT; constructorDeclaration(ctx: ConstructorDeclarationCtx, param?: IN): OUT; constructorModifier(ctx: ConstructorModifierCtx, param?: IN): OUT; constructorDeclarator(ctx: ConstructorDeclaratorCtx, param?: IN): OUT; simpleTypeName(ctx: SimpleTypeNameCtx, param?: IN): OUT; constructorBody(ctx: ConstructorBodyCtx, param?: IN): OUT; explicitConstructorInvocation( ctx: ExplicitConstructorInvocationCtx, param?: IN ): OUT; unqualifiedExplicitConstructorInvocation( ctx: UnqualifiedExplicitConstructorInvocationCtx, param?: IN ): OUT; qualifiedExplicitConstructorInvocation( ctx: QualifiedExplicitConstructorInvocationCtx, param?: IN ): OUT; enumDeclaration(ctx: EnumDeclarationCtx, param?: IN): OUT; enumBody(ctx: EnumBodyCtx, param?: IN): OUT; enumConstantList(ctx: EnumConstantListCtx, param?: IN): OUT; enumConstant(ctx: EnumConstantCtx, param?: IN): OUT; enumConstantModifier(ctx: EnumConstantModifierCtx, param?: IN): OUT; enumBodyDeclarations(ctx: EnumBodyDeclarationsCtx, param?: IN): OUT; recordDeclaration(ctx: RecordDeclarationCtx, param?: IN): OUT; recordHeader(ctx: RecordHeaderCtx, param?: IN): OUT; recordComponentList(ctx: RecordComponentListCtx, param?: IN): OUT; recordComponent(ctx: RecordComponentCtx, param?: IN): OUT; variableArityRecordComponent( ctx: VariableArityRecordComponentCtx, param?: IN ): OUT; recordComponentModifier(ctx: RecordComponentModifierCtx, param?: IN): OUT; recordBody(ctx: RecordBodyCtx, param?: IN): OUT; recordBodyDeclaration(ctx: RecordBodyDeclarationCtx, param?: IN): OUT; compactConstructorDeclaration( ctx: CompactConstructorDeclarationCtx, param?: IN ): OUT; isClassDeclaration(ctx: IsClassDeclarationCtx, param?: IN): OUT; identifyClassBodyDeclarationType( ctx: IdentifyClassBodyDeclarationTypeCtx, param?: IN ): OUT; isDims(ctx: IsDimsCtx, param?: IN): OUT; isCompactConstructorDeclaration( ctx: IsCompactConstructorDeclarationCtx, param?: IN ): OUT; compilationUnit(ctx: CompilationUnitCtx, param?: IN): OUT; ordinaryCompilationUnit(ctx: OrdinaryCompilationUnitCtx, param?: IN): OUT; modularCompilationUnit(ctx: ModularCompilationUnitCtx, param?: IN): OUT; packageDeclaration(ctx: PackageDeclarationCtx, param?: IN): OUT; packageModifier(ctx: PackageModifierCtx, param?: IN): OUT; importDeclaration(ctx: ImportDeclarationCtx, param?: IN): OUT; typeDeclaration(ctx: TypeDeclarationCtx, param?: IN): OUT; moduleDeclaration(ctx: ModuleDeclarationCtx, param?: IN): OUT; moduleDirective(ctx: ModuleDirectiveCtx, param?: IN): OUT; requiresModuleDirective(ctx: RequiresModuleDirectiveCtx, param?: IN): OUT; exportsModuleDirective(ctx: ExportsModuleDirectiveCtx, param?: IN): OUT; opensModuleDirective(ctx: OpensModuleDirectiveCtx, param?: IN): OUT; usesModuleDirective(ctx: UsesModuleDirectiveCtx, param?: IN): OUT; providesModuleDirective(ctx: ProvidesModuleDirectiveCtx, param?: IN): OUT; requiresModifier(ctx: RequiresModifierCtx, param?: IN): OUT; isModuleCompilationUnit(ctx: IsModuleCompilationUnitCtx, param?: IN): OUT; interfaceDeclaration(ctx: InterfaceDeclarationCtx, param?: IN): OUT; normalInterfaceDeclaration( ctx: NormalInterfaceDeclarationCtx, param?: IN ): OUT; interfaceModifier(ctx: InterfaceModifierCtx, param?: IN): OUT; extendsInterfaces(ctx: ExtendsInterfacesCtx, param?: IN): OUT; interfacePermits(ctx: InterfacePermitsCtx, param?: IN): OUT; interfaceBody(ctx: InterfaceBodyCtx, param?: IN): OUT; interfaceMemberDeclaration( ctx: InterfaceMemberDeclarationCtx, param?: IN ): OUT; constantDeclaration(ctx: ConstantDeclarationCtx, param?: IN): OUT; constantModifier(ctx: ConstantModifierCtx, param?: IN): OUT; interfaceMethodDeclaration( ctx: InterfaceMethodDeclarationCtx, param?: IN ): OUT; interfaceMethodModifier(ctx: InterfaceMethodModifierCtx, param?: IN): OUT; annotationTypeDeclaration(ctx: AnnotationTypeDeclarationCtx, param?: IN): OUT; annotationTypeBody(ctx: AnnotationTypeBodyCtx, param?: IN): OUT; annotationTypeMemberDeclaration( ctx: AnnotationTypeMemberDeclarationCtx, param?: IN ): OUT; annotationTypeElementDeclaration( ctx: AnnotationTypeElementDeclarationCtx, param?: IN ): OUT; annotationTypeElementModifier( ctx: AnnotationTypeElementModifierCtx, param?: IN ): OUT; defaultValue(ctx: DefaultValueCtx, param?: IN): OUT; annotation(ctx: AnnotationCtx, param?: IN): OUT; elementValuePairList(ctx: ElementValuePairListCtx, param?: IN): OUT; elementValuePair(ctx: ElementValuePairCtx, param?: IN): OUT; elementValue(ctx: ElementValueCtx, param?: IN): OUT; elementValueArrayInitializer( ctx: ElementValueArrayInitializerCtx, param?: IN ): OUT; elementValueList(ctx: ElementValueListCtx, param?: IN): OUT; identifyInterfaceBodyDeclarationType( ctx: IdentifyInterfaceBodyDeclarationTypeCtx, param?: IN ): OUT; identifyAnnotationBodyDeclarationType( ctx: IdentifyAnnotationBodyDeclarationTypeCtx, param?: IN ): OUT; isSimpleElementValueAnnotation( ctx: IsSimpleElementValueAnnotationCtx, param?: IN ): OUT; arrayInitializer(ctx: ArrayInitializerCtx, param?: IN): OUT; variableInitializerList(ctx: VariableInitializerListCtx, param?: IN): OUT; block(ctx: BlockCtx, param?: IN): OUT; blockStatements(ctx: BlockStatementsCtx, param?: IN): OUT; blockStatement(ctx: BlockStatementCtx, param?: IN): OUT; localVariableDeclarationStatement( ctx: LocalVariableDeclarationStatementCtx, param?: IN ): OUT; localVariableDeclaration(ctx: LocalVariableDeclarationCtx, param?: IN): OUT; localVariableType(ctx: LocalVariableTypeCtx, param?: IN): OUT; statement(ctx: StatementCtx, param?: IN): OUT; statementWithoutTrailingSubstatement( ctx: StatementWithoutTrailingSubstatementCtx, param?: IN ): OUT; emptyStatement(ctx: EmptyStatementCtx, param?: IN): OUT; labeledStatement(ctx: LabeledStatementCtx, param?: IN): OUT; expressionStatement(ctx: ExpressionStatementCtx, param?: IN): OUT; statementExpression(ctx: StatementExpressionCtx, param?: IN): OUT; ifStatement(ctx: IfStatementCtx, param?: IN): OUT; assertStatement(ctx: AssertStatementCtx, param?: IN): OUT; switchStatement(ctx: SwitchStatementCtx, param?: IN): OUT; switchBlock(ctx: SwitchBlockCtx, param?: IN): OUT; switchBlockStatementGroup(ctx: SwitchBlockStatementGroupCtx, param?: IN): OUT; switchLabel(ctx: SwitchLabelCtx, param?: IN): OUT; caseOrDefaultLabel(ctx: CaseOrDefaultLabelCtx, param?: IN): OUT; caseLabelElement(ctx: CaseLabelElementCtx, param?: IN): OUT; switchRule(ctx: SwitchRuleCtx, param?: IN): OUT; caseConstant(ctx: CaseConstantCtx, param?: IN): OUT; whileStatement(ctx: WhileStatementCtx, param?: IN): OUT; doStatement(ctx: DoStatementCtx, param?: IN): OUT; forStatement(ctx: ForStatementCtx, param?: IN): OUT; basicForStatement(ctx: BasicForStatementCtx, param?: IN): OUT; forInit(ctx: ForInitCtx, param?: IN): OUT; forUpdate(ctx: ForUpdateCtx, param?: IN): OUT; statementExpressionList(ctx: StatementExpressionListCtx, param?: IN): OUT; enhancedForStatement(ctx: EnhancedForStatementCtx, param?: IN): OUT; breakStatement(ctx: BreakStatementCtx, param?: IN): OUT; continueStatement(ctx: ContinueStatementCtx, param?: IN): OUT; returnStatement(ctx: ReturnStatementCtx, param?: IN): OUT; throwStatement(ctx: ThrowStatementCtx, param?: IN): OUT; synchronizedStatement(ctx: SynchronizedStatementCtx, param?: IN): OUT; tryStatement(ctx: TryStatementCtx, param?: IN): OUT; catches(ctx: CatchesCtx, param?: IN): OUT; catchClause(ctx: CatchClauseCtx, param?: IN): OUT; catchFormalParameter(ctx: CatchFormalParameterCtx, param?: IN): OUT; catchType(ctx: CatchTypeCtx, param?: IN): OUT; finally(ctx: FinallyCtx, param?: IN): OUT; tryWithResourcesStatement(ctx: TryWithResourcesStatementCtx, param?: IN): OUT; resourceSpecification(ctx: ResourceSpecificationCtx, param?: IN): OUT; resourceList(ctx: ResourceListCtx, param?: IN): OUT; resource(ctx: ResourceCtx, param?: IN): OUT; resourceInit(ctx: ResourceInitCtx, param?: IN): OUT; yieldStatement(ctx: YieldStatementCtx, param?: IN): OUT; variableAccess(ctx: VariableAccessCtx, param?: IN): OUT; isBasicForStatement(ctx: IsBasicForStatementCtx, param?: IN): OUT; isLocalVariableDeclaration( ctx: IsLocalVariableDeclarationCtx, param?: IN ): OUT; isClassicSwitchLabel(ctx: IsClassicSwitchLabelCtx, param?: IN): OUT; expression(ctx: ExpressionCtx, param?: IN): OUT; lambdaExpression(ctx: LambdaExpressionCtx, param?: IN): OUT; lambdaParameters(ctx: LambdaParametersCtx, param?: IN): OUT; lambdaParametersWithBraces( ctx: LambdaParametersWithBracesCtx, param?: IN ): OUT; lambdaParameterList(ctx: LambdaParameterListCtx, param?: IN): OUT; inferredLambdaParameterList( ctx: InferredLambdaParameterListCtx, param?: IN ): OUT; explicitLambdaParameterList( ctx: ExplicitLambdaParameterListCtx, param?: IN ): OUT; lambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT; regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT; lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT; lambdaBody(ctx: LambdaBodyCtx, param?: IN): OUT; ternaryExpression(ctx: TernaryExpressionCtx, param?: IN): OUT; binaryExpression(ctx: BinaryExpressionCtx, param?: IN): OUT; unaryExpression(ctx: UnaryExpressionCtx, param?: IN): OUT; unaryExpressionNotPlusMinus( ctx: UnaryExpressionNotPlusMinusCtx, param?: IN ): OUT; primary(ctx: PrimaryCtx, param?: IN): OUT; primaryPrefix(ctx: PrimaryPrefixCtx, param?: IN): OUT; primarySuffix(ctx: PrimarySuffixCtx, param?: IN): OUT; fqnOrRefType(ctx: FqnOrRefTypeCtx, param?: IN): OUT; fqnOrRefTypePartRest(ctx: FqnOrRefTypePartRestCtx, param?: IN): OUT; fqnOrRefTypePartCommon(ctx: FqnOrRefTypePartCommonCtx, param?: IN): OUT; fqnOrRefTypePartFirst(ctx: FqnOrRefTypePartFirstCtx, param?: IN): OUT; parenthesisExpression(ctx: ParenthesisExpressionCtx, param?: IN): OUT; castExpression(ctx: CastExpressionCtx, param?: IN): OUT; primitiveCastExpression(ctx: PrimitiveCastExpressionCtx, param?: IN): OUT; referenceTypeCastExpression( ctx: ReferenceTypeCastExpressionCtx, param?: IN ): OUT; newExpression(ctx: NewExpressionCtx, param?: IN): OUT; unqualifiedClassInstanceCreationExpression( ctx: UnqualifiedClassInstanceCreationExpressionCtx, param?: IN ): OUT; classOrInterfaceTypeToInstantiate( ctx: ClassOrInterfaceTypeToInstantiateCtx, param?: IN ): OUT; typeArgumentsOrDiamond(ctx: TypeArgumentsOrDiamondCtx, param?: IN): OUT; diamond(ctx: DiamondCtx, param?: IN): OUT; methodInvocationSuffix(ctx: MethodInvocationSuffixCtx, param?: IN): OUT; argumentList(ctx: ArgumentListCtx, param?: IN): OUT; arrayCreationExpression(ctx: ArrayCreationExpressionCtx, param?: IN): OUT; arrayCreationDefaultInitSuffix( ctx: ArrayCreationDefaultInitSuffixCtx, param?: IN ): OUT; arrayCreationExplicitInitSuffix( ctx: ArrayCreationExplicitInitSuffixCtx, param?: IN ): OUT; dimExprs(ctx: DimExprsCtx, param?: IN): OUT; dimExpr(ctx: DimExprCtx, param?: IN): OUT; classLiteralSuffix(ctx: ClassLiteralSuffixCtx, param?: IN): OUT; arrayAccessSuffix(ctx: ArrayAccessSuffixCtx, param?: IN): OUT; methodReferenceSuffix(ctx: MethodReferenceSuffixCtx, param?: IN): OUT; pattern(ctx: PatternCtx, param?: IN): OUT; typePattern(ctx: TypePatternCtx, param?: IN): OUT; identifyNewExpressionType(ctx: IdentifyNewExpressionTypeCtx, param?: IN): OUT; isLambdaExpression(ctx: IsLambdaExpressionCtx, param?: IN): OUT; isCastExpression(ctx: IsCastExpressionCtx, param?: IN): OUT; isPrimitiveCastExpression(ctx: IsPrimitiveCastExpressionCtx, param?: IN): OUT; isReferenceTypeCastExpression( ctx: IsReferenceTypeCastExpressionCtx, param?: IN ): OUT; isRefTypeInMethodRef(ctx: IsRefTypeInMethodRefCtx, param?: IN): OUT; } interface JavaCstVisitorConstructor { new (): JavaCstVisitor; } export abstract class JavaCstVisitorWithDefaults implements ICstVisitor { // No need to implement these two methods // Generic Visit method implemented by the Chevrotain Library visit(cstNode: CstNode | CstNode[], param?: IN): OUT; validateVisitor(): void; typeIdentifier(ctx: TypeIdentifierCtx, param?: IN): OUT; literal(ctx: LiteralCtx, param?: IN): OUT; integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT; floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT; booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT; primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT; numericType(ctx: NumericTypeCtx, param?: IN): OUT; integralType(ctx: IntegralTypeCtx, param?: IN): OUT; floatingPointType(ctx: FloatingPointTypeCtx, param?: IN): OUT; referenceType(ctx: ReferenceTypeCtx, param?: IN): OUT; classOrInterfaceType(ctx: ClassOrInterfaceTypeCtx, param?: IN): OUT; classType(ctx: ClassTypeCtx, param?: IN): OUT; interfaceType(ctx: InterfaceTypeCtx, param?: IN): OUT; typeVariable(ctx: TypeVariableCtx, param?: IN): OUT; dims(ctx: DimsCtx, param?: IN): OUT; typeParameter(ctx: TypeParameterCtx, param?: IN): OUT; typeParameterModifier(ctx: TypeParameterModifierCtx, param?: IN): OUT; typeBound(ctx: TypeBoundCtx, param?: IN): OUT; additionalBound(ctx: AdditionalBoundCtx, param?: IN): OUT; typeArguments(ctx: TypeArgumentsCtx, param?: IN): OUT; typeArgumentList(ctx: TypeArgumentListCtx, param?: IN): OUT; typeArgument(ctx: TypeArgumentCtx, param?: IN): OUT; wildcard(ctx: WildcardCtx, param?: IN): OUT; wildcardBounds(ctx: WildcardBoundsCtx, param?: IN): OUT; moduleName(ctx: ModuleNameCtx, param?: IN): OUT; packageName(ctx: PackageNameCtx, param?: IN): OUT; typeName(ctx: TypeNameCtx, param?: IN): OUT; expressionName(ctx: ExpressionNameCtx, param?: IN): OUT; methodName(ctx: MethodNameCtx, param?: IN): OUT; packageOrTypeName(ctx: PackageOrTypeNameCtx, param?: IN): OUT; ambiguousName(ctx: AmbiguousNameCtx, param?: IN): OUT; classDeclaration(ctx: ClassDeclarationCtx, param?: IN): OUT; normalClassDeclaration(ctx: NormalClassDeclarationCtx, param?: IN): OUT; classModifier(ctx: ClassModifierCtx, param?: IN): OUT; typeParameters(ctx: TypeParametersCtx, param?: IN): OUT; typeParameterList(ctx: TypeParameterListCtx, param?: IN): OUT; superclass(ctx: SuperclassCtx, param?: IN): OUT; superinterfaces(ctx: SuperinterfacesCtx, param?: IN): OUT; interfaceTypeList(ctx: InterfaceTypeListCtx, param?: IN): OUT; classPermits(ctx: ClassPermitsCtx, param?: IN): OUT; classBody(ctx: ClassBodyCtx, param?: IN): OUT; classBodyDeclaration(ctx: ClassBodyDeclarationCtx, param?: IN): OUT; classMemberDeclaration(ctx: ClassMemberDeclarationCtx, param?: IN): OUT; fieldDeclaration(ctx: FieldDeclarationCtx, param?: IN): OUT; fieldModifier(ctx: FieldModifierCtx, param?: IN): OUT; variableDeclaratorList(ctx: VariableDeclaratorListCtx, param?: IN): OUT; variableDeclarator(ctx: VariableDeclaratorCtx, param?: IN): OUT; variableDeclaratorId(ctx: VariableDeclaratorIdCtx, param?: IN): OUT; variableInitializer(ctx: VariableInitializerCtx, param?: IN): OUT; unannType(ctx: UnannTypeCtx, param?: IN): OUT; unannPrimitiveTypeWithOptionalDimsSuffix( ctx: UnannPrimitiveTypeWithOptionalDimsSuffixCtx, param?: IN ): OUT; unannPrimitiveType(ctx: UnannPrimitiveTypeCtx, param?: IN): OUT; unannReferenceType(ctx: UnannReferenceTypeCtx, param?: IN): OUT; unannClassOrInterfaceType(ctx: UnannClassOrInterfaceTypeCtx, param?: IN): OUT; unannClassType(ctx: UnannClassTypeCtx, param?: IN): OUT; unannInterfaceType(ctx: UnannInterfaceTypeCtx, param?: IN): OUT; unannTypeVariable(ctx: UnannTypeVariableCtx, param?: IN): OUT; methodDeclaration(ctx: MethodDeclarationCtx, param?: IN): OUT; methodModifier(ctx: MethodModifierCtx, param?: IN): OUT; methodHeader(ctx: MethodHeaderCtx, param?: IN): OUT; result(ctx: ResultCtx, param?: IN): OUT; methodDeclarator(ctx: MethodDeclaratorCtx, param?: IN): OUT; receiverParameter(ctx: ReceiverParameterCtx, param?: IN): OUT; formalParameterList(ctx: FormalParameterListCtx, param?: IN): OUT; formalParameter(ctx: FormalParameterCtx, param?: IN): OUT; variableParaRegularParameter( ctx: VariableParaRegularParameterCtx, param?: IN ): OUT; variableArityParameter(ctx: VariableArityParameterCtx, param?: IN): OUT; variableModifier(ctx: VariableModifierCtx, param?: IN): OUT; throws(ctx: ThrowsCtx, param?: IN): OUT; exceptionTypeList(ctx: ExceptionTypeListCtx, param?: IN): OUT; exceptionType(ctx: ExceptionTypeCtx, param?: IN): OUT; methodBody(ctx: MethodBodyCtx, param?: IN): OUT; instanceInitializer(ctx: InstanceInitializerCtx, param?: IN): OUT; staticInitializer(ctx: StaticInitializerCtx, param?: IN): OUT; constructorDeclaration(ctx: ConstructorDeclarationCtx, param?: IN): OUT; constructorModifier(ctx: ConstructorModifierCtx, param?: IN): OUT; constructorDeclarator(ctx: ConstructorDeclaratorCtx, param?: IN): OUT; simpleTypeName(ctx: SimpleTypeNameCtx, param?: IN): OUT; constructorBody(ctx: ConstructorBodyCtx, param?: IN): OUT; explicitConstructorInvocation( ctx: ExplicitConstructorInvocationCtx, param?: IN ): OUT; unqualifiedExplicitConstructorInvocation( ctx: UnqualifiedExplicitConstructorInvocationCtx, param?: IN ): OUT; qualifiedExplicitConstructorInvocation( ctx: QualifiedExplicitConstructorInvocationCtx, param?: IN ): OUT; enumDeclaration(ctx: EnumDeclarationCtx, param?: IN): OUT; enumBody(ctx: EnumBodyCtx, param?: IN): OUT; enumConstantList(ctx: EnumConstantListCtx, param?: IN): OUT; enumConstant(ctx: EnumConstantCtx, param?: IN): OUT; enumConstantModifier(ctx: EnumConstantModifierCtx, param?: IN): OUT; enumBodyDeclarations(ctx: EnumBodyDeclarationsCtx, param?: IN): OUT; recordDeclaration(ctx: RecordDeclarationCtx, param?: IN): OUT; recordHeader(ctx: RecordHeaderCtx, param?: IN): OUT; recordComponentList(ctx: RecordComponentListCtx, param?: IN): OUT; recordComponent(ctx: RecordComponentCtx, param?: IN): OUT; variableArityRecordComponent( ctx: VariableArityRecordComponentCtx, param?: IN ): OUT; recordComponentModifier(ctx: RecordComponentModifierCtx, param?: IN): OUT; recordBody(ctx: RecordBodyCtx, param?: IN): OUT; recordBodyDeclaration(ctx: RecordBodyDeclarationCtx, param?: IN): OUT; compactConstructorDeclaration( ctx: CompactConstructorDeclarationCtx, param?: IN ): OUT; isClassDeclaration(ctx: IsClassDeclarationCtx, param?: IN): OUT; identifyClassBodyDeclarationType( ctx: IdentifyClassBodyDeclarationTypeCtx, param?: IN ): OUT; isDims(ctx: IsDimsCtx, param?: IN): OUT; isCompactConstructorDeclaration( ctx: IsCompactConstructorDeclarationCtx, param?: IN ): OUT; compilationUnit(ctx: CompilationUnitCtx, param?: IN): OUT; ordinaryCompilationUnit(ctx: OrdinaryCompilationUnitCtx, param?: IN): OUT; modularCompilationUnit(ctx: ModularCompilationUnitCtx, param?: IN): OUT; packageDeclaration(ctx: PackageDeclarationCtx, param?: IN): OUT; packageModifier(ctx: PackageModifierCtx, param?: IN): OUT; importDeclaration(ctx: ImportDeclarationCtx, param?: IN): OUT; typeDeclaration(ctx: TypeDeclarationCtx, param?: IN): OUT; moduleDeclaration(ctx: ModuleDeclarationCtx, param?: IN): OUT; moduleDirective(ctx: ModuleDirectiveCtx, param?: IN): OUT; requiresModuleDirective(ctx: RequiresModuleDirectiveCtx, param?: IN): OUT; exportsModuleDirective(ctx: ExportsModuleDirectiveCtx, param?: IN): OUT; opensModuleDirective(ctx: OpensModuleDirectiveCtx, param?: IN): OUT; usesModuleDirective(ctx: UsesModuleDirectiveCtx, param?: IN): OUT; providesModuleDirective(ctx: ProvidesModuleDirectiveCtx, param?: IN): OUT; requiresModifier(ctx: RequiresModifierCtx, param?: IN): OUT; isModuleCompilationUnit(ctx: IsModuleCompilationUnitCtx, param?: IN): OUT; interfaceDeclaration(ctx: InterfaceDeclarationCtx, param?: IN): OUT; normalInterfaceDeclaration( ctx: NormalInterfaceDeclarationCtx, param?: IN ): OUT; interfaceModifier(ctx: InterfaceModifierCtx, param?: IN): OUT; extendsInterfaces(ctx: ExtendsInterfacesCtx, param?: IN): OUT; interfacePermits(ctx: InterfacePermitsCtx, param?: IN): OUT; interfaceBody(ctx: InterfaceBodyCtx, param?: IN): OUT; interfaceMemberDeclaration( ctx: InterfaceMemberDeclarationCtx, param?: IN ): OUT; constantDeclaration(ctx: ConstantDeclarationCtx, param?: IN): OUT; constantModifier(ctx: ConstantModifierCtx, param?: IN): OUT; interfaceMethodDeclaration( ctx: InterfaceMethodDeclarationCtx, param?: IN ): OUT; interfaceMethodModifier(ctx: InterfaceMethodModifierCtx, param?: IN): OUT; annotationTypeDeclaration(ctx: AnnotationTypeDeclarationCtx, param?: IN): OUT; annotationTypeBody(ctx: AnnotationTypeBodyCtx, param?: IN): OUT; annotationTypeMemberDeclaration( ctx: AnnotationTypeMemberDeclarationCtx, param?: IN ): OUT; annotationTypeElementDeclaration( ctx: AnnotationTypeElementDeclarationCtx, param?: IN ): OUT; annotationTypeElementModifier( ctx: AnnotationTypeElementModifierCtx, param?: IN ): OUT; defaultValue(ctx: DefaultValueCtx, param?: IN): OUT; annotation(ctx: AnnotationCtx, param?: IN): OUT; elementValuePairList(ctx: ElementValuePairListCtx, param?: IN): OUT; elementValuePair(ctx: ElementValuePairCtx, param?: IN): OUT; elementValue(ctx: ElementValueCtx, param?: IN): OUT; elementValueArrayInitializer( ctx: ElementValueArrayInitializerCtx, param?: IN ): OUT; elementValueList(ctx: ElementValueListCtx, param?: IN): OUT; identifyInterfaceBodyDeclarationType( ctx: IdentifyInterfaceBodyDeclarationTypeCtx, param?: IN ): OUT; identifyAnnotationBodyDeclarationType( ctx: IdentifyAnnotationBodyDeclarationTypeCtx, param?: IN ): OUT; isSimpleElementValueAnnotation( ctx: IsSimpleElementValueAnnotationCtx, param?: IN ): OUT; arrayInitializer(ctx: ArrayInitializerCtx, param?: IN): OUT; variableInitializerList(ctx: VariableInitializerListCtx, param?: IN): OUT; block(ctx: BlockCtx, param?: IN): OUT; blockStatements(ctx: BlockStatementsCtx, param?: IN): OUT; blockStatement(ctx: BlockStatementCtx, param?: IN): OUT; localVariableDeclarationStatement( ctx: LocalVariableDeclarationStatementCtx, param?: IN ): OUT; localVariableDeclaration(ctx: LocalVariableDeclarationCtx, param?: IN): OUT; localVariableType(ctx: LocalVariableTypeCtx, param?: IN): OUT; statement(ctx: StatementCtx, param?: IN): OUT; statementWithoutTrailingSubstatement( ctx: StatementWithoutTrailingSubstatementCtx, param?: IN ): OUT; emptyStatement(ctx: EmptyStatementCtx, param?: IN): OUT; labeledStatement(ctx: LabeledStatementCtx, param?: IN): OUT; expressionStatement(ctx: ExpressionStatementCtx, param?: IN): OUT; statementExpression(ctx: StatementExpressionCtx, param?: IN): OUT; ifStatement(ctx: IfStatementCtx, param?: IN): OUT; assertStatement(ctx: AssertStatementCtx, param?: IN): OUT; switchStatement(ctx: SwitchStatementCtx, param?: IN): OUT; switchBlock(ctx: SwitchBlockCtx, param?: IN): OUT; switchBlockStatementGroup(ctx: SwitchBlockStatementGroupCtx, param?: IN): OUT; switchLabel(ctx: SwitchLabelCtx, param?: IN): OUT; switchRule(ctx: SwitchRuleCtx, param?: IN): OUT; caseConstant(ctx: CaseConstantCtx, param?: IN): OUT; whileStatement(ctx: WhileStatementCtx, param?: IN): OUT; doStatement(ctx: DoStatementCtx, param?: IN): OUT; forStatement(ctx: ForStatementCtx, param?: IN): OUT; basicForStatement(ctx: BasicForStatementCtx, param?: IN): OUT; forInit(ctx: ForInitCtx, param?: IN): OUT; forUpdate(ctx: ForUpdateCtx, param?: IN): OUT; statementExpressionList(ctx: StatementExpressionListCtx, param?: IN): OUT; enhancedForStatement(ctx: EnhancedForStatementCtx, param?: IN): OUT; breakStatement(ctx: BreakStatementCtx, param?: IN): OUT; continueStatement(ctx: ContinueStatementCtx, param?: IN): OUT; returnStatement(ctx: ReturnStatementCtx, param?: IN): OUT; throwStatement(ctx: ThrowStatementCtx, param?: IN): OUT; synchronizedStatement(ctx: SynchronizedStatementCtx, param?: IN): OUT; tryStatement(ctx: TryStatementCtx, param?: IN): OUT; catches(ctx: CatchesCtx, param?: IN): OUT; catchClause(ctx: CatchClauseCtx, param?: IN): OUT; catchFormalParameter(ctx: CatchFormalParameterCtx, param?: IN): OUT; catchType(ctx: CatchTypeCtx, param?: IN): OUT; finally(ctx: FinallyCtx, param?: IN): OUT; tryWithResourcesStatement(ctx: TryWithResourcesStatementCtx, param?: IN): OUT; resourceSpecification(ctx: ResourceSpecificationCtx, param?: IN): OUT; resourceList(ctx: ResourceListCtx, param?: IN): OUT; resource(ctx: ResourceCtx, param?: IN): OUT; resourceInit(ctx: ResourceInitCtx, param?: IN): OUT; yieldStatement(ctx: YieldStatementCtx, param?: IN): OUT; variableAccess(ctx: VariableAccessCtx, param?: IN): OUT; isBasicForStatement(ctx: IsBasicForStatementCtx, param?: IN): OUT; isLocalVariableDeclaration( ctx: IsLocalVariableDeclarationCtx, param?: IN ): OUT; isClassicSwitchLabel(ctx: IsClassicSwitchLabelCtx, param?: IN): OUT; expression(ctx: ExpressionCtx, param?: IN): OUT; lambdaExpression(ctx: LambdaExpressionCtx, param?: IN): OUT; lambdaParameters(ctx: LambdaParametersCtx, param?: IN): OUT; lambdaParametersWithBraces( ctx: LambdaParametersWithBracesCtx, param?: IN ): OUT; lambdaParameterList(ctx: LambdaParameterListCtx, param?: IN): OUT; inferredLambdaParameterList( ctx: InferredLambdaParameterListCtx, param?: IN ): OUT; explicitLambdaParameterList( ctx: ExplicitLambdaParameterListCtx, param?: IN ): OUT; lambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT; regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT; lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT; lambdaBody(ctx: LambdaBodyCtx, param?: IN): OUT; ternaryExpression(ctx: TernaryExpressionCtx, param?: IN): OUT; binaryExpression(ctx: BinaryExpressionCtx, param?: IN): OUT; unaryExpression(ctx: UnaryExpressionCtx, param?: IN): OUT; unaryExpressionNotPlusMinus( ctx: UnaryExpressionNotPlusMinusCtx, param?: IN ): OUT; primary(ctx: PrimaryCtx, param?: IN): OUT; primaryPrefix(ctx: PrimaryPrefixCtx, param?: IN): OUT; primarySuffix(ctx: PrimarySuffixCtx, param?: IN): OUT; fqnOrRefType(ctx: FqnOrRefTypeCtx, param?: IN): OUT; fqnOrRefTypePartRest(ctx: FqnOrRefTypePartRestCtx, param?: IN): OUT; fqnOrRefTypePartCommon(ctx: FqnOrRefTypePartCommonCtx, param?: IN): OUT; fqnOrRefTypePartFirst(ctx: FqnOrRefTypePartFirstCtx, param?: IN): OUT; parenthesisExpression(ctx: ParenthesisExpressionCtx, param?: IN): OUT; castExpression(ctx: CastExpressionCtx, param?: IN): OUT; primitiveCastExpression(ctx: PrimitiveCastExpressionCtx, param?: IN): OUT; referenceTypeCastExpression( ctx: ReferenceTypeCastExpressionCtx, param?: IN ): OUT; newExpression(ctx: NewExpressionCtx, param?: IN): OUT; unqualifiedClassInstanceCreationExpression( ctx: UnqualifiedClassInstanceCreationExpressionCtx, param?: IN ): OUT; classOrInterfaceTypeToInstantiate( ctx: ClassOrInterfaceTypeToInstantiateCtx, param?: IN ): OUT; typeArgumentsOrDiamond(ctx: TypeArgumentsOrDiamondCtx, param?: IN): OUT; diamond(ctx: DiamondCtx, param?: IN): OUT; methodInvocationSuffix(ctx: MethodInvocationSuffixCtx, param?: IN): OUT; argumentList(ctx: ArgumentListCtx, param?: IN): OUT; arrayCreationExpression(ctx: ArrayCreationExpressionCtx, param?: IN): OUT; arrayCreationDefaultInitSuffix( ctx: ArrayCreationDefaultInitSuffixCtx, param?: IN ): OUT; arrayCreationExplicitInitSuffix( ctx: ArrayCreationExplicitInitSuffixCtx, param?: IN ): OUT; dimExprs(ctx: DimExprsCtx, param?: IN): OUT; dimExpr(ctx: DimExprCtx, param?: IN): OUT; classLiteralSuffix(ctx: ClassLiteralSuffixCtx, param?: IN): OUT; arrayAccessSuffix(ctx: ArrayAccessSuffixCtx, param?: IN): OUT; methodReferenceSuffix(ctx: MethodReferenceSuffixCtx, param?: IN): OUT; pattern(ctx: PatternCtx, param?: IN): OUT; typePattern(ctx: TypePatternCtx, param?: IN): OUT; identifyNewExpressionType(ctx: IdentifyNewExpressionTypeCtx, param?: IN): OUT; isLambdaExpression(ctx: IsLambdaExpressionCtx, param?: IN): OUT; isCastExpression(ctx: IsCastExpressionCtx, param?: IN): OUT; isPrimitiveCastExpression(ctx: IsPrimitiveCastExpressionCtx, param?: IN): OUT; isReferenceTypeCastExpression( ctx: IsReferenceTypeCastExpressionCtx, param?: IN ): OUT; isRefTypeInMethodRef(ctx: IsRefTypeInMethodRefCtx, param?: IN): OUT; } interface JavaCstVisitorWithDefaultsConstructor { new (): JavaCstVisitorWithDefaults; } export interface TypeIdentifierCstNode extends CstNode { name: "typeIdentifier"; children: TypeIdentifierCtx; } export type TypeIdentifierCtx = { Identifier: IToken[]; }; export interface LiteralCstNode extends CstNode { name: "literal"; children: LiteralCtx; } export type LiteralCtx = { integerLiteral?: IntegerLiteralCstNode[]; floatingPointLiteral?: FloatingPointLiteralCstNode[]; booleanLiteral?: BooleanLiteralCstNode[]; CharLiteral?: IToken[]; TextBlock?: IToken[]; StringLiteral?: IToken[]; Null?: IToken[]; }; export interface IntegerLiteralCstNode extends CstNode { name: "integerLiteral"; children: IntegerLiteralCtx; } export type IntegerLiteralCtx = { DecimalLiteral?: IToken[]; HexLiteral?: IToken[]; OctalLiteral?: IToken[]; BinaryLiteral?: IToken[]; }; export interface FloatingPointLiteralCstNode extends CstNode { name: "floatingPointLiteral"; children: FloatingPointLiteralCtx; } export type FloatingPointLiteralCtx = { FloatLiteral?: IToken[]; HexFloatLiteral?: IToken[]; }; export interface BooleanLiteralCstNode extends CstNode { name: "booleanLiteral"; children: BooleanLiteralCtx; } export type BooleanLiteralCtx = { True?: IToken[]; False?: IToken[]; }; export interface PrimitiveTypeCstNode extends CstNode { name: "primitiveType"; children: PrimitiveTypeCtx; } export type PrimitiveTypeCtx = { annotation?: AnnotationCstNode[]; numericType?: NumericTypeCstNode[]; Boolean?: IToken[]; }; export interface NumericTypeCstNode extends CstNode { name: "numericType"; children: NumericTypeCtx; } export type NumericTypeCtx = { integralType?: IntegralTypeCstNode[]; floatingPointType?: FloatingPointTypeCstNode[]; }; export interface IntegralTypeCstNode extends CstNode { name: "integralType"; children: IntegralTypeCtx; } export type IntegralTypeCtx = { Byte?: IToken[]; Short?: IToken[]; Int?: IToken[]; Long?: IToken[]; Char?: IToken[]; }; export interface FloatingPointTypeCstNode extends CstNode { name: "floatingPointType"; children: FloatingPointTypeCtx; } export type FloatingPointTypeCtx = { Float?: IToken[]; Double?: IToken[]; }; export interface ReferenceTypeCstNode extends CstNode { name: "referenceType"; children: ReferenceTypeCtx; } export type ReferenceTypeCtx = { annotation?: AnnotationCstNode[]; primitiveType?: PrimitiveTypeCstNode[]; dims?: DimsCstNode[]; classOrInterfaceType?: ClassOrInterfaceTypeCstNode[]; }; export interface ClassOrInterfaceTypeCstNode extends CstNode { name: "classOrInterfaceType"; children: ClassOrInterfaceTypeCtx; } export type ClassOrInterfaceTypeCtx = { classType: ClassTypeCstNode[]; }; export interface ClassTypeCstNode extends CstNode { name: "classType"; children: ClassTypeCtx; } export type ClassTypeCtx = { annotation?: AnnotationCstNode[]; Identifier: IToken[]; typeArguments?: TypeArgumentsCstNode[]; Dot?: IToken[]; }; export interface InterfaceTypeCstNode extends CstNode { name: "interfaceType"; children: InterfaceTypeCtx; } export type InterfaceTypeCtx = { classType: ClassTypeCstNode[]; }; export interface TypeVariableCstNode extends CstNode { name: "typeVariable"; children: TypeVariableCtx; } export type TypeVariableCtx = { annotation?: AnnotationCstNode[]; Identifier: IToken[]; }; export interface DimsCstNode extends CstNode { name: "dims"; children: DimsCtx; } export type DimsCtx = { annotation?: AnnotationCstNode[]; LSquare: IToken[]; RSquare: IToken[]; }; export interface TypeParameterCstNode extends CstNode { name: "typeParameter"; children: TypeParameterCtx; } export type TypeParameterCtx = { typeParameterModifier?: TypeParameterModifierCstNode[]; typeIdentifier: TypeIdentifierCstNode[]; typeBound?: TypeBoundCstNode[]; }; export interface TypeParameterModifierCstNode extends CstNode { name: "typeParameterModifier"; children: TypeParameterModifierCtx; } export type TypeParameterModifierCtx = { annotation: AnnotationCstNode[]; }; export interface TypeBoundCstNode extends CstNode { name: "typeBound"; children: TypeBoundCtx; } export type TypeBoundCtx = { Extends: IToken[]; classOrInterfaceType: ClassOrInterfaceTypeCstNode[]; additionalBound?: AdditionalBoundCstNode[]; }; export interface AdditionalBoundCstNode extends CstNode { name: "additionalBound"; children: AdditionalBoundCtx; } export type AdditionalBoundCtx = { And: IToken[]; interfaceType: InterfaceTypeCstNode[]; }; export interface TypeArgumentsCstNode extends CstNode { name: "typeArguments"; children: TypeArgumentsCtx; } export type TypeArgumentsCtx = { Less: IToken[]; typeArgumentList: TypeArgumentListCstNode[]; Greater: IToken[]; }; export interface TypeArgumentListCstNode extends CstNode { name: "typeArgumentList"; children: TypeArgumentListCtx; } export type TypeArgumentListCtx = { typeArgument: TypeArgumentCstNode[]; Comma?: IToken[]; }; export interface TypeArgumentCstNode extends CstNode { name: "typeArgument"; children: TypeArgumentCtx; } export type TypeArgumentCtx = { referenceType?: ReferenceTypeCstNode[]; wildcard?: WildcardCstNode[]; }; export interface WildcardCstNode extends CstNode { name: "wildcard"; children: WildcardCtx; } export type WildcardCtx = { annotation?: AnnotationCstNode[]; QuestionMark: IToken[]; wildcardBounds?: WildcardBoundsCstNode[]; }; export interface WildcardBoundsCstNode extends CstNode { name: "wildcardBounds"; children: WildcardBoundsCtx; } export type WildcardBoundsCtx = { Extends?: IToken[]; Super?: IToken[]; referenceType: ReferenceTypeCstNode[]; }; export interface ModuleNameCstNode extends CstNode { name: "moduleName"; children: ModuleNameCtx; } export type ModuleNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface PackageNameCstNode extends CstNode { name: "packageName"; children: PackageNameCtx; } export type PackageNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface TypeNameCstNode extends CstNode { name: "typeName"; children: TypeNameCtx; } export type TypeNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface ExpressionNameCstNode extends CstNode { name: "expressionName"; children: ExpressionNameCtx; } export type ExpressionNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface MethodNameCstNode extends CstNode { name: "methodName"; children: MethodNameCtx; } export type MethodNameCtx = { Identifier: IToken[]; }; export interface PackageOrTypeNameCstNode extends CstNode { name: "packageOrTypeName"; children: PackageOrTypeNameCtx; } export type PackageOrTypeNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface AmbiguousNameCstNode extends CstNode { name: "ambiguousName"; children: AmbiguousNameCtx; } export type AmbiguousNameCtx = { Identifier: IToken[]; Dot?: IToken[]; }; export interface ClassDeclarationCstNode extends CstNode { name: "classDeclaration"; children: ClassDeclarationCtx; } export type ClassDeclarationCtx = { classModifier?: ClassModifierCstNode[]; normalClassDeclaration?: NormalClassDeclarationCstNode[]; enumDeclaration?: EnumDeclarationCstNode[]; recordDeclaration?: RecordDeclarationCstNode[]; }; export interface NormalClassDeclarationCstNode extends CstNode { name: "normalClassDeclaration"; children: NormalClassDeclarationCtx; } export type NormalClassDeclarationCtx = { Class: IToken[]; typeIdentifier: TypeIdentifierCstNode[]; typeParameters?: TypeParametersCstNode[]; superclass?: SuperclassCstNode[]; superinterfaces?: SuperinterfacesCstNode[]; classPermits?: ClassPermitsCstNode[]; classBody: ClassBodyCstNode[]; }; export interface ClassModifierCstNode extends CstNode { name: "classModifier"; children: ClassModifierCtx; } export type ClassModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Static?: IToken[]; Final?: IToken[]; Sealed?: IToken[]; NonSealed?: IToken[]; Strictfp?: IToken[]; }; export interface TypeParametersCstNode extends CstNode { name: "typeParameters"; children: TypeParametersCtx; } export type TypeParametersCtx = { Less: IToken[]; typeParameterList: TypeParameterListCstNode[]; Greater: IToken[]; }; export interface TypeParameterListCstNode extends CstNode { name: "typeParameterList"; children: TypeParameterListCtx; } export type TypeParameterListCtx = { typeParameter: TypeParameterCstNode[]; Comma?: IToken[]; }; export interface SuperclassCstNode extends CstNode { name: "superclass"; children: SuperclassCtx; } export type SuperclassCtx = { Extends: IToken[]; classType: ClassTypeCstNode[]; }; export interface SuperinterfacesCstNode extends CstNode { name: "superinterfaces"; children: SuperinterfacesCtx; } export type SuperinterfacesCtx = { Implements: IToken[]; interfaceTypeList: InterfaceTypeListCstNode[]; }; export interface InterfaceTypeListCstNode extends CstNode { name: "interfaceTypeList"; children: InterfaceTypeListCtx; } export type InterfaceTypeListCtx = { interfaceType: InterfaceTypeCstNode[]; Comma?: IToken[]; }; export interface ClassPermitsCstNode extends CstNode { name: "classPermits"; children: ClassPermitsCtx; } export type ClassPermitsCtx = { Permits: IToken[]; typeName: TypeNameCstNode[]; Comma?: IToken[]; }; export interface ClassBodyCstNode extends CstNode { name: "classBody"; children: ClassBodyCtx; } export type ClassBodyCtx = { LCurly: IToken[]; classBodyDeclaration?: ClassBodyDeclarationCstNode[]; RCurly: IToken[]; }; export interface ClassBodyDeclarationCstNode extends CstNode { name: "classBodyDeclaration"; children: ClassBodyDeclarationCtx; } export type ClassBodyDeclarationCtx = { classMemberDeclaration?: ClassMemberDeclarationCstNode[]; instanceInitializer?: InstanceInitializerCstNode[]; staticInitializer?: StaticInitializerCstNode[]; constructorDeclaration?: ConstructorDeclarationCstNode[]; }; export interface ClassMemberDeclarationCstNode extends CstNode { name: "classMemberDeclaration"; children: ClassMemberDeclarationCtx; } export type ClassMemberDeclarationCtx = { fieldDeclaration?: FieldDeclarationCstNode[]; methodDeclaration?: MethodDeclarationCstNode[]; classDeclaration?: ClassDeclarationCstNode[]; interfaceDeclaration?: InterfaceDeclarationCstNode[]; Semicolon?: IToken[]; }; export interface FieldDeclarationCstNode extends CstNode { name: "fieldDeclaration"; children: FieldDeclarationCtx; } export type FieldDeclarationCtx = { fieldModifier?: FieldModifierCstNode[]; unannType: UnannTypeCstNode[]; variableDeclaratorList: VariableDeclaratorListCstNode[]; Semicolon: IToken[]; }; export interface FieldModifierCstNode extends CstNode { name: "fieldModifier"; children: FieldModifierCtx; } export type FieldModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Static?: IToken[]; Final?: IToken[]; Transient?: IToken[]; Volatile?: IToken[]; }; export interface VariableDeclaratorListCstNode extends CstNode { name: "variableDeclaratorList"; children: VariableDeclaratorListCtx; } export type VariableDeclaratorListCtx = { variableDeclarator: VariableDeclaratorCstNode[]; Comma?: IToken[]; }; export interface VariableDeclaratorCstNode extends CstNode { name: "variableDeclarator"; children: VariableDeclaratorCtx; } export type VariableDeclaratorCtx = { variableDeclaratorId: VariableDeclaratorIdCstNode[]; Equals?: IToken[]; variableInitializer?: VariableInitializerCstNode[]; }; export interface VariableDeclaratorIdCstNode extends CstNode { name: "variableDeclaratorId"; children: VariableDeclaratorIdCtx; } export type VariableDeclaratorIdCtx = { Identifier: IToken[]; dims?: DimsCstNode[]; }; export interface VariableInitializerCstNode extends CstNode { name: "variableInitializer"; children: VariableInitializerCtx; } export type VariableInitializerCtx = { expression?: ExpressionCstNode[]; arrayInitializer?: ArrayInitializerCstNode[]; }; export interface UnannTypeCstNode extends CstNode { name: "unannType"; children: UnannTypeCtx; } export type UnannTypeCtx = { unannPrimitiveTypeWithOptionalDimsSuffix?: UnannPrimitiveTypeWithOptionalDimsSuffixCstNode[]; unannReferenceType?: UnannReferenceTypeCstNode[]; }; export interface UnannPrimitiveTypeWithOptionalDimsSuffixCstNode extends CstNode { name: "unannPrimitiveTypeWithOptionalDimsSuffix"; children: UnannPrimitiveTypeWithOptionalDimsSuffixCtx; } export type UnannPrimitiveTypeWithOptionalDimsSuffixCtx = { unannPrimitiveType: UnannPrimitiveTypeCstNode[]; dims?: DimsCstNode[]; }; export interface UnannPrimitiveTypeCstNode extends CstNode { name: "unannPrimitiveType"; children: UnannPrimitiveTypeCtx; } export type UnannPrimitiveTypeCtx = { numericType?: NumericTypeCstNode[]; Boolean?: IToken[]; }; export interface UnannReferenceTypeCstNode extends CstNode { name: "unannReferenceType"; children: UnannReferenceTypeCtx; } export type UnannReferenceTypeCtx = { unannClassOrInterfaceType: UnannClassOrInterfaceTypeCstNode[]; dims?: DimsCstNode[]; }; export interface UnannClassOrInterfaceTypeCstNode extends CstNode { name: "unannClassOrInterfaceType"; children: UnannClassOrInterfaceTypeCtx; } export type UnannClassOrInterfaceTypeCtx = { unannClassType: UnannClassTypeCstNode[]; }; export interface UnannClassTypeCstNode extends CstNode { name: "unannClassType"; children: UnannClassTypeCtx; } export type UnannClassTypeCtx = { Identifier: IToken[]; typeArguments?: TypeArgumentsCstNode[]; Dot?: IToken[]; annotation?: AnnotationCstNode[]; }; export interface UnannInterfaceTypeCstNode extends CstNode { name: "unannInterfaceType"; children: UnannInterfaceTypeCtx; } export type UnannInterfaceTypeCtx = { unannClassType: UnannClassTypeCstNode[]; }; export interface UnannTypeVariableCstNode extends CstNode { name: "unannTypeVariable"; children: UnannTypeVariableCtx; } export type UnannTypeVariableCtx = { Identifier: IToken[]; }; export interface MethodDeclarationCstNode extends CstNode { name: "methodDeclaration"; children: MethodDeclarationCtx; } export type MethodDeclarationCtx = { methodModifier?: MethodModifierCstNode[]; methodHeader: MethodHeaderCstNode[]; methodBody: MethodBodyCstNode[]; }; export interface MethodModifierCstNode extends CstNode { name: "methodModifier"; children: MethodModifierCtx; } export type MethodModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Static?: IToken[]; Final?: IToken[]; Synchronized?: IToken[]; Native?: IToken[]; Strictfp?: IToken[]; }; export interface MethodHeaderCstNode extends CstNode { name: "methodHeader"; children: MethodHeaderCtx; } export type MethodHeaderCtx = { typeParameters?: TypeParametersCstNode[]; annotation?: AnnotationCstNode[]; result: ResultCstNode[]; methodDeclarator: MethodDeclaratorCstNode[]; throws?: ThrowsCstNode[]; }; export interface ResultCstNode extends CstNode { name: "result"; children: ResultCtx; } export type ResultCtx = { unannType?: UnannTypeCstNode[]; Void?: IToken[]; }; export interface MethodDeclaratorCstNode extends CstNode { name: "methodDeclarator"; children: MethodDeclaratorCtx; } export type MethodDeclaratorCtx = { Identifier: IToken[]; LBrace: IToken[]; formalParameterList?: FormalParameterListCstNode[]; RBrace: IToken[]; dims?: DimsCstNode[]; }; export interface ReceiverParameterCstNode extends CstNode { name: "receiverParameter"; children: ReceiverParameterCtx; } export type ReceiverParameterCtx = { annotation?: AnnotationCstNode[]; unannType: UnannTypeCstNode[]; Identifier?: IToken[]; Dot?: IToken[]; This: IToken[]; }; export interface FormalParameterListCstNode extends CstNode { name: "formalParameterList"; children: FormalParameterListCtx; } export type FormalParameterListCtx = { formalParameter: FormalParameterCstNode[]; Comma?: IToken[]; }; export interface FormalParameterCstNode extends CstNode { name: "formalParameter"; children: FormalParameterCtx; } export type FormalParameterCtx = { variableParaRegularParameter?: VariableParaRegularParameterCstNode[]; variableArityParameter?: VariableArityParameterCstNode[]; }; export interface VariableParaRegularParameterCstNode extends CstNode { name: "variableParaRegularParameter"; children: VariableParaRegularParameterCtx; } export type VariableParaRegularParameterCtx = { variableModifier?: VariableModifierCstNode[]; unannType: UnannTypeCstNode[]; variableDeclaratorId: VariableDeclaratorIdCstNode[]; }; export interface VariableArityParameterCstNode extends CstNode { name: "variableArityParameter"; children: VariableArityParameterCtx; } export type VariableArityParameterCtx = { variableModifier?: VariableModifierCstNode[]; unannType: UnannTypeCstNode[]; annotation?: AnnotationCstNode[]; DotDotDot: IToken[]; Identifier: IToken[]; }; export interface VariableModifierCstNode extends CstNode { name: "variableModifier"; children: VariableModifierCtx; } export type VariableModifierCtx = { annotation?: AnnotationCstNode[]; Final?: IToken[]; }; export interface ThrowsCstNode extends CstNode { name: "throws"; children: ThrowsCtx; } export type ThrowsCtx = { Throws: IToken[]; exceptionTypeList: ExceptionTypeListCstNode[]; }; export interface ExceptionTypeListCstNode extends CstNode { name: "exceptionTypeList"; children: ExceptionTypeListCtx; } export type ExceptionTypeListCtx = { exceptionType: ExceptionTypeCstNode[]; Comma?: IToken[]; }; export interface ExceptionTypeCstNode extends CstNode { name: "exceptionType"; children: ExceptionTypeCtx; } export type ExceptionTypeCtx = { classType: ClassTypeCstNode[]; }; export interface MethodBodyCstNode extends CstNode { name: "methodBody"; children: MethodBodyCtx; } export type MethodBodyCtx = { block?: BlockCstNode[]; Semicolon?: IToken[]; }; export interface InstanceInitializerCstNode extends CstNode { name: "instanceInitializer"; children: InstanceInitializerCtx; } export type InstanceInitializerCtx = { block: BlockCstNode[]; }; export interface StaticInitializerCstNode extends CstNode { name: "staticInitializer"; children: StaticInitializerCtx; } export type StaticInitializerCtx = { Static: IToken[]; block: BlockCstNode[]; }; export interface ConstructorDeclarationCstNode extends CstNode { name: "constructorDeclaration"; children: ConstructorDeclarationCtx; } export type ConstructorDeclarationCtx = { constructorModifier?: ConstructorModifierCstNode[]; constructorDeclarator: ConstructorDeclaratorCstNode[]; throws?: ThrowsCstNode[]; constructorBody: ConstructorBodyCstNode[]; }; export interface ConstructorModifierCstNode extends CstNode { name: "constructorModifier"; children: ConstructorModifierCtx; } export type ConstructorModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; }; export interface ConstructorDeclaratorCstNode extends CstNode { name: "constructorDeclarator"; children: ConstructorDeclaratorCtx; } export type ConstructorDeclaratorCtx = { typeParameters?: TypeParametersCstNode[]; simpleTypeName: SimpleTypeNameCstNode[]; LBrace: IToken[]; receiverParameter?: ReceiverParameterCstNode[]; Comma?: IToken[]; formalParameterList?: FormalParameterListCstNode[]; RBrace: IToken[]; }; export interface SimpleTypeNameCstNode extends CstNode { name: "simpleTypeName"; children: SimpleTypeNameCtx; } export type SimpleTypeNameCtx = { Identifier: IToken[]; }; export interface ConstructorBodyCstNode extends CstNode { name: "constructorBody"; children: ConstructorBodyCtx; } export type ConstructorBodyCtx = { LCurly: IToken[]; explicitConstructorInvocation?: ExplicitConstructorInvocationCstNode[]; blockStatements?: BlockStatementsCstNode[]; RCurly: IToken[]; }; export interface ExplicitConstructorInvocationCstNode extends CstNode { name: "explicitConstructorInvocation"; children: ExplicitConstructorInvocationCtx; } export type ExplicitConstructorInvocationCtx = { unqualifiedExplicitConstructorInvocation?: UnqualifiedExplicitConstructorInvocationCstNode[]; qualifiedExplicitConstructorInvocation?: QualifiedExplicitConstructorInvocationCstNode[]; }; export interface UnqualifiedExplicitConstructorInvocationCstNode extends CstNode { name: "unqualifiedExplicitConstructorInvocation"; children: UnqualifiedExplicitConstructorInvocationCtx; } export type UnqualifiedExplicitConstructorInvocationCtx = { typeArguments?: TypeArgumentsCstNode[]; This?: IToken[]; Super?: IToken[]; LBrace: IToken[]; argumentList?: ArgumentListCstNode[]; RBrace: IToken[]; Semicolon: IToken[]; }; export interface QualifiedExplicitConstructorInvocationCstNode extends CstNode { name: "qualifiedExplicitConstructorInvocation"; children: QualifiedExplicitConstructorInvocationCtx; } export type QualifiedExplicitConstructorInvocationCtx = { expressionName: ExpressionNameCstNode[]; Dot: IToken[]; typeArguments?: TypeArgumentsCstNode[]; Super: IToken[]; LBrace: IToken[]; argumentList?: ArgumentListCstNode[]; RBrace: IToken[]; Semicolon: IToken[]; }; export interface EnumDeclarationCstNode extends CstNode { name: "enumDeclaration"; children: EnumDeclarationCtx; } export type EnumDeclarationCtx = { classModifier?: ClassModifierCstNode[]; Enum: IToken[]; typeIdentifier: TypeIdentifierCstNode[]; superinterfaces?: SuperinterfacesCstNode[]; enumBody: EnumBodyCstNode[]; }; export interface EnumBodyCstNode extends CstNode { name: "enumBody"; children: EnumBodyCtx; } export type EnumBodyCtx = { LCurly: IToken[]; enumConstantList?: EnumConstantListCstNode[]; Comma?: IToken[]; enumBodyDeclarations?: EnumBodyDeclarationsCstNode[]; RCurly: IToken[]; }; export interface EnumConstantListCstNode extends CstNode { name: "enumConstantList"; children: EnumConstantListCtx; } export type EnumConstantListCtx = { enumConstant: EnumConstantCstNode[]; Comma?: IToken[]; }; export interface EnumConstantCstNode extends CstNode { name: "enumConstant"; children: EnumConstantCtx; } export type EnumConstantCtx = { enumConstantModifier?: EnumConstantModifierCstNode[]; Identifier: IToken[]; LBrace?: IToken[]; argumentList?: ArgumentListCstNode[]; RBrace?: IToken[]; classBody?: ClassBodyCstNode[]; }; export interface EnumConstantModifierCstNode extends CstNode { name: "enumConstantModifier"; children: EnumConstantModifierCtx; } export type EnumConstantModifierCtx = { annotation: AnnotationCstNode[]; }; export interface EnumBodyDeclarationsCstNode extends CstNode { name: "enumBodyDeclarations"; children: EnumBodyDeclarationsCtx; } export type EnumBodyDeclarationsCtx = { Semicolon: IToken[]; classBodyDeclaration?: ClassBodyDeclarationCstNode[]; }; export interface RecordDeclarationCstNode extends CstNode { name: "recordDeclaration"; children: RecordDeclarationCtx; } export type RecordDeclarationCtx = { Record: IToken[]; typeIdentifier: TypeIdentifierCstNode[]; typeParameters?: TypeParametersCstNode[]; recordHeader: RecordHeaderCstNode[]; superinterfaces?: SuperinterfacesCstNode[]; recordBody: RecordBodyCstNode[]; }; export interface RecordHeaderCstNode extends CstNode { name: "recordHeader"; children: RecordHeaderCtx; } export type RecordHeaderCtx = { LBrace: IToken[]; recordComponentList?: RecordComponentListCstNode[]; RBrace: IToken[]; }; export interface RecordComponentListCstNode extends CstNode { name: "recordComponentList"; children: RecordComponentListCtx; } export type RecordComponentListCtx = { recordComponent: RecordComponentCstNode[]; Comma?: IToken[]; }; export interface RecordComponentCstNode extends CstNode { name: "recordComponent"; children: RecordComponentCtx; } export type RecordComponentCtx = { recordComponentModifier?: RecordComponentModifierCstNode[]; unannType: UnannTypeCstNode[]; Identifier?: IToken[]; variableArityRecordComponent?: VariableArityRecordComponentCstNode[]; }; export interface VariableArityRecordComponentCstNode extends CstNode { name: "variableArityRecordComponent"; children: VariableArityRecordComponentCtx; } export type VariableArityRecordComponentCtx = { annotation?: AnnotationCstNode[]; DotDotDot: IToken[]; Identifier: IToken[]; }; export interface RecordComponentModifierCstNode extends CstNode { name: "recordComponentModifier"; children: RecordComponentModifierCtx; } export type RecordComponentModifierCtx = { annotation: AnnotationCstNode[]; }; export interface RecordBodyCstNode extends CstNode { name: "recordBody"; children: RecordBodyCtx; } export type RecordBodyCtx = { LCurly: IToken[]; recordBodyDeclaration?: RecordBodyDeclarationCstNode[]; RCurly: IToken[]; }; export interface RecordBodyDeclarationCstNode extends CstNode { name: "recordBodyDeclaration"; children: RecordBodyDeclarationCtx; } export type RecordBodyDeclarationCtx = { compactConstructorDeclaration?: CompactConstructorDeclarationCstNode[]; classBodyDeclaration?: ClassBodyDeclarationCstNode[]; }; export interface CompactConstructorDeclarationCstNode extends CstNode { name: "compactConstructorDeclaration"; children: CompactConstructorDeclarationCtx; } export type CompactConstructorDeclarationCtx = { constructorModifier?: ConstructorModifierCstNode[]; simpleTypeName: SimpleTypeNameCstNode[]; constructorBody: ConstructorBodyCstNode[]; }; export interface IsClassDeclarationCstNode extends CstNode { name: "isClassDeclaration"; children: IsClassDeclarationCtx; } export type IsClassDeclarationCtx = { Semicolon?: IToken[]; classModifier?: ClassModifierCstNode[]; }; export interface IdentifyClassBodyDeclarationTypeCstNode extends CstNode { name: "identifyClassBodyDeclarationType"; children: IdentifyClassBodyDeclarationTypeCtx; } export type IdentifyClassBodyDeclarationTypeCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Static?: IToken[]; Final?: IToken[]; Transient?: IToken[]; Volatile?: IToken[]; Synchronized?: IToken[]; Native?: IToken[]; Strictfp?: IToken[]; unannType: UnannTypeCstNode[]; }; export interface IsDimsCstNode extends CstNode { name: "isDims"; children: IsDimsCtx; } export type IsDimsCtx = { At?: IToken[]; typeName?: TypeNameCstNode[]; LBrace?: IToken[]; elementValuePairList?: ElementValuePairListCstNode[]; elementValue?: ElementValueCstNode[]; RBrace?: IToken[]; }; export interface IsCompactConstructorDeclarationCstNode extends CstNode { name: "isCompactConstructorDeclaration"; children: IsCompactConstructorDeclarationCtx; } export type IsCompactConstructorDeclarationCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; simpleTypeName: SimpleTypeNameCstNode[]; LCurly: IToken[]; }; export interface CompilationUnitCstNode extends CstNode { name: "compilationUnit"; children: CompilationUnitCtx; } export type AbstractOrdinaryCompilationUnitCtx = { ordinaryCompilationUnit: OrdinaryCompilationUnitCstNode[]; EOF: IToken[]; }; export type AbstractModularCompilationUnitCtx = { modularCompilationUnit: OrdinaryCompilationUnitCstNode[]; EOF: IToken[]; }; export type CompilationUnitCtx = | AbstractOrdinaryCompilationUnitCtx | AbstractModularCompilationUnitCtx; export interface OrdinaryCompilationUnitCstNode extends CstNode { name: "ordinaryCompilationUnit"; children: OrdinaryCompilationUnitCtx; } export type OrdinaryCompilationUnitCtx = { packageDeclaration?: PackageDeclarationCstNode[]; importDeclaration?: ImportDeclarationCstNode[]; typeDeclaration?: TypeDeclarationCstNode[]; }; export interface ModularCompilationUnitCstNode extends CstNode { name: "modularCompilationUnit"; children: ModularCompilationUnitCtx; } export type ModularCompilationUnitCtx = { importDeclaration?: ImportDeclarationCstNode[]; moduleDeclaration: ModuleDeclarationCstNode[]; }; export interface PackageDeclarationCstNode extends CstNode { name: "packageDeclaration"; children: PackageDeclarationCtx; } export type PackageDeclarationCtx = { packageModifier?: PackageModifierCstNode[]; Package: IToken[]; Identifier: IToken[]; Dot?: IToken[]; Semicolon: IToken[]; }; export interface PackageModifierCstNode extends CstNode { name: "packageModifier"; children: PackageModifierCtx; } export type PackageModifierCtx = { annotation: AnnotationCstNode[]; }; export interface ImportDeclarationCstNode extends CstNode { name: "importDeclaration"; children: ImportDeclarationCtx; } export type ImportDeclarationCtx = { Import?: IToken[]; Static?: IToken[]; packageOrTypeName?: PackageOrTypeNameCstNode[]; Dot?: IToken[]; Star?: IToken[]; Semicolon?: IToken[]; emptyStatement?: EmptyStatementCstNode[]; }; export interface TypeDeclarationCstNode extends CstNode { name: "typeDeclaration"; children: TypeDeclarationCtx; } export type TypeDeclarationCtx = { classDeclaration?: ClassDeclarationCstNode[]; interfaceDeclaration?: InterfaceDeclarationCstNode[]; Semicolon?: IToken[]; }; export interface ModuleDeclarationCstNode extends CstNode { name: "moduleDeclaration"; children: ModuleDeclarationCtx; } export type ModuleDeclarationCtx = { annotation?: AnnotationCstNode[]; Open?: IToken[]; Module: IToken[]; Identifier: IToken[]; Dot?: IToken[]; LCurly: IToken[]; moduleDirective?: ModuleDirectiveCstNode[]; RCurly: IToken[]; }; export interface ModuleDirectiveCstNode extends CstNode { name: "moduleDirective"; children: ModuleDirectiveCtx; } export type ModuleDirectiveCtx = { requiresModuleDirective?: RequiresModuleDirectiveCstNode[]; exportsModuleDirective?: ExportsModuleDirectiveCstNode[]; opensModuleDirective?: OpensModuleDirectiveCstNode[]; usesModuleDirective?: UsesModuleDirectiveCstNode[]; providesModuleDirective?: ProvidesModuleDirectiveCstNode[]; }; export interface RequiresModuleDirectiveCstNode extends CstNode { name: "requiresModuleDirective"; children: RequiresModuleDirectiveCtx; } export type RequiresModuleDirectiveCtx = { Requires: IToken[]; requiresModifier?: RequiresModifierCstNode[]; moduleName: ModuleNameCstNode[]; Semicolon: IToken[]; }; export interface ExportsModuleDirectiveCstNode extends CstNode { name: "exportsModuleDirective"; children: ExportsModuleDirectiveCtx; } export type ExportsModuleDirectiveCtx = { Exports: IToken[]; packageName: PackageNameCstNode[]; To?: IToken[]; moduleName?: ModuleNameCstNode[]; Comma?: IToken[]; Semicolon: IToken[]; }; export interface OpensModuleDirectiveCstNode extends CstNode { name: "opensModuleDirective"; children: OpensModuleDirectiveCtx; } export type OpensModuleDirectiveCtx = { Opens: IToken[]; packageName: PackageNameCstNode[]; To?: IToken[]; moduleName?: ModuleNameCstNode[]; Comma?: IToken[]; Semicolon: IToken[]; }; export interface UsesModuleDirectiveCstNode extends CstNode { name: "usesModuleDirective"; children: UsesModuleDirectiveCtx; } export type UsesModuleDirectiveCtx = { Uses: IToken[]; typeName: TypeNameCstNode[]; Semicolon: IToken[]; }; export interface ProvidesModuleDirectiveCstNode extends CstNode { name: "providesModuleDirective"; children: ProvidesModuleDirectiveCtx; } export type ProvidesModuleDirectiveCtx = { Provides: IToken[]; typeName: TypeNameCstNode[]; With: IToken[]; Comma?: IToken[]; Semicolon: IToken[]; }; export interface RequiresModifierCstNode extends CstNode { name: "requiresModifier"; children: RequiresModifierCtx; } export type RequiresModifierCtx = { Transitive?: IToken[]; Static?: IToken[]; }; export interface IsModuleCompilationUnitCstNode extends CstNode { name: "isModuleCompilationUnit"; children: IsModuleCompilationUnitCtx; } export type IsModuleCompilationUnitCtx = { packageDeclaration?: PackageDeclarationCstNode[]; importDeclaration?: ImportDeclarationCstNode[]; annotation?: AnnotationCstNode[]; }; export interface InterfaceDeclarationCstNode extends CstNode { name: "interfaceDeclaration"; children: InterfaceDeclarationCtx; } export type InterfaceDeclarationCtx = { interfaceModifier?: InterfaceModifierCstNode[]; normalInterfaceDeclaration?: NormalInterfaceDeclarationCstNode[]; annotationTypeDeclaration?: AnnotationTypeDeclarationCstNode[]; }; export interface NormalInterfaceDeclarationCstNode extends CstNode { name: "normalInterfaceDeclaration"; children: NormalInterfaceDeclarationCtx; } export type NormalInterfaceDeclarationCtx = { Interface: IToken[]; typeIdentifier: TypeIdentifierCstNode[]; typeParameters?: TypeParametersCstNode[]; extendsInterfaces?: ExtendsInterfacesCstNode[]; interfacePermits?: InterfacePermitsCstNode[]; interfaceBody: InterfaceBodyCstNode[]; }; export interface InterfaceModifierCstNode extends CstNode { name: "interfaceModifier"; children: InterfaceModifierCtx; } export type InterfaceModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Static?: IToken[]; Sealed?: IToken[]; NonSealed?: IToken[]; Strictfp?: IToken[]; }; export interface ExtendsInterfacesCstNode extends CstNode { name: "extendsInterfaces"; children: ExtendsInterfacesCtx; } export type ExtendsInterfacesCtx = { Extends: IToken[]; interfaceTypeList: InterfaceTypeListCstNode[]; }; export interface InterfacePermitsCstNode extends CstNode { name: "interfacePermits"; children: InterfacePermitsCtx; } export type InterfacePermitsCtx = { Permits: IToken[]; typeName: TypeNameCstNode[]; Comma?: IToken[]; }; export interface InterfaceBodyCstNode extends CstNode { name: "interfaceBody"; children: InterfaceBodyCtx; } export type InterfaceBodyCtx = { LCurly: IToken[]; interfaceMemberDeclaration?: InterfaceMemberDeclarationCstNode[]; RCurly: IToken[]; }; export interface InterfaceMemberDeclarationCstNode extends CstNode { name: "interfaceMemberDeclaration"; children: InterfaceMemberDeclarationCtx; } export type InterfaceMemberDeclarationCtx = { constantDeclaration?: ConstantDeclarationCstNode[]; interfaceMethodDeclaration?: InterfaceMethodDeclarationCstNode[]; classDeclaration?: ClassDeclarationCstNode[]; interfaceDeclaration?: InterfaceDeclarationCstNode[]; Semicolon?: IToken[]; }; export interface ConstantDeclarationCstNode extends CstNode { name: "constantDeclaration"; children: ConstantDeclarationCtx; } export type ConstantDeclarationCtx = { constantModifier?: ConstantModifierCstNode[]; unannType: UnannTypeCstNode[]; variableDeclaratorList: VariableDeclaratorListCstNode[]; Semicolon: IToken[]; }; export interface ConstantModifierCstNode extends CstNode { name: "constantModifier"; children: ConstantModifierCtx; } export type ConstantModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Static?: IToken[]; Final?: IToken[]; }; export interface InterfaceMethodDeclarationCstNode extends CstNode { name: "interfaceMethodDeclaration"; children: InterfaceMethodDeclarationCtx; } export type InterfaceMethodDeclarationCtx = { interfaceMethodModifier?: InterfaceMethodModifierCstNode[]; methodHeader: MethodHeaderCstNode[]; methodBody: MethodBodyCstNode[]; }; export interface InterfaceMethodModifierCstNode extends CstNode { name: "interfaceMethodModifier"; children: InterfaceMethodModifierCtx; } export type InterfaceMethodModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Default?: IToken[]; Static?: IToken[]; Strictfp?: IToken[]; }; export interface AnnotationTypeDeclarationCstNode extends CstNode { name: "annotationTypeDeclaration"; children: AnnotationTypeDeclarationCtx; } export type AnnotationTypeDeclarationCtx = { At: IToken[]; Interface: IToken[]; typeIdentifier: TypeIdentifierCstNode[]; annotationTypeBody: AnnotationTypeBodyCstNode[]; }; export interface AnnotationTypeBodyCstNode extends CstNode { name: "annotationTypeBody"; children: AnnotationTypeBodyCtx; } export type AnnotationTypeBodyCtx = { LCurly: IToken[]; annotationTypeMemberDeclaration?: AnnotationTypeMemberDeclarationCstNode[]; RCurly: IToken[]; }; export interface AnnotationTypeMemberDeclarationCstNode extends CstNode { name: "annotationTypeMemberDeclaration"; children: AnnotationTypeMemberDeclarationCtx; } export type AnnotationTypeMemberDeclarationCtx = { annotationTypeElementDeclaration?: AnnotationTypeElementDeclarationCstNode[]; constantDeclaration?: ConstantDeclarationCstNode[]; classDeclaration?: ClassDeclarationCstNode[]; interfaceDeclaration?: InterfaceDeclarationCstNode[]; Semicolon?: IToken[]; }; export interface AnnotationTypeElementDeclarationCstNode extends CstNode { name: "annotationTypeElementDeclaration"; children: AnnotationTypeElementDeclarationCtx; } export type AnnotationTypeElementDeclarationCtx = { annotationTypeElementModifier?: AnnotationTypeElementModifierCstNode[]; unannType: UnannTypeCstNode[]; Identifier: IToken[]; LBrace: IToken[]; RBrace: IToken[]; dims?: DimsCstNode[]; defaultValue?: DefaultValueCstNode[]; Semicolon: IToken[]; }; export interface AnnotationTypeElementModifierCstNode extends CstNode { name: "annotationTypeElementModifier"; children: AnnotationTypeElementModifierCtx; } export type AnnotationTypeElementModifierCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Abstract?: IToken[]; }; export interface DefaultValueCstNode extends CstNode { name: "defaultValue"; children: DefaultValueCtx; } export type DefaultValueCtx = { Default: IToken[]; elementValue: ElementValueCstNode[]; }; export interface AnnotationCstNode extends CstNode { name: "annotation"; children: AnnotationCtx; } export type AnnotationCtx = { At: IToken[]; typeName: TypeNameCstNode[]; LBrace?: IToken[]; elementValuePairList?: ElementValuePairListCstNode[]; elementValue?: ElementValueCstNode[]; RBrace?: IToken[]; }; export interface ElementValuePairListCstNode extends CstNode { name: "elementValuePairList"; children: ElementValuePairListCtx; } export type ElementValuePairListCtx = { elementValuePair: ElementValuePairCstNode[]; Comma?: IToken[]; }; export interface ElementValuePairCstNode extends CstNode { name: "elementValuePair"; children: ElementValuePairCtx; } export type ElementValuePairCtx = { Identifier: IToken[]; Equals: IToken[]; elementValue: ElementValueCstNode[]; }; export interface ElementValueCstNode extends CstNode { name: "elementValue"; children: ElementValueCtx; } export type ElementValueCtx = { expression?: ExpressionCstNode[]; elementValueArrayInitializer?: ElementValueArrayInitializerCstNode[]; annotation?: AnnotationCstNode[]; }; export interface ElementValueArrayInitializerCstNode extends CstNode { name: "elementValueArrayInitializer"; children: ElementValueArrayInitializerCtx; } export type ElementValueArrayInitializerCtx = { LCurly: IToken[]; elementValueList?: ElementValueListCstNode[]; Comma?: IToken[]; RCurly: IToken[]; }; export interface ElementValueListCstNode extends CstNode { name: "elementValueList"; children: ElementValueListCtx; } export type ElementValueListCtx = { elementValue: ElementValueCstNode[]; Comma?: IToken[]; }; export interface IdentifyInterfaceBodyDeclarationTypeCstNode extends CstNode { name: "identifyInterfaceBodyDeclarationType"; children: IdentifyInterfaceBodyDeclarationTypeCtx; } export type IdentifyInterfaceBodyDeclarationTypeCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Static?: IToken[]; Final?: IToken[]; Abstract?: IToken[]; Default?: IToken[]; Strictfp?: IToken[]; unannType: UnannTypeCstNode[]; }; export interface IdentifyAnnotationBodyDeclarationTypeCstNode extends CstNode { name: "identifyAnnotationBodyDeclarationType"; children: IdentifyAnnotationBodyDeclarationTypeCtx; } export type IdentifyAnnotationBodyDeclarationTypeCtx = { annotation?: AnnotationCstNode[]; Public?: IToken[]; Protected?: IToken[]; Private?: IToken[]; Abstract?: IToken[]; Static?: IToken[]; Final?: IToken[]; Strictfp?: IToken[]; unannType: UnannTypeCstNode[]; }; export interface IsSimpleElementValueAnnotationCstNode extends CstNode { name: "isSimpleElementValueAnnotation"; children: IsSimpleElementValueAnnotationCtx; } export type IsSimpleElementValueAnnotationCtx = { annotation: AnnotationCstNode[]; }; export interface ArrayInitializerCstNode extends CstNode { name: "arrayInitializer"; children: ArrayInitializerCtx; } export type ArrayInitializerCtx = { LCurly: IToken[]; variableInitializerList?: VariableInitializerListCstNode[]; Comma?: IToken[]; RCurly: IToken[]; }; export interface VariableInitializerListCstNode extends CstNode { name: "variableInitializerList"; children: VariableInitializerListCtx; } export type VariableInitializerListCtx = { variableInitializer: VariableInitializerCstNode[]; Comma?: IToken[]; }; export interface BlockCstNode extends CstNode { name: "block"; children: BlockCtx; } export type BlockCtx = { LCurly: IToken[]; blockStatements?: BlockStatementsCstNode[]; RCurly: IToken[]; }; export interface BlockStatementsCstNode extends CstNode { name: "blockStatements"; children: BlockStatementsCtx; } export type BlockStatementsCtx = { blockStatement: BlockStatementCstNode[]; }; export interface BlockStatementCstNode extends CstNode { name: "blockStatement"; children: BlockStatementCtx; } export type BlockStatementCtx = { localVariableDeclarationStatement?: LocalVariableDeclarationStatementCstNode[]; classDeclaration?: ClassDeclarationCstNode[]; interfaceDeclaration?: InterfaceDeclarationCstNode[]; statement?: StatementCstNode[]; }; export interface LocalVariableDeclarationStatementCstNode extends CstNode { name: "localVariableDeclarationStatement"; children: LocalVariableDeclarationStatementCtx; } export type LocalVariableDeclarationStatementCtx = { localVariableDeclaration: LocalVariableDeclarationCstNode[]; Semicolon: IToken[]; }; export interface LocalVariableDeclarationCstNode extends CstNode { name: "localVariableDeclaration"; children: LocalVariableDeclarationCtx; } export type LocalVariableDeclarationCtx = { variableModifier?: VariableModifierCstNode[]; localVariableType: LocalVariableTypeCstNode[]; variableDeclaratorList: VariableDeclaratorListCstNode[]; }; export interface LocalVariableTypeCstNode extends CstNode { name: "localVariableType"; children: LocalVariableTypeCtx; } export type LocalVariableTypeCtx = { unannType?: UnannTypeCstNode[]; Var?: IToken[]; }; export interface StatementCstNode extends CstNode { name: "statement"; children: StatementCtx; } export type StatementCtx = { statementWithoutTrailingSubstatement?: StatementWithoutTrailingSubstatementCstNode[]; labeledStatement?: LabeledStatementCstNode[]; ifStatement?: IfStatementCstNode[]; whileStatement?: WhileStatementCstNode[]; forStatement?: ForStatementCstNode[]; }; export interface StatementWithoutTrailingSubstatementCstNode extends CstNode { name: "statementWithoutTrailingSubstatement"; children: StatementWithoutTrailingSubstatementCtx; } export type StatementWithoutTrailingSubstatementCtx = { block?: BlockCstNode[]; yieldStatement?: YieldStatementCstNode[]; emptyStatement?: EmptyStatementCstNode[]; expressionStatement?: ExpressionStatementCstNode[]; assertStatement?: AssertStatementCstNode[]; switchStatement?: SwitchStatementCstNode[]; doStatement?: DoStatementCstNode[]; breakStatement?: BreakStatementCstNode[]; continueStatement?: ContinueStatementCstNode[]; returnStatement?: ReturnStatementCstNode[]; synchronizedStatement?: SynchronizedStatementCstNode[]; throwStatement?: ThrowStatementCstNode[]; tryStatement?: TryStatementCstNode[]; }; export interface EmptyStatementCstNode extends CstNode { name: "emptyStatement"; children: EmptyStatementCtx; } export type EmptyStatementCtx = { Semicolon: IToken[]; }; export interface LabeledStatementCstNode extends CstNode { name: "labeledStatement"; children: LabeledStatementCtx; } export type LabeledStatementCtx = { Identifier: IToken[]; Colon: IToken[]; statement: StatementCstNode[]; }; export interface ExpressionStatementCstNode extends CstNode { name: "expressionStatement"; children: ExpressionStatementCtx; } export type ExpressionStatementCtx = { statementExpression: StatementExpressionCstNode[]; Semicolon: IToken[]; }; export interface StatementExpressionCstNode extends CstNode { name: "statementExpression"; children: StatementExpressionCtx; } export type StatementExpressionCtx = { expression: ExpressionCstNode[]; }; export interface IfStatementCstNode extends CstNode { name: "ifStatement"; children: IfStatementCtx; } export type IfStatementCtx = { If: IToken[]; LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; statement: StatementCstNode[]; Else?: IToken[]; }; export interface AssertStatementCstNode extends CstNode { name: "assertStatement"; children: AssertStatementCtx; } export type AssertStatementCtx = { Assert: IToken[]; expression: ExpressionCstNode[]; Colon?: IToken[]; Semicolon: IToken[]; }; export interface SwitchStatementCstNode extends CstNode { name: "switchStatement"; children: SwitchStatementCtx; } export type SwitchStatementCtx = { Switch: IToken[]; LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; switchBlock: SwitchBlockCstNode[]; }; export interface SwitchBlockCstNode extends CstNode { name: "switchBlock"; children: SwitchBlockCtx; } export type SwitchBlockCtx = { LCurly: IToken[]; switchBlockStatementGroup?: SwitchBlockStatementGroupCstNode[]; switchRule?: SwitchRuleCstNode[]; RCurly: IToken[]; }; export interface SwitchBlockStatementGroupCstNode extends CstNode { name: "switchBlockStatementGroup"; children: SwitchBlockStatementGroupCtx; } export type SwitchBlockStatementGroupCtx = { switchLabel: SwitchLabelCstNode[]; Colon: IToken[]; blockStatements: BlockStatementsCstNode[]; }; export interface SwitchLabelCstNode extends CstNode { name: "switchLabel"; children: SwitchLabelCtx; } export type SwitchLabelCtx = { caseOrDefaultLabel: CaseOrDefaultLabelCstNode[]; Colon?: IToken[]; }; export interface CaseOrDefaultLabelCstNode extends CstNode { name: "caseOrDefaultLabel"; children: CaseOrDefaultLabelCtx; } export type CaseOrDefaultLabelCtx = { Case?: IToken[]; caseLabelElement?: CaseLabelElementCstNode[]; Comma?: IToken[]; Default?: IToken[]; }; export interface CaseLabelElementCstNode extends CstNode { name: "caseLabelElement"; children: CaseLabelElementCtx; } export type CaseLabelElementCtx = { caseConstant?: CaseConstantCstNode[]; pattern?: PatternCstNode[]; Null?: IToken[]; Default?: IToken[]; }; export interface SwitchRuleCstNode extends CstNode { name: "switchRule"; children: SwitchRuleCtx; } export type SwitchRuleCtx = { switchLabel: SwitchLabelCstNode[]; Arrow: IToken[]; throwStatement?: ThrowStatementCstNode[]; block?: BlockCstNode[]; expression?: ExpressionCstNode[]; Semicolon?: IToken[]; }; export interface CaseConstantCstNode extends CstNode { name: "caseConstant"; children: CaseConstantCtx; } export type CaseConstantCtx = { ternaryExpression: TernaryExpressionCstNode[]; }; export interface WhileStatementCstNode extends CstNode { name: "whileStatement"; children: WhileStatementCtx; } export type WhileStatementCtx = { While: IToken[]; LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; statement: StatementCstNode[]; }; export interface DoStatementCstNode extends CstNode { name: "doStatement"; children: DoStatementCtx; } export type DoStatementCtx = { Do: IToken[]; statement: StatementCstNode[]; While: IToken[]; LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; Semicolon: IToken[]; }; export interface ForStatementCstNode extends CstNode { name: "forStatement"; children: ForStatementCtx; } export type ForStatementCtx = { basicForStatement?: BasicForStatementCstNode[]; enhancedForStatement?: EnhancedForStatementCstNode[]; }; export interface BasicForStatementCstNode extends CstNode { name: "basicForStatement"; children: BasicForStatementCtx; } export type BasicForStatementCtx = { For: IToken[]; LBrace: IToken[]; forInit?: ForInitCstNode[]; Semicolon: IToken[]; expression?: ExpressionCstNode[]; forUpdate?: ForUpdateCstNode[]; RBrace: IToken[]; statement: StatementCstNode[]; }; export interface ForInitCstNode extends CstNode { name: "forInit"; children: ForInitCtx; } export type ForInitCtx = { localVariableDeclaration?: LocalVariableDeclarationCstNode[]; statementExpressionList?: StatementExpressionListCstNode[]; }; export interface ForUpdateCstNode extends CstNode { name: "forUpdate"; children: ForUpdateCtx; } export type ForUpdateCtx = { statementExpressionList: StatementExpressionListCstNode[]; }; export interface StatementExpressionListCstNode extends CstNode { name: "statementExpressionList"; children: StatementExpressionListCtx; } export type StatementExpressionListCtx = { statementExpression: StatementExpressionCstNode[]; Comma?: IToken[]; }; export interface EnhancedForStatementCstNode extends CstNode { name: "enhancedForStatement"; children: EnhancedForStatementCtx; } export type EnhancedForStatementCtx = { For: IToken[]; LBrace: IToken[]; variableModifier?: VariableModifierCstNode[]; localVariableType: LocalVariableTypeCstNode[]; variableDeclaratorId: VariableDeclaratorIdCstNode[]; Colon: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; statement: StatementCstNode[]; }; export interface BreakStatementCstNode extends CstNode { name: "breakStatement"; children: BreakStatementCtx; } export type BreakStatementCtx = { Break: IToken[]; Identifier?: IToken[]; Semicolon: IToken[]; }; export interface ContinueStatementCstNode extends CstNode { name: "continueStatement"; children: ContinueStatementCtx; } export type ContinueStatementCtx = { Continue: IToken[]; Identifier?: IToken[]; Semicolon: IToken[]; }; export interface ReturnStatementCstNode extends CstNode { name: "returnStatement"; children: ReturnStatementCtx; } export type ReturnStatementCtx = { Return: IToken[]; expression?: ExpressionCstNode[]; Semicolon: IToken[]; }; export interface ThrowStatementCstNode extends CstNode { name: "throwStatement"; children: ThrowStatementCtx; } export type ThrowStatementCtx = { Throw: IToken[]; expression: ExpressionCstNode[]; Semicolon: IToken[]; }; export interface SynchronizedStatementCstNode extends CstNode { name: "synchronizedStatement"; children: SynchronizedStatementCtx; } export type SynchronizedStatementCtx = { Synchronized: IToken[]; LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; block: BlockCstNode[]; }; export interface TryStatementCstNode extends CstNode { name: "tryStatement"; children: TryStatementCtx; } export type TryStatementCtx = { Try?: IToken[]; block?: BlockCstNode[]; catches?: CatchesCstNode[]; finally?: FinallyCstNode[]; tryWithResourcesStatement?: TryWithResourcesStatementCstNode[]; }; export interface CatchesCstNode extends CstNode { name: "catches"; children: CatchesCtx; } export type CatchesCtx = { catchClause: CatchClauseCstNode[]; }; export interface CatchClauseCstNode extends CstNode { name: "catchClause"; children: CatchClauseCtx; } export type CatchClauseCtx = { Catch: IToken[]; LBrace: IToken[]; catchFormalParameter: CatchFormalParameterCstNode[]; RBrace: IToken[]; block: BlockCstNode[]; }; export interface CatchFormalParameterCstNode extends CstNode { name: "catchFormalParameter"; children: CatchFormalParameterCtx; } export type CatchFormalParameterCtx = { variableModifier?: VariableModifierCstNode[]; catchType: CatchTypeCstNode[]; variableDeclaratorId: VariableDeclaratorIdCstNode[]; }; export interface CatchTypeCstNode extends CstNode { name: "catchType"; children: CatchTypeCtx; } export type CatchTypeCtx = { unannClassType: UnannClassTypeCstNode[]; Or?: IToken[]; classType?: ClassTypeCstNode[]; }; export interface FinallyCstNode extends CstNode { name: "finally"; children: FinallyCtx; } export type FinallyCtx = { Finally: IToken[]; block: BlockCstNode[]; }; export interface TryWithResourcesStatementCstNode extends CstNode { name: "tryWithResourcesStatement"; children: TryWithResourcesStatementCtx; } export type TryWithResourcesStatementCtx = { Try: IToken[]; resourceSpecification: ResourceSpecificationCstNode[]; block: BlockCstNode[]; catches?: CatchesCstNode[]; finally?: FinallyCstNode[]; }; export interface ResourceSpecificationCstNode extends CstNode { name: "resourceSpecification"; children: ResourceSpecificationCtx; } export type ResourceSpecificationCtx = { LBrace: IToken[]; resourceList: ResourceListCstNode[]; Semicolon?: IToken[]; RBrace: IToken[]; }; export interface ResourceListCstNode extends CstNode { name: "resourceList"; children: ResourceListCtx; } export type ResourceListCtx = { resource: ResourceCstNode[]; Semicolon?: IToken[]; }; export interface ResourceCstNode extends CstNode { name: "resource"; children: ResourceCtx; } export type ResourceCtx = { resourceInit?: ResourceInitCstNode[]; variableAccess?: VariableAccessCstNode[]; }; export interface ResourceInitCstNode extends CstNode { name: "resourceInit"; children: ResourceInitCtx; } export type ResourceInitCtx = { variableModifier?: VariableModifierCstNode[]; localVariableType: LocalVariableTypeCstNode[]; Identifier: IToken[]; Equals: IToken[]; expression: ExpressionCstNode[]; }; export interface YieldStatementCstNode extends CstNode { name: "yieldStatement"; children: YieldStatementCtx; } export type YieldStatementCtx = { Yield: IToken[]; expression: ExpressionCstNode[]; Semicolon: IToken[]; }; export interface VariableAccessCstNode extends CstNode { name: "variableAccess"; children: VariableAccessCtx; } export type VariableAccessCtx = { primary: PrimaryCstNode[]; }; export interface IsBasicForStatementCstNode extends CstNode { name: "isBasicForStatement"; children: IsBasicForStatementCtx; } export type IsBasicForStatementCtx = { For: IToken[]; LBrace: IToken[]; forInit?: ForInitCstNode[]; Semicolon: IToken[]; }; export interface IsLocalVariableDeclarationCstNode extends CstNode { name: "isLocalVariableDeclaration"; children: IsLocalVariableDeclarationCtx; } export type IsLocalVariableDeclarationCtx = { variableModifier?: VariableModifierCstNode[]; localVariableType: LocalVariableTypeCstNode[]; variableDeclaratorId: VariableDeclaratorIdCstNode[]; }; export interface IsClassicSwitchLabelCstNode extends CstNode { name: "isClassicSwitchLabel"; children: IsClassicSwitchLabelCtx; } export type IsClassicSwitchLabelCtx = { switchLabel: SwitchLabelCstNode[]; Colon: IToken[]; }; export interface ExpressionCstNode extends CstNode { name: "expression"; children: ExpressionCtx; } export type ExpressionCtx = { lambdaExpression?: LambdaExpressionCstNode[]; ternaryExpression?: TernaryExpressionCstNode[]; }; export interface LambdaExpressionCstNode extends CstNode { name: "lambdaExpression"; children: LambdaExpressionCtx; } export type LambdaExpressionCtx = { lambdaParameters: LambdaParametersCstNode[]; Arrow: IToken[]; lambdaBody: LambdaBodyCstNode[]; }; export interface LambdaParametersCstNode extends CstNode { name: "lambdaParameters"; children: LambdaParametersCtx; } export type LambdaParametersCtx = { lambdaParametersWithBraces?: LambdaParametersWithBracesCstNode[]; Identifier?: IToken[]; }; export interface LambdaParametersWithBracesCstNode extends CstNode { name: "lambdaParametersWithBraces"; children: LambdaParametersWithBracesCtx; } export type LambdaParametersWithBracesCtx = { LBrace: IToken[]; lambdaParameterList?: LambdaParameterListCstNode[]; RBrace: IToken[]; }; export interface LambdaParameterListCstNode extends CstNode { name: "lambdaParameterList"; children: LambdaParameterListCtx; } export type LambdaParameterListCtx = { inferredLambdaParameterList?: InferredLambdaParameterListCstNode[]; explicitLambdaParameterList?: ExplicitLambdaParameterListCstNode[]; }; export interface InferredLambdaParameterListCstNode extends CstNode { name: "inferredLambdaParameterList"; children: InferredLambdaParameterListCtx; } export type InferredLambdaParameterListCtx = { Identifier: IToken[]; Comma?: IToken[]; }; export interface ExplicitLambdaParameterListCstNode extends CstNode { name: "explicitLambdaParameterList"; children: ExplicitLambdaParameterListCtx; } export type ExplicitLambdaParameterListCtx = { lambdaParameter: LambdaParameterCstNode[]; Comma?: IToken[]; }; export interface LambdaParameterCstNode extends CstNode { name: "lambdaParameter"; children: LambdaParameterCtx; } export type LambdaParameterCtx = { regularLambdaParameter?: RegularLambdaParameterCstNode[]; variableArityParameter?: VariableArityParameterCstNode[]; }; export interface RegularLambdaParameterCstNode extends CstNode { name: "regularLambdaParameter"; children: RegularLambdaParameterCtx; } export type RegularLambdaParameterCtx = { variableModifier?: VariableModifierCstNode[]; lambdaParameterType: LambdaParameterTypeCstNode[]; variableDeclaratorId: VariableDeclaratorIdCstNode[]; }; export interface LambdaParameterTypeCstNode extends CstNode { name: "lambdaParameterType"; children: LambdaParameterTypeCtx; } export type LambdaParameterTypeCtx = { unannType?: UnannTypeCstNode[]; Var?: IToken[]; }; export interface LambdaBodyCstNode extends CstNode { name: "lambdaBody"; children: LambdaBodyCtx; } export type LambdaBodyCtx = { expression?: ExpressionCstNode[]; block?: BlockCstNode[]; }; export interface TernaryExpressionCstNode extends CstNode { name: "ternaryExpression"; children: TernaryExpressionCtx; } export type TernaryExpressionCtx = { binaryExpression: BinaryExpressionCstNode[]; QuestionMark?: IToken[]; expression?: ExpressionCstNode[]; Colon?: IToken[]; }; export interface BinaryExpressionCstNode extends CstNode { name: "binaryExpression"; children: BinaryExpressionCtx; } export type BinaryExpressionCtx = { unaryExpression: UnaryExpressionCstNode[]; Instanceof?: IToken[]; pattern?: PatternCstNode[]; referenceType?: ReferenceTypeCstNode[]; AssignmentOperator?: IToken[]; expression?: ExpressionCstNode[]; Less?: IToken[]; Greater?: IToken[]; BinaryOperator?: IToken[]; }; export interface UnaryExpressionCstNode extends CstNode { name: "unaryExpression"; children: UnaryExpressionCtx; } export type UnaryExpressionCtx = { UnaryPrefixOperator?: IToken[]; primary: PrimaryCstNode[]; UnarySuffixOperator?: IToken[]; }; export interface UnaryExpressionNotPlusMinusCstNode extends CstNode { name: "unaryExpressionNotPlusMinus"; children: UnaryExpressionNotPlusMinusCtx; } export type UnaryExpressionNotPlusMinusCtx = { UnaryPrefixOperatorNotPlusMinus?: IToken[]; primary: PrimaryCstNode[]; UnarySuffixOperator?: IToken[]; }; export interface PrimaryCstNode extends CstNode { name: "primary"; children: PrimaryCtx; } export type PrimaryCtx = { primaryPrefix: PrimaryPrefixCstNode[]; primarySuffix?: PrimarySuffixCstNode[]; }; export interface PrimaryPrefixCstNode extends CstNode { name: "primaryPrefix"; children: PrimaryPrefixCtx; } export type PrimaryPrefixCtx = { literal?: LiteralCstNode[]; This?: IToken[]; Void?: IToken[]; unannPrimitiveTypeWithOptionalDimsSuffix?: UnannPrimitiveTypeWithOptionalDimsSuffixCstNode[]; fqnOrRefType?: FqnOrRefTypeCstNode[]; castExpression?: CastExpressionCstNode[]; parenthesisExpression?: ParenthesisExpressionCstNode[]; newExpression?: NewExpressionCstNode[]; switchStatement?: SwitchStatementCstNode[]; }; export interface PrimarySuffixCstNode extends CstNode { name: "primarySuffix"; children: PrimarySuffixCtx; } export type PrimarySuffixCtx = { Dot?: IToken[]; This?: IToken[]; unqualifiedClassInstanceCreationExpression?: UnqualifiedClassInstanceCreationExpressionCstNode[]; typeArguments?: TypeArgumentsCstNode[]; Identifier?: IToken[]; methodInvocationSuffix?: MethodInvocationSuffixCstNode[]; classLiteralSuffix?: ClassLiteralSuffixCstNode[]; arrayAccessSuffix?: ArrayAccessSuffixCstNode[]; methodReferenceSuffix?: MethodReferenceSuffixCstNode[]; }; export interface FqnOrRefTypeCstNode extends CstNode { name: "fqnOrRefType"; children: FqnOrRefTypeCtx; } export type FqnOrRefTypeCtx = { fqnOrRefTypePartFirst: FqnOrRefTypePartFirstCstNode[]; Dot?: IToken[]; fqnOrRefTypePartRest?: FqnOrRefTypePartRestCstNode[]; dims?: DimsCstNode[]; }; export interface FqnOrRefTypePartRestCstNode extends CstNode { name: "fqnOrRefTypePartRest"; children: FqnOrRefTypePartRestCtx; } export type FqnOrRefTypePartRestCtx = { annotation?: AnnotationCstNode[]; typeArguments?: TypeArgumentsCstNode[]; fqnOrRefTypePartCommon: FqnOrRefTypePartCommonCstNode[]; }; export interface FqnOrRefTypePartCommonCstNode extends CstNode { name: "fqnOrRefTypePartCommon"; children: FqnOrRefTypePartCommonCtx; } export type FqnOrRefTypePartCommonCtx = { Identifier?: IToken[]; Super?: IToken[]; typeArguments?: TypeArgumentsCstNode[]; }; export interface FqnOrRefTypePartFirstCstNode extends CstNode { name: "fqnOrRefTypePartFirst"; children: FqnOrRefTypePartFirstCtx; } export type FqnOrRefTypePartFirstCtx = { annotation?: AnnotationCstNode[]; fqnOrRefTypePartCommon: FqnOrRefTypePartCommonCstNode[]; }; export interface ParenthesisExpressionCstNode extends CstNode { name: "parenthesisExpression"; children: ParenthesisExpressionCtx; } export type ParenthesisExpressionCtx = { LBrace: IToken[]; expression: ExpressionCstNode[]; RBrace: IToken[]; }; export interface CastExpressionCstNode extends CstNode { name: "castExpression"; children: CastExpressionCtx; } export type CastExpressionCtx = { primitiveCastExpression?: PrimitiveCastExpressionCstNode[]; referenceTypeCastExpression?: ReferenceTypeCastExpressionCstNode[]; }; export interface PrimitiveCastExpressionCstNode extends CstNode { name: "primitiveCastExpression"; children: PrimitiveCastExpressionCtx; } export type PrimitiveCastExpressionCtx = { LBrace: IToken[]; primitiveType: PrimitiveTypeCstNode[]; RBrace: IToken[]; unaryExpression: UnaryExpressionCstNode[]; }; export interface ReferenceTypeCastExpressionCstNode extends CstNode { name: "referenceTypeCastExpression"; children: ReferenceTypeCastExpressionCtx; } export type ReferenceTypeCastExpressionCtx = { LBrace: IToken[]; referenceType: ReferenceTypeCstNode[]; additionalBound?: AdditionalBoundCstNode[]; RBrace: IToken[]; lambdaExpression?: LambdaExpressionCstNode[]; unaryExpressionNotPlusMinus?: UnaryExpressionNotPlusMinusCstNode[]; }; export interface NewExpressionCstNode extends CstNode { name: "newExpression"; children: NewExpressionCtx; } export type NewExpressionCtx = { arrayCreationExpression?: ArrayCreationExpressionCstNode[]; unqualifiedClassInstanceCreationExpression?: UnqualifiedClassInstanceCreationExpressionCstNode[]; }; export interface UnqualifiedClassInstanceCreationExpressionCstNode extends CstNode { name: "unqualifiedClassInstanceCreationExpression"; children: UnqualifiedClassInstanceCreationExpressionCtx; } export type UnqualifiedClassInstanceCreationExpressionCtx = { New: IToken[]; typeArguments?: TypeArgumentsCstNode[]; classOrInterfaceTypeToInstantiate: ClassOrInterfaceTypeToInstantiateCstNode[]; LBrace: IToken[]; argumentList?: ArgumentListCstNode[]; RBrace: IToken[]; classBody?: ClassBodyCstNode[]; }; export interface ClassOrInterfaceTypeToInstantiateCstNode extends CstNode { name: "classOrInterfaceTypeToInstantiate"; children: ClassOrInterfaceTypeToInstantiateCtx; } export type ClassOrInterfaceTypeToInstantiateCtx = { annotation?: AnnotationCstNode[]; Identifier: IToken[]; Dot?: IToken[]; typeArgumentsOrDiamond?: TypeArgumentsOrDiamondCstNode[]; }; export interface TypeArgumentsOrDiamondCstNode extends CstNode { name: "typeArgumentsOrDiamond"; children: TypeArgumentsOrDiamondCtx; } export type TypeArgumentsOrDiamondCtx = { diamond?: DiamondCstNode[]; typeArguments?: TypeArgumentsCstNode[]; }; export interface DiamondCstNode extends CstNode { name: "diamond"; children: DiamondCtx; } export type DiamondCtx = { Less: IToken[]; Greater: IToken[]; }; export interface MethodInvocationSuffixCstNode extends CstNode { name: "methodInvocationSuffix"; children: MethodInvocationSuffixCtx; } export type MethodInvocationSuffixCtx = { LBrace: IToken[]; argumentList?: ArgumentListCstNode[]; RBrace: IToken[]; }; export interface ArgumentListCstNode extends CstNode { name: "argumentList"; children: ArgumentListCtx; } export type ArgumentListCtx = { expression: ExpressionCstNode[]; Comma?: IToken[]; }; export interface ArrayCreationExpressionCstNode extends CstNode { name: "arrayCreationExpression"; children: ArrayCreationExpressionCtx; } export type ArrayCreationExpressionCtx = { New: IToken[]; primitiveType?: PrimitiveTypeCstNode[]; classOrInterfaceType?: ClassOrInterfaceTypeCstNode[]; arrayCreationDefaultInitSuffix?: ArrayCreationDefaultInitSuffixCstNode[]; arrayCreationExplicitInitSuffix?: ArrayCreationExplicitInitSuffixCstNode[]; }; export interface ArrayCreationDefaultInitSuffixCstNode extends CstNode { name: "arrayCreationDefaultInitSuffix"; children: ArrayCreationDefaultInitSuffixCtx; } export type ArrayCreationDefaultInitSuffixCtx = { dimExprs: DimExprsCstNode[]; dims?: DimsCstNode[]; }; export interface ArrayCreationExplicitInitSuffixCstNode extends CstNode { name: "arrayCreationExplicitInitSuffix"; children: ArrayCreationExplicitInitSuffixCtx; } export type ArrayCreationExplicitInitSuffixCtx = { dims: DimsCstNode[]; arrayInitializer: ArrayInitializerCstNode[]; }; export interface DimExprsCstNode extends CstNode { name: "dimExprs"; children: DimExprsCtx; } export type DimExprsCtx = { dimExpr: DimExprCstNode[]; }; export interface DimExprCstNode extends CstNode { name: "dimExpr"; children: DimExprCtx; } export type DimExprCtx = { annotation?: AnnotationCstNode[]; LSquare: IToken[]; expression: ExpressionCstNode[]; RSquare: IToken[]; }; export interface ClassLiteralSuffixCstNode extends CstNode { name: "classLiteralSuffix"; children: ClassLiteralSuffixCtx; } export type ClassLiteralSuffixCtx = { LSquare?: IToken[]; RSquare?: IToken[]; Dot: IToken[]; Class: IToken[]; }; export interface ArrayAccessSuffixCstNode extends CstNode { name: "arrayAccessSuffix"; children: ArrayAccessSuffixCtx; } export type ArrayAccessSuffixCtx = { LSquare: IToken[]; expression: ExpressionCstNode[]; RSquare: IToken[]; }; export interface MethodReferenceSuffixCstNode extends CstNode { name: "methodReferenceSuffix"; children: MethodReferenceSuffixCtx; } export type MethodReferenceSuffixCtx = { ColonColon: IToken[]; typeArguments?: TypeArgumentsCstNode[]; Identifier?: IToken[]; New?: IToken[]; }; export interface PatternCstNode extends CstNode { name: "pattern"; children: PatternCtx; } export type PatternCtx = { typePattern: TypePatternCstNode[]; }; export interface TypePatternCstNode extends CstNode { name: "typePattern"; children: TypePatternCtx; } export type TypePatternCtx = { localVariableDeclaration: LocalVariableDeclarationCstNode[]; }; export interface IdentifyNewExpressionTypeCstNode extends CstNode { name: "identifyNewExpressionType"; children: IdentifyNewExpressionTypeCtx; } export type IdentifyNewExpressionTypeCtx = { New: IToken[]; classOrInterfaceTypeToInstantiate: ClassOrInterfaceTypeToInstantiateCstNode[]; }; export interface IsLambdaExpressionCstNode extends CstNode { name: "isLambdaExpression"; children: IsLambdaExpressionCtx; } export type IsLambdaExpressionCtx = {}; export interface IsCastExpressionCstNode extends CstNode { name: "isCastExpression"; children: IsCastExpressionCtx; } export type IsCastExpressionCtx = {}; export interface IsPrimitiveCastExpressionCstNode extends CstNode { name: "isPrimitiveCastExpression"; children: IsPrimitiveCastExpressionCtx; } export type IsPrimitiveCastExpressionCtx = { LBrace: IToken[]; primitiveType: PrimitiveTypeCstNode[]; RBrace: IToken[]; }; export interface IsReferenceTypeCastExpressionCstNode extends CstNode { name: "isReferenceTypeCastExpression"; children: IsReferenceTypeCastExpressionCtx; } export type IsReferenceTypeCastExpressionCtx = { LBrace: IToken[]; referenceType: ReferenceTypeCstNode[]; additionalBound?: AdditionalBoundCstNode[]; RBrace: IToken[]; }; export interface IsRefTypeInMethodRefCstNode extends CstNode { name: "isRefTypeInMethodRef"; children: IsRefTypeInMethodRefCtx; } export type IsRefTypeInMethodRefCtx = { typeArguments: TypeArgumentsCstNode[]; dims?: DimsCstNode[]; Dot?: IToken[]; classOrInterfaceType?: ClassOrInterfaceTypeCstNode[]; };