package Ġio . github . lu ke _ b iel . language Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . lang . Parser Definition Ċ import Ġcom . intellij . lang . Parser Definition . Space Requirements Ċ import Ġcom . intellij . lang . Psi Parser Ċ import Ġcom . intellij . lexer . Lexer Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . File View Provider Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . psi . TokenType Ċ import Ġcom . intellij . psi . tree . I File ElementType Ċ import Ġcom . intellij . psi . tree . Token Set Ċ import Ġio . github . lu ke _ b iel . parser . Ion Parser Ċ import Ġio . github . lu ke _ b iel . psi . Ion File Ċ import Ġio . github . lu ke _ b iel . psi . Ion Types ĊĊ Ċ class ĠIon Parser Definition Ġ: ĠParser Definition Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Lexer ( project : ĠProject ): ĠLex er Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIon 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 ĠIon Parser () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetFile NodeType (): ĠI File ElementType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFILE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate File ( view Provider : ĠFile View Provider ): ĠPsi File Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIon File ( view Provider ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġspace Ex istence Type Between Tokens ( ĊĠĠĠĠĠĠĠ Ġleft : ĠAST Node , ĊĠĠĠĠĠĠĠ Ġright : ĠAST Node ĊĠĠĠ Ġ): ĠSpace Requirements Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSpace Requirements . MAY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠcreateElement ( node : ĠAST Node ): ĠPsi Element Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIon Types . Factory . createElement ( node ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠWH ITE _ SP ACES Ġ= ĠToken Set . create ( TokenType . WHITE _ SPACE ) ĊĠĠĠĠĠĠĠ Ġval ĠCOMMENT S Ġ= ĠToken Set . create ( Ion Types . COMMENT ) ĊĠĠĠĠĠĠĠ Ġval ĠFILE Ġ= ĠI File ElementType ( Ion Language . INSTANCE ) ĊĠĠĠ Ġ} Ċ }