package Ġcom . ky _ proj . sp j plugin . parser Ċ Ċ import Ġcom . intellij . lang .* Ċ import Ġcom . intellij . lexer . Lexer Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . tree .* Ċ import Ġcom . ky _ proj . sp j plugin . language . Sp j Language Ċ import Ġcom . ky _ proj . sp j plugin . lexer . Sp j Lexer Adapter Ċ import Ġcom . ky _ proj . sp j plugin . psi .* Ċ Ċ class ĠSp j Parser Definition Ġ: ĠParser Definition Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Lexer ( project : ĠProject ): ĠLex er Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSp j Lexer Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Whitespace Tokens (): ĠToken Set Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWH ITE _ SP ACES ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Comment Tokens (): ĠToken Set Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCOMMENT S ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetString Literal Elements (): ĠToken Set Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠToken Set . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Parser ( project : ĠProject ): ĠPsi Parser Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSp j Parser () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetFile NodeType (): ĠI File ElementType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFILE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate File ( view Provider : ĠFile View Provider ): ĠPsi File Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSp j File ( view Provider ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġspace Exist ance Type Between Tokens ( left : ĠAST Node , Ġright : ĠAST Node ): ĠParser Definition . Space Requirements Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠParser Definition . Space Requirements . MAY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠcreateElement ( node : ĠAST Node ): ĠPsi Element Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSp j Types . Factory . createElement ( node ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠWH ITE _ SP ACES Ġ= ĠToken Set . create ( TokenType . WHITE _ SPACE ) ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠCOMMENT S Ġ= ĠToken Set . create ( Sp j Types . COMMENT ) ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠDOC _ COMMENTS Ġ= ĠToken Set . create ( Sp j Types . DOC _ COMMENT ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ãĥĹãĥŃ ãĤ· ãĥ¼ãĤ¸ ãĥ£ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠPROCEDURE Ġ= ĠToken Set . create ( Sp j Types . PROC EDURE ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ä½ķ ãĤĤ ãģªãģĦ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠD UMMY Ġ= ĠToken Set . create ( TokenType . D UMMY _ HOLDER ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠFILE Ġ= ĠI File ElementType ( Language . find Instance < Sp j Language >( Sp j Language :: class . java !! )) ĊĠĠĠ Ġ} Ċ }