package Ġcom . github . mq z ry . ocaml . plugin Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . lang . Language Util Ċ import Ġcom . intellij . lang . Parser Definition Ċ 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 . tree . I File ElementType Ċ import Ġcom . intellij . psi . tree . Token Set Ċ Ċ class ĠOC aml Parser Definition Ġ: ĠParser Definition Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Parser ( project : ĠProject ?): ĠPsi Parser Ġ= ĠOC aml Parser () ĊĊĠĠĠ Ġoverride Ġfun Ġcreate File ( view Provider : ĠFile View Provider ): ĠPsi File Ġ= ĠOC aml File ( view Provider ) ĊĊĠĠĠ Ġoverride Ġfun Ġspace Exist ance Type Between Tokens ( left : ĠAST Node ?, Ġright : ĠAST Node ?): ĠParser Definition . Space Requirements ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage Util . can Stick Tokens To gether By Lexer ( left , Ġright , ĠOC aml Lexer ()) ĊĊĠĠĠ Ġoverride Ġfun ĠgetString Literal Elements (): ĠToken Set Ġ= ĠToken Set . EMPTY ĊĊĠĠĠ Ġoverride Ġfun Ġget Whitespace Tokens (): ĠToken Set Ġ= ĠWH ITE _ SP ACES ĊĊĠĠĠ Ġoverride Ġfun Ġget Comment Tokens (): ĠToken Set Ġ= ĠCOMMENT S ĊĊĠĠĠ Ġoverride Ġfun ĠgetFile NodeType (): ĠI File ElementType ? Ġ= ĠFILE ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Lexer ( project : ĠProject ?): ĠLex er Ġ= ĠOC aml Lexer () ĊĊĠĠĠ Ġoverride Ġfun ĠcreateElement ( node : ĠAST Node ?): ĠPsi Element Ġ= ĠOC aml Lexer . Factory . createElement ( node ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠFILE : ĠI File ElementType Ġ= ĠI File ElementType ( OC aml Language . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġval ĠWH ITE _ SP ACES : ĠToken Set Ġ= ĠToken Set . create ( TokenType . WHITE _ SPACE ) ĊĠĠĠĠĠĠĠ Ġval ĠCOMMENT S : ĠToken Set Ġ= ĠToken Set . create ( Tom l Types . COMMENT ) ĊĠĠĠ Ġ} Ċ Ċ }