/************************************************************************ ***** Ċ Ġ* ĠCopyright Ġ( C ) Ġj parse c . org ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġ------------------------------------------------------------------------- Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); ĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware ĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ Ġ* Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand ĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ*/ Ċ package Ġorg . j parse c . examples . java . parser Ċ Ċ import Ġorg . j parse c . examples . java . ast . declaration .* Ċ import Ġorg . j parse c . examples . java . ast . expression .* Ċ import Ġorg . j parse c . examples . java . ast . statement . Annotation Ċ import Ġorg . j parse c . examples . java . ast . statement . Modifier Ċ import Ġorg . j parse c . examples . sql . ast . Function Expression Ċ import Ġorg . junit . Test Ċ import Ġjava . io . IOException Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* ĠIntegration Ġtest Ġfor Ġthe Ġentire Ġjava Ġparser . Ċ Ġ* Ċ Ġ* Ġ@ author Ġben yu Ċ Ġ*/ Ċ class ĠJava Parser IntegrationTest Ġ{ ĊĠĠĠ Ġ@ Test Ġ@ Throws ( Exception :: class ) Ġfun Ġtest Parse () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Java Source Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDeclaration Parser :: class . java , ĠStatement Parser :: class . java , ĠExpression Parser :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTerminal Parser :: class . java , ĠJava Lexer :: class . java , ĠType Literal Parser :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProgram :: class . java , ĠDeclaration :: class . java , ĠMember :: class . java , ĠModifier :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠField Def :: class . java , ĠMethod Def :: class . java , ĠConstructor Def :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Def :: class . java , ĠInterface Def :: class . java , ĠClass Def :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExpression :: class . java , ĠNew Array Expression :: class . java , ĠQual ified Expression :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperator :: class . java , ĠNew Expression :: class . java , ĠFunction Expression :: class . java , ĠAnnotation :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) Ġprivate Ġfun Ġparse Java Source Files ( var arg Ġclasses : ĠClass <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( cls Ġin Ġclasses ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse Java SourceFile ( cls ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) Ġprivate Ġfun Ġparse Java SourceFile ( cls : ĠClass <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDeclaration Parser . parse ( to Source Url ( cls )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġto Source Url ( cls : ĠClass < *> ): ĠURL Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcls . getResource ( cls . simple Name Ġ+ Ġ". java ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" Cannot Ġfind Ġsource Ġfile Ġfor Ġ" Ġ+ Ġcls . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }