/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . i 1 8 n . lang Ċ Ċ import Ġcom . de mon wav . mc dev . i 1 8 n . lang . gen . parser . I 1 8 n Parser Ċ import Ġcom . de mon wav . mc dev . i 1 8 n . lang . gen . psi . I 1 8 n Types Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . lang . Language Util Ċ import Ġcom . intellij . lang . Parser Definition Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . File View Provider Ċ import Ġcom . intellij . psi . TokenType Ċ import Ġcom . intellij . psi . tree . I File ElementType Ċ import Ġcom . intellij . psi . tree . Token Set Ċ Ċ class ĠI 1 8 n Parser Definition Ġ: ĠParser Definition Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Parser ( project : ĠProject ) Ġ= ĠI 1 8 n Parser () ĊĠĠĠ Ġoverride Ġfun Ġcreate Lexer ( project : ĠProject ) Ġ= ĠI 1 8 n Lexer Adapter () ĊĠĠĠ Ġoverride Ġfun Ġcreate File ( view Provider : ĠFile View Provider ) Ġ= ĠI 1 8 n File ( view Provider ) ĊĊĠĠĠ Ġoverride Ġfun Ġspace Ex istence Type Between Tokens ( left : ĠAST Node , Ġright : ĠAST Node ) Ġ= ĊĠĠĠĠĠĠĠ ĠLanguage Util . can Stick Tokens To gether By Lexer ( left , Ġright , ĠI 1 8 n Lexer Adapter ()) !! ĊĊĠĠĠ Ġoverride Ġfun ĠgetString Literal Elements () Ġ= ĠSTRING _ LITERAL S ĊĠĠĠ Ġoverride Ġfun Ġget Whitespace Tokens () Ġ= ĠWH ITE _ SP ACES ĊĠĠĠ Ġoverride Ġfun ĠgetFile NodeType () Ġ= ĠFILE ĊĠĠĠ Ġoverride Ġfun ĠcreateElement ( node : ĠAST Node ) Ġ= ĠI 1 8 n Types . Factory . createElement ( node ) !! ĊĠĠĠ Ġoverride Ġfun Ġget Comment Tokens () Ġ= ĠToken Set . EMPTY !! ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠWH ITE _ SP ACES Ġ= ĠToken Set . create ( TokenType . WHITE _ SPACE ) ĊĠĠĠĠĠĠĠ Ġval ĠSTRING _ LITERAL S Ġ= ĠToken Set . create ( I 1 8 n Types . KEY , ĠI 1 8 n Types . VALUE ) ĊĊĠĠĠĠĠĠĠ Ġval ĠFILE Ġ= ĠI File ElementType ( I 1 8 n Language ) ĊĠĠĠ Ġ} Ċ } Ċ