J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferredo5A name, i.e. a period-separated list of identifiers. A single identifier. ^A class is generic if it declares one or more type variables. These type variables are known ( as the type parameters of the class. cA primitive type is predefined by the Java programming language and named by its reserved keyword. 6Wildcards may be given explicit bounds, either upper (extends ) or lower (super ) bounds. ;Type arguments may be either reference types or wildcards. EA class or interface type consists of a type declaration specifier, U optionally followed by type arguments (in which case it is a parameterized type). ZThere are three kinds of reference types: class types, interface types, and array types. = Reference types may be parameterized with type arguments. U Type variables cannot be syntactically distinguished from class type identifiers, C and are thus represented uniformly as single ident class types. TypeVariable Ident dThere are two kinds of types in the Java programming language: primitive types and reference types. qAn array initializer may be specified in a declaration, or as part of an array creation expression, creating an + array and providing some initial values MA method invocation expression is used to invoke a class or instance method. UInvoking a method of a named type, giving arguments for any generic type parameters. !hInvoking a method of the superclass of a named class, giving arguments for any generic type parameters. "XInvoking a method of the super class, giving arguments for any generic type parameters. #sInvoking a method of a class computed from a primary expression, giving arguments for any generic type parameters. $#Invoking a specific named method. %gA field access expression may access a field of an object or array, a reference to which is the value 9 of either an expression or the special keyword super. &-Accessing a (static) field of a named class. '%Accessing a field of the superclass. (EAccessing a field of an object or array computed from an expression. ) Array access *Index into an array +gThe left-hand side of an assignment expression. This operand may be a named variable, such as a local m variable or a field of the current object or class, or it may be a computed variable, as can result from & a field access or an array access. ,Assign to an array -Assign through a field access .Assign to a variable /An assignment operator. <A binary infix operator. P-A literal denotes a fixed, unchanging value. YA Java expression. Z9Assignment of the result of an expression to a variable. [The conditional operator ? :H uses the boolean value of one expression to decide which of two other $ expressions should be evaluated. \STesting whether the result of an expression is an instance of some reference type. ]AThe application of a binary operator to two operand expressions. ^dA cast expression converts, at run time, a value of one numeric type to a similar value of another f numeric type; or confirms, at compile time, that the type of an expression is boolean; or checks, g at run time, that a reference value refers to an object whose class is compatible with a specified  reference type. _+Logical complementation of boolean values. `8Unary bitwise complementation: note that, in all cases, ~x equals (-x)-1. agUnary minus, the promotion of the negation of the value of the expression to a primitive numeric type. bVUnary plus, the promotion of the value of the expression to a primitive numeric type. c>Pre-decrementation expression, i.e. an expression preceded by --. d>Pre-incrementation expression, i.e. an expression preceded by ++. e?Post-decrementation expression, i.e. an expression followed by --. f?Post-incrementation expression, i.e. an expression followed by ++. g%An expression name, e.g. a variable. hQAn array access expression refers to a variable that is a component of an array. i A method invocation expression. jA field access expression. kfAn array instance creation expression may come with an explicit initializer. Such expressions may not 8 be given explicit lengths for any of its dimensions. liAn array instance creation expression is used to create new arrays. The last argument denotes the number Z of dimensions that have no explicit length given. These dimensions must be given last. mjA qualified class instance creation expression enables the creation of instances of inner member classes # and their anonymous subclasses. nbA class instance creation expression is used to create new objects that are instances of classes. Y | The first argument is a list of non-wildcard type arguments to a generic constructor. e What follows is the type to be instantiated, the list of arguments passed to the constructor, and P optionally a class body that makes the constructor result in an object of an  anonymous class. o_Any lexically enclosing instance can be referred to by explicitly qualifying the keyword this. p The keyword thisQ denotes a value that is a reference to the object for which the instance method 4 was invoked, or to the object being constructed. q^A class literal, which is an expression consisting of the name of a class, interface, array, ; or primitive type, or the pseudo-type void (modelled by ), followed by a  and the token class. r-A literal denotes a fixed, unchanging value. s7Arguments to methods and constructors are expressions. t=An exception type has to be a class type or a type variable. u Initialization code for a basic for statement. xA label within a switch statement. z The expression contained in the case must be a r or an enum constant. { A block of code labelled with a case or default within a switch statement. }rIf a value is thrown and the try statement has one or more catch clauses that can catch it, then control will be / transferred to the first such catch clause. A Java statement. $Statements may have label prefixes. qA try statement executes a block. If a value is thrown and the try statement has one or more catch clauses that v can catch it, then control will be transferred to the first such catch clause. If the try statement has a finally t clause, then another block of code is executed, no matter whether the try block completes normally or abruptly, @ and no matter whether a catch clause is first given control. A throw. statement causes an exception to be thrown. A  synchronizedb statement acquires a mutual-exclusion lock on behalf of the executing thread, executes a block, k then releases the lock. While the executing thread owns the lock, no other thread may acquire the lock. A continuee statement may occur only in a while, do, or for statement. Control passes to the loop-continuation  point of that statement. A break< statement transfers control out of an enclosing statement. The doi statement executes a statement and an expression repeatedly until the value of the expression is false. mThe switch statement transfers control to one of several statements depending on the value of an expression. kAn assertion is a statement containing a boolean expression, where an error is reported if the expression  evaluates to false. ZCertain kinds of expressions may be used as statements by following them with semicolons: Y assignments, pre- or post-inc- or decrementation, method invocation or class instance  creation expressions. !An empty statement does nothing.  The enhanced forL statement iterates over an array or a value of a class that implements the iterator interface.  The basic forb statement executes some initialization code, then executes an expression, a statement, and some F update code repeatedly until the value of the expression is false. The whilei statement executes an expression and a statement repeatedly until the value of the expression is false. The  if-then-elsea statement allows conditional choice of two statements, executing one or the other but not both. The if-then8 statement allows conditional execution of a statement. #A statement can be a nested block. 9A block statement is either a normal statement, a local 6 class declaration or a local variable declaration. ?A block is a sequence of statements, local class declarations < and local variable declaration statements within braces. >Annotations may contain annotations or (loosely) expressions ZAnnotations have three different forms: no-parameter, single-parameter or key-value pairs IA modifier specifying properties of a given declaration. In general only P a few of these modifiers are allowed for each declaration type, for instance S a member type declaration may only specify one of public, private or protected. GAn explicit constructor invocation invokes another constructor of the D same class, or a constructor of the direct superclass, which may > be qualified to explicitly specify the newly created object's immediately  enclosing instance. KThe first statement of a constructor body may be an explicit invocation of F another constructor of the same class or of the direct superclass. PA method body is either a block of code that implements the method or simply a D semicolon, indicating the lack of an implementation (modelled by ). =A formal parameter in method declaration. The last parameter < for a given declaration may be marked as variable arity, & indicated by the boolean argument. 1Explicit initializer for a variable declaration. @The name of a variable in a declaration, which may be an array. CMulti-dimensional arrays are represented by nested applications of . BA declaration of a variable, which may be explicitly initialized. KA class or interface member can be an inner class or interface, a field or O constant, or a method or constructor. An interface may only have as members B constants (not fields), abstract methods, and no constructors. uA member interface is an interface whose declaration is directly enclosed in another class or interface declaration. lA member class is a class whose declaration is directly enclosed in another class or interface declaration. SA constructor is used in the creation of an object that is an instance of a class. fA method declares executable code that can be invoked, passing a fixed number of values as arguments. DThe variables of a class type are introduced by field declarations. EA declaration is either a member declaration, or a declaration of an % initializer, which may be static. ?The body of an interface may declare members of the interface. HAn interface declaration introduces a new reference type whose members K are classes, interfaces, constants and abstract methods. This type has K no implementation, but otherwise unrelated classes can implement it by 7 providing implementations for its abstract methods. 7An enum constant defines an instance of the enum type. 5The body of an enum type may contain enum constants. IA class body may contain declarations of members of the class, that is, - fields, classes, interfaces and methods. @ A class body may also contain instance initializers, static A initializers, and declarations of constructors for the class. :A class declaration specifies a new named reference type. ?A type declaration declares a class type or an interface type. tAn import declaration allows a static member or a named type to be referred to by a single unqualified identifier. S The first argument signals whether the declaration only imports static members. s The last argument signals whether the declaration brings all names in the named type or package, or only brings  a single name into scope. wA package declaration appears within a compilation unit to indicate the package to which the compilation unit belongs. MA compilation unit is the top level syntactic goal symbol of a Java program.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~{|xzyuwvtsYrqponmlkjihgfedcba`_^]\[ZPXWVUTSRQ<ONMLKJIHGFEDCBA@?>=/;:9876543210+.-,)*%('&$#"!  3 $#"! %('&)*+.-,/ ;:9876543210<ONMLKJIHGFEDCBA@?>=PXWVUTSRQYrqponmlkjihgfedcba`_^]\[Zstuwvxzy{|}~  Safe-Inferred@>NoneCEncode a Haskell String to a list of Word8 values, in UTF8 format.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_n]^\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      _j\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ]^_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmNonenopqrs`abcdteuvwxyz{|}f~ghijklmnopqrstuvwxyz{|}~.`abcdefghijklmnopqrstuvwxyz{|}~.`abcdefghijklmnopqrstuvwxyz{|}~nopqrs`abcdteuvwxyz{|}f~ghijklmnopqrstuvwxyz{|}~      !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef#ghijklmnopqrstuvwwxxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwuxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~language-java-0.2.0Language.Java.SyntaxLanguage.Java.PrettyLanguage.Java.LexerLanguage.Java.ParserNameIdent TypeParamPrimTypeDoubleTFloatTCharTLongTIntTShortTByteTBooleanT WildcardBound SuperBound ExtendsBound TypeArgument ActualTypeWildcard ClassTypeRefType ArrayType ClassRefTypeType ArrayInitMethodInvocationTypeMethodCallClassMethodCallSuperMethodCallPrimaryMethodCall MethodCall FieldAccessClassFieldAccessSuperFieldAccessPrimaryFieldAccess ArrayIndexLhsArrayLhsFieldLhsNameLhsAssignOpOrAXorAAndARRShiftARShiftALShiftASubAAddARemADivAMultAEqualAOpCOrCAndXorOrAndNotEqEqualGThanELThanEGThanLThanRRShiftRShiftLShiftSubAddRemDivMultLiteralNullStringCharBooleanDoubleFloatWordIntExpAssignCond InstanceOfBinOpCastPreNot PreBitComplPreMinusPrePlus PreDecrement PreIncrement PostDecrement PostIncrementExpName ArrayAccess MethodInvArrayCreateInit ArrayCreateQualInstanceCreationInstanceCreation ThisClassThisClassLitLitArgument ExceptionTypeForInit ForInitExps ForLocalVars SwitchLabelDefault SwitchCase SwitchBlockCatchStmtLabeledTryThrow SynchronizedReturnContinueBreakDoSwitchAssertExpStmtEmpty EnhancedForBasicForWhile IfThenElseIfThen StmtBlock BlockStmt LocalVars LocalClassBlock ElementValueEVAnnEVVal AnnotationMarkerAnnotationSingleElementAnnotationannValueNormalAnnotationannNameannKVModifierNativeVolatile TransientStrictFPStaticFinalAbstract ProtectedPrivatePublic ExplConstrInvPrimarySuperInvoke SuperInvoke ThisInvokeConstructorBody MethodBody FormalParamVarInit InitArrayInitExp VarDeclId VarDeclArrayVarIdVarDecl MemberDeclMemberInterfaceDeclMemberClassDeclConstructorDecl MethodDecl FieldDeclDeclInitDecl InterfaceBody InterfaceDecl EnumConstantEnumBody ClassBody ClassDeclEnumDeclTypeDeclInterfaceTypeDecl ClassTypeDecl ImportDecl PackageDeclCompilationUnitdesugarAnnotationdesugarAnnotation'Prettypretty prettyPrec prettyPrint parenPrecppEVListppArgs ppTypeParams ppImplements ppExtendsppThrows ppResultTypeprettyNestedStmtmaybePPopt braceBlockopPrecToken Op_AtSign Op_RRShiftE Op_RShiftE Op_LShiftE Op_PercentE Op_CaretEOp_OrEOp_AndE Op_SlashEOp_StarE Op_MinusEOp_PlusE Op_RRShift Op_RShift Op_LShift Op_PercentOp_CaretOp_OrOp_AndOp_SlashOp_StarOp_MinusOp_Plus Op_MMinusOp_PPlusOp_OOrOp_AAndOp_BangE Op_GThanE Op_LThanE Op_EqualsOp_ColonOp_QueryOp_TildeOp_BangOp_LThanOp_GThanOp_EqualIdentTokNullTokBoolTok StringTokCharTokFloatTok DoubleTokLongTokIntTokPeriodComma SemiColon CloseCurly OpenCurly CloseSquare OpenSquare CloseParen OpenParenKW_While KW_VolatileKW_VoidKW_Try KW_Transient KW_ThrowsKW_ThrowKW_ThisKW_Synchronized KW_SwitchKW_Super KW_Strictfp KW_StaticKW_Short KW_Return KW_Public KW_Protected KW_Private KW_PackageKW_New KW_NativeKW_Long KW_InterfaceKW_Int KW_Instanceof KW_Import KW_ImplementsKW_IfKW_GotoKW_ForKW_Float KW_FinallyKW_Final KW_ExtendsKW_EnumKW_Else KW_DoubleKW_Do KW_Default KW_ContinueKW_ConstKW_ClassKW_CharKW_CatchKW_CaseKW_ByteKW_Break KW_Boolean KW_Assert KW_AbstractLlexerparsercompilationUnit packageDecl importDecltypeDecl classDecl interfaceDecl memberDecl fieldDecl methodDecl constrDeclinterfaceMemberDecl absMethodDecl formalParams formalParammodifiervarDeclsvarDeclblock blockStmtstmtstmtExpexpprimaryliteralttypeprimTyperefType classType resultType typeParams typeParamnameidentemptyboptloptlistlist1seplistseplist1commacolon semiColonperiodbase Data.MaybeNothingGHC.Base. $fPrettyIdent $fPrettyName$fPrettyTypeParam$fPrettyPrimType$fPrettyWildcardBound$fPrettyTypeArgument$fPrettyClassType$fPrettyRefType $fPrettyType$fPrettyArrayInit$fPrettyMethodInvocation$fPrettyFieldAccess$fPrettyArrayIndex $fPrettyLhs$fPrettyAssignOp $fPrettyOp$fPrettyLiteral $fPrettyExp$fPrettyForInit$fPrettySwitchLabel$fPrettySwitchBlock $fPrettyCatch $fPrettyStmt$fPrettyBlockStmt $fPrettyBlock$fPrettyElementValue$fPrettyAnnotation$fPrettyModifier$fPrettyExplConstrInv$fPrettyConstructorBody$fPrettyMethodBody$fPrettyFormalParam$fPrettyVarInit$fPrettyVarDeclId$fPrettyVarDecl$fPrettyMemberDecl $fPrettyDecl$fPrettyInterfaceBody$fPrettyInterfaceDecl$fPrettyEnumConstant$fPrettyEnumBody$fPrettyClassBody$fPrettyClassDecl$fPrettyTypeDecl$fPrettyImportDecl$fPrettyPackageDecl$fPrettyCompilationUnit utf8Encode AlexAccPredAlexAccAlexAccSkipPred AlexAccSkip AlexLastAcc AlexLastSkipAlexNone AlexReturn AlexTokenAlexSkip AlexErrorAlexEOFAlexAddrAlexA#PosAlexPosnAlexPn AlexInputByteignorePendingBytesalexInputPrevChar alexGetByte alexStartPosalexMovealexScanTokens alex_base alex_table alex_check alex_deflt alex_accept pickyReadOct readHexExp readCharTok readStringTok dropQuotesconvChar lexicalErrorpos alex_action_2 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53alex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81alex_action_82alex_action_83alex_action_84alex_action_85alex_action_86alex_action_87alex_action_88alex_action_89alex_action_90alex_action_91alex_action_92alex_action_93alex_action_94alex_action_95alex_action_96alex_action_97alex_action_98alex_action_99alex_action_100alex_action_101alex_action_102alex_action_103alex_action_104alex_action_105alex_action_106alex_action_107alex_action_108alex_action_109alex_action_110alex_action_111alex_action_112alex_action_113alex_action_114alex_action_115alex_action_116alex_action_117alex_action_118alex_action_119alex_action_120alex_action_121alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkn alexAndPredalexPrevCharIsalexPrevCharMatchesalexPrevCharIsOneOfalexRightContextiUnbox$fFunctorAlexLastAccModP>>>>=<*>parseCompilationUnitclassOrInterfaceDeclnormalClassDeclextends implements enumClassDecl classBodyenumBody enumConst enumBodyDeclsclassBodyDecls interfaceBody classBodyDecl methodBody constrBody explConstrInvinterfaceBodyDeclthrowsellipsis annotationevlistelementValuePair elementValue varDeclId arrBrackets localVarDeclvarInit arrayInitstmtNSI stmtNoTrailforInitforUp switchBlock switchStmt switchLabelcatch preIncDec postIncDec assignmentlhs assignExpcondExp condExpSuffixinfixExpinfixExpSuffixunaryExp postfixExpNES postfixExp primaryNPSprimaryNoNewArrayprimaryNoNewArrayNPS primarySuffixinstanceCreationNPSinstanceCreationSuffixinstanceCreationfieldAccessNPSfieldAccessSuffix fieldAccessmethodInvocationNPSmethodInvocationSuffixmethodInvocationExpargsarrayAccessNPSarrayAccessSuffix arrayAccess arrayCreation preIncDecOpprefixOp postfixOpassignOpinfixOp nonArrayType classTypeSpec refTypeListboundstypeArgstypeArg wildcardBound refTypeArgs startSuff|>> javaTokentok matchToken pos2sourcePosparensbracesbracketsanglesendSemitesttestFile