package Ġcom . win dea . plugin . idea . par ad ox . script . psi Ċ Ċ import Ġcom . intellij . lang .* Ċ import Ġcom . intellij . lang . Parser Definition . Space Requirements .* Ċ import Ġcom . intellij . openapi . project .* Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . TokenType .* Ċ import Ġcom . intellij . psi . tree .* Ċ import Ġcom . win dea . plugin . idea . par ad ox . script . psi . Par ad ox Script Types .* Ċ import Ġcom . win dea . plugin . idea . par ad ox . script .* Ċ Ċ class ĠPar ad ox Script Parser Definition Ġ: ĠParser Definition Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ val ĠWH ITE _ SP ACES Ġ= ĠToken Set . create ( WHITE _ SPACE ) Ċĉ ĉ val ĠCOMMENT S Ġ= ĠToken Set . create ( COMMENT , ĠEND _ OF _ LINE _ COMMENT ) Ċĉ ĉ val ĠSTR INGS Ġ= ĠToken Set . create ( QUOT ED _ STRING _ TOKEN , ĠSTRING _ TOKEN ) Ċĉ ĉ val ĠFILE Ġ= ĠI File ElementType ( Par ad ox Script Language ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġcreate Lexer ( project : ĠProject ?) Ġ= ĠPar ad ox Script Lexer Adapter () ĊĊ ĉ override Ġfun Ġget Whitespace Tokens () Ġ= ĠWH ITE _ SP ACES ĊĊ ĉ override Ġfun Ġget Comment Tokens () Ġ= ĠCOMMENT S ĊĊ ĉ override Ġfun ĠgetString Literal Elements () Ġ= ĠSTR INGS ĊĊ ĉ override Ġfun Ġcreate Parser ( project : ĠProject ?) Ġ= ĠPar ad ox Script Parser () ĊĊ ĉ override Ġfun ĠgetFile NodeType () Ġ= ĠPar ad ox Script Stub Element Types . FILE ĊĊ ĉ override Ġfun Ġcreate File ( view Provider : ĠFile View Provider ) Ġ= ĠPar ad ox Script File ( view Provider ) ĊĊ ĉ override Ġfun Ġspace Ex istence Type Between Tokens ( left : ĠAST Node ?, Ġright : ĠAST Node ?) Ġ= Ġwhen Ġ{ Ċĉ ĉ // æĸĩæľ¬ ä¹ĭéĹ´ å¿ħé¡» æľī ç©º çĻ½ Ċĉ ĉ left ?. elementType Ġ== ĠSTRING Ġ&& Ġright ?. elementType Ġ== ĠSTRING Ġ-> ĠMUST Ċĉ ĉ // åıĺéĩı ä¹ĭåīį å¿ħé¡» æį¢ è¡Į Ċĉ ĉ right ?. elementType Ġ== ĠVARIABLE _ NAME Ġ-> ĠMUST _ LINE _ BREAK Ċĉ ĉ // å±ŀæĢ§ ä¹ĭåīį å¿ħé¡» æį¢ è¡Į ï¼Į éĻ¤ éĿŀ æĺ¯ " {" Ċĉ ĉ right ?. elementType Ġ== ĠPROPERTY _ KEY Ġ&& Ġleft ?. elementType Ġ!= ĠLEFT _ BRACE Ġ-> ĠMUST _ LINE _ BREAK Ċĉ ĉ else Ġ-> ĠMAY Ċ ĉ } ĊĊ ĉ override Ġfun ĠcreateElement ( node : ĠAST Node ) Ġ= ĠPar ad ox Script Types . Factory . createElement ( node ) Ċ } Ċ