package Ġcom . github . o ow ek y ala . ij cc . ide . refs Ċ Ċ import Ġcom . github . o ow ek y ala . ij cc . icons . J cc Icons Ċ import Ġcom . github . o ow ek y ala . ij cc . ide . completion . with Tail Ċ import Ġcom . github . o ow ek y ala . ij cc . ide . structure view . present able Text Ċ import Ġcom . github . o ow ek y ala . ij cc . ide . structure view . presentation Icon Ċ import Ġcom . github . o ow ek y ala . ij cc . lang . model . Regex Kind Ċ import Ġcom . github . o ow ek y ala . ij cc . lang . psi . all Jj tree Decl s Ċ import Ġcom . github . o ow ek y ala . ij cc . lang . psi . can Reference Private Ċ import Ġcom . intellij . code Insight . completion . simple . Parent heses Tail Type Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Builder Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . psi . code Style . Common Code Style Settings Ċ Ċ /** Ċ Ġ* Ġ@ author ĠCl Ã©ment ĠF o urn ier Ċ Ġ*/ Ċ object ĠIde Ref Variants Service Ġ: ĠJ cc Ref Variant Service () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġn ont erm inal Ref Variants ( ref : ĠJ cc Non Terminal Reference ): ĠArray < Any > Ġ= ĊĠĠĠĠĠĠĠ Ġref . element . containing File . non Terminal Production s . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder . create ( it . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Psi Element ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Present able Text ( it . present able Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( it . presentation Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tail (" () Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( Look ahead Lookup Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĊĊĠĠĠ Ġoverride Ġfun Ġlex ical State Variants ( ref : ĠJ cc Lex ical State Reference ): ĠArray < Any > Ġ= ĊĠĠĠĠĠĠĠ Ġref . element . containing File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. lexical Grammar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. lexical States ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder . create ( it . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Psi Element ( it . declaration Ident ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( J cc Icons . LEX ICAL _ STATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĊĠĠĠ Ġoverride Ġfun Ġterminal Variants ( ref : ĠJ cc Terminal Reference ): ĠArray < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcan Reference Private Ġ= Ġref . element . can Reference Private ĊĊĠĠĠĠĠĠĠ Ġreturn Ġref . element . containing File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. lexical Grammar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. all Tokens ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġcan Reference Private Ġ|| Ġ! it . is Private Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġtoken Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken . name ?. let Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( token . psi Element ?. presentation Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tail ("> Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstring Literal Variants ( ref : ĠJ cc B nf StringLiteral Reference ): ĠArray < Any > Ġ= ĊĠĠĠĠĠĠĠ Ġref . element . containing File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. lexical Grammar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. default State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġd ft State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ft State . tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! it . is Private Ġ&& Ġit . regex Kind Ġ== ĠRegex Kind . TOKEN Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġtoken Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas String Ġ= Ġtoken . asString Token Ġ?: Ġreturn @ map NotNull Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( asString . text . remove Suffix ("\ "" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Psi Element ( token . psi Element ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Present able Text ( asString . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( J cc Icons . TOKEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Type Text ( token . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . lexical States OrEmpty ForAll Ġ!= ĠlistOf NotNull ( d ft State . name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ< A , ĠB > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . lexical States OrEmpty ForAll . join To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseparator Ġ= Ġ", Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ= Ġ"< ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpostfix Ġ= Ġ" >" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . lexical State Transition ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Ġ-> Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tail ("\" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList (). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġjj tree Node Variants ( ref : ĠJ jt Node Poly Reference ): ĠArray < Any > Ġ= ĊĠĠĠĠĠĠĠ Ġref . element . containing File . all Jj tree Decl s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . value . size Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġ( nodeName , Ġdecl ar ators ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder . create ( nodeName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Present able Text ("# $ nodeName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Psi Element ( decl ar ators . first OrNull ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( J cc Icons . J JT REE _ NODE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĊĊĠĠĠ Ġ// ĠTODO Ġmove Ġto Ġcompletion Ġcontributor Ġwith Ġa Ġproper Ġpattern ĊĠĠĠ Ġprivate Ġval ĠLook ahead Lookup Item Ġ= ĊĠĠĠĠĠĠĠ ĠLookup Element Builder . create (" LOOK A HEAD ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Bold ness ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Present able Text (" LOOK A HEAD ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tail Text (" (... )", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tail ( object Ġ: ĠParent heses Tail Type () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Space Within Parent heses ( style Settings : ĠCommon Code Style Settings ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor : ĠEditor ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtail Offset : ĠInt ): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Space Before Parent heses ( style Settings : ĠCommon Code Style Settings ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor : ĠEditor ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtail Offset : ĠInt ): ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊ Ċ } Ċ