package Ġrs . pe st Ċ Ċ import Ġcom . intellij . openapi . editor . Default Language Highlight er Colors Ċ import Ġcom . intellij . openapi . editor . Highlight er Colors Ċ import Ġcom . intellij . openapi . editor . colors . Text Attributes Key Ċ import Ġcom . intellij . openapi . file Types . Syntax Highlight er Ċ import Ġcom . intellij . openapi . file Types . Syntax Highlight er Factory Ċ import Ġcom . intellij . openapi . options . colors . Attributes Descriptor Ċ import Ġcom . intellij . openapi . options . colors . Color Descriptor Ċ import Ġcom . intellij . openapi . options . colors . Color Settings Page Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . tree . I ElementType Ċ import Ġicons . P est Icons Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġrs . pe st . psi . P est TokenType Ċ import Ġrs . pe st . psi . P est Types Ċ import Ġjava . util .* ĊĊ Ċ object ĠPest Highlight er Ġ: ĠSyntax Highlight er Ġ{ Ċ ĉ @ Jvm Field Ġval ĠKEY WORD Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ KEYWORD ", ĠDefault Language Highlight er Colors . KEYWORD ) Ċ ĉ @ Jvm Field Ġval ĠBU IL TIN Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ BUIL TIN ", ĠDefault Language Highlight er Colors . KEYWORD ) Ċ ĉ @ Jvm Field Ġval ĠIDENT IFIER Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ IDENTIFIER ", ĠDefault Language Highlight er Colors . IDENTIFIER ) Ċ ĉ @ Jvm Field Ġval ĠUN RESOL VED Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ UN RESOL VED ", ĠHighlight er Colors . BAD _ CHARACTER ) Ċ ĉ @ Jvm Field Ġval ĠS IMP LE Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ SIMPLE ", ĠDefault Language Highlight er Colors . FUNCTION _ DECL AR ATION ) Ċ ĉ @ Jvm Field Ġval ĠS IL ENT Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ SIL ENT ", ĠDefault Language Highlight er Colors . FUNCTION _ DECL AR ATION ) Ċ ĉ @ Jvm Field Ġval ĠA TO MIC Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ ATOMIC ", ĠDefault Language Highlight er Colors . LOCAL _ VARIABLE ) Ċ ĉ @ Jvm Field Ġval ĠCOMP O UND _ ATOMIC Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ COMP O UND _ ATOMIC ", ĠDefault Language Highlight er Colors . LOCAL _ VARIABLE ) Ċ ĉ @ Jvm Field Ġval ĠNON _ ATOMIC Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ NON _ ATOMIC ", ĠDefault Language Highlight er Colors . LOCAL _ VARIABLE ) Ċ ĉ @ Jvm Field Ġval ĠNUMBER Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ NUMBER ", ĠDefault Language Highlight er Colors . NUMBER ) Ċ ĉ @ Jvm Field Ġval ĠSTRING Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ STRING ", ĠDefault Language Highlight er Colors . STRING ) Ċ ĉ @ Jvm Field Ġval ĠCHAR Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ CHAR ", ĠDefault Language Highlight er Colors . STRING ) Ċ ĉ @ Jvm Field Ġval ĠOPER ATOR Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ OPERATOR ", ĠDefault Language Highlight er Colors . OPERATION _ SIGN ) Ċ ĉ @ Jvm Field Ġval ĠP AREN Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ PARENT HE SES ", ĠDefault Language Highlight er Colors . PARENT HE SES ) Ċ ĉ @ Jvm Field Ġval ĠBR ACE Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ BR ACES ", ĠDefault Language Highlight er Colors . BR ACES ) Ċ ĉ @ Jvm Field Ġval ĠBR ACK Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ BRACK ET ", ĠDefault Language Highlight er Colors . BRACK ETS ) Ċ ĉ @ Jvm Field Ġval ĠCOMMENT Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ LINE _ COMMENT ", ĠDefault Language Highlight er Colors . LINE _ COMMENT ) Ċ ĉ @ Jvm Field Ġval ĠDOC _ COMMENT Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ DOC _ COMMENT ", ĠDefault Language Highlight er Colors . DOC _ COMMENT ) Ċ ĉ @ Jvm Field Ġval ĠBLOCK _ COMMENT Ġ= ĠText Attributes Key . createText Attributes Key (" PE ST _ BLOCK _ COMMENT ", ĠDefault Language Highlight er Colors . BLOCK _ COMMENT ) ĊĊ ĉ @ Jvm Field Ġval ĠKEY WORD _ KEY Ġ= ĠarrayOf ( KEYWORD ) Ċ ĉ @ Jvm Field Ġval ĠBU IL TIN _ KEY Ġ= ĠarrayOf ( BUIL TIN ) Ċ ĉ @ Jvm Field Ġval ĠIDENT IFIER _ KEY Ġ= ĠarrayOf ( IDENTIFIER ) Ċ ĉ @ Jvm Field Ġval ĠOPER ATOR _ KEY Ġ= ĠarrayOf ( OPERATOR ) Ċ ĉ @ Jvm Field Ġval ĠSTRING _ KEY Ġ= ĠarrayOf ( STRING ) Ċ ĉ @ Jvm Field Ġval ĠCHAR _ KEY Ġ= ĠarrayOf ( CHAR ) Ċ ĉ @ Jvm Field Ġval ĠNUMBER _ KEY Ġ= ĠarrayOf ( NUMBER ) Ċ ĉ @ Jvm Field Ġval ĠP AREN _ KEY Ġ= ĠarrayOf ( PAREN ) Ċ ĉ @ Jvm Field Ġval ĠBR ACE _ KEY Ġ= ĠarrayOf ( BRACE ) Ċ ĉ @ Jvm Field Ġval ĠBR ACK _ KEY Ġ= ĠarrayOf ( BRACK ) Ċ ĉ @ Jvm Field Ġval ĠCOMMENT _ KEY Ġ= ĠarrayOf ( COMMENT ) Ċ ĉ @ Jvm Field Ġval ĠDOC _ COMMENT _ KEY Ġ= ĠarrayOf ( DOC _ COMMENT ) Ċ ĉ @ Jvm Field Ġval ĠBLOCK _ COMMENT _ KEY Ġ= ĠarrayOf ( BLOCK _ COMMENT ) ĊĊ ĉ private Ġval ĠBU IL T INS _ LIST Ġ= ĠlistOf ( P est Types . LET TER _ TOKEN , Ċĉ ĉ P est Types . CASE D _ LET TER _ TOKEN , Ċĉ ĉ P est Types . UPPER CASE _ LET TER _ TOKEN , Ċĉ ĉ P est Types . LOWER CASE _ LET TER _ TOKEN , Ċĉ ĉ P est Types . TITLE CASE _ LET TER _ TOKEN , Ċĉ ĉ P est Types . MODI FIER _ LET TER _ TOKEN , Ċĉ ĉ P est Types . OTHER _ LET TER _ TOKEN , Ċĉ ĉ P est Types . MARK _ TOKEN , Ċĉ ĉ P est Types . NON SPACING _ MARK _ TOKEN , Ċĉ ĉ P est Types . SPACING _ MARK _ TOKEN , Ċĉ ĉ P est Types . ENC LO SING _ MARK _ TOKEN , Ċĉ ĉ P est Types . NUMBER _ TOKEN , Ċĉ ĉ P est Types . DECIMAL _ NUMBER _ TOKEN , Ċĉ ĉ P est Types . LET TER _ NUMBER _ TOKEN , Ċĉ ĉ P est Types . OTHER _ NUMBER _ TOKEN , Ċĉ ĉ P est Types . PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . CON NE CTOR _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . DASH _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . OPEN _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . CLOSE _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . INITIAL _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . FINAL _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . OTHER _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . SYMBOL _ TOKEN , Ċĉ ĉ P est Types . MATH _ SYMBOL _ TOKEN , Ċĉ ĉ P est Types . CUR RE NCY _ SYMBOL _ TOKEN , Ċĉ ĉ P est Types . MODI FIER _ SYMBOL _ TOKEN , Ċĉ ĉ P est Types . OTHER _ SYMBOL _ TOKEN , Ċĉ ĉ P est Types . SEPARATOR _ TOKEN , Ċĉ ĉ P est Types . SPACE _ SEPARATOR _ TOKEN , Ċĉ ĉ P est Types . LINE _ SEPARATOR _ TOKEN , Ċĉ ĉ P est Types . PAR AG R APH _ SEPARATOR _ TOKEN , Ċĉ ĉ P est Types . OTHER _ TOKEN , Ċĉ ĉ P est Types . CONTROL _ TOKEN , Ċĉ ĉ P est Types . FORMAT _ TOKEN , Ċĉ ĉ P est Types . SUR RO GATE _ TOKEN , Ċĉ ĉ P est Types . PRIVATE _ USE _ TOKEN , Ċĉ ĉ P est Types . UN ASS IGNED _ TOKEN , Ċĉ ĉ P est Types . ALPH AB ET IC _ TOKEN , Ċĉ ĉ P est Types . B IDI _ CONTROL _ TOKEN , Ċĉ ĉ P est Types . CASE _ IGN OR ABLE _ TOKEN , Ċĉ ĉ P est Types . CASE D _ TOKEN , Ċĉ ĉ P est Types . CHANG ES _ WHEN _ CASE FOL DED _ TOKEN , Ċĉ ĉ P est Types . CHANG ES _ WHEN _ CASE MAP PED _ TOKEN , Ċĉ ĉ P est Types . CHANG ES _ WHEN _ LOWER CASE D _ TOKEN , Ċĉ ĉ P est Types . CHANG ES _ WHEN _ TITLE CASE D _ TOKEN , Ċĉ ĉ P est Types . CHANG ES _ WHEN _ UPPER CASE D _ TOKEN , Ċĉ ĉ P est Types . DASH _ TOKEN , Ċĉ ĉ P est Types . DEFAULT _ IGN OR ABLE _ CODE _ POINT _ TOKEN , Ċĉ ĉ P est Types . DEPRECATED _ TOKEN , Ċĉ ĉ P est Types . DI AC R IT IC _ TOKEN , Ċĉ ĉ P est Types . EXT ENDER _ TOKEN , Ċĉ ĉ P est Types . GR AP HE ME _ BASE _ TOKEN , Ċĉ ĉ P est Types . GR AP HE ME _ EXT END _ TOKEN , Ċĉ ĉ P est Types . GR AP HE ME _ LINK _ TOKEN , Ċĉ ĉ P est Types . HEX _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . HY P HEN _ TOKEN , Ċĉ ĉ P est Types . IDS _ BINARY _ OPERATOR _ TOKEN , Ċĉ ĉ P est Types . IDS _ TR IN ARY _ OPERATOR _ TOKEN , Ċĉ ĉ P est Types . ID _ CONTINUE _ TOKEN , Ċĉ ĉ P est Types . ID _ START _ TOKEN , Ċĉ ĉ P est Types . IDE O GRAPH IC _ TOKEN , Ċĉ ĉ P est Types . JOIN _ CONTROL _ TOKEN , Ċĉ ĉ P est Types . LOG ICAL _ ORDER _ EXCEPTION _ TOKEN , Ċĉ ĉ P est Types . LOWER CASE _ TOKEN , Ċĉ ĉ P est Types . MATH _ TOKEN , Ċĉ ĉ P est Types . NON CHARACTER _ CODE _ POINT _ TOKEN , Ċĉ ĉ P est Types . OTHER _ ALPH AB ET IC _ TOKEN , Ċĉ ĉ P est Types . OTHER _ DEFAULT _ IGN OR ABLE _ CODE _ POINT _ TOKEN , Ċĉ ĉ P est Types . OTHER _ GR AP HE ME _ EXT END _ TOKEN , Ċĉ ĉ P est Types . OTHER _ ID _ CONTINUE _ TOKEN , Ċĉ ĉ P est Types . OTHER _ ID _ START _ TOKEN , Ċĉ ĉ P est Types . OTHER _ LOWER CASE _ TOKEN , Ċĉ ĉ P est Types . OTHER _ MATH _ TOKEN , Ċĉ ĉ P est Types . OTHER _ UPPER CASE _ TOKEN , Ċĉ ĉ P est Types . PATTERN _ SY NTAX _ TOKEN , Ċĉ ĉ P est Types . PATTERN _ WHITE _ SPACE _ TOKEN , Ċĉ ĉ P est Types . PRE PEN DED _ CONCAT EN ATION _ MARK _ TOKEN , Ċĉ ĉ P est Types . QUOT ATION _ MARK _ TOKEN , Ċĉ ĉ P est Types . RAD ICAL _ TOKEN , Ċĉ ĉ P est Types . REGION AL _ IND IC ATOR _ TOKEN , Ċĉ ĉ P est Types . SENT ENCE _ TERMIN AL _ TOKEN , Ċĉ ĉ P est Types . SOFT _ DOT TED _ TOKEN , Ċĉ ĉ P est Types . TERMIN AL _ PUN CT UATION _ TOKEN , Ċĉ ĉ P est Types . UN IFI ED _ IDE O GRAPH _ TOKEN , Ċĉ ĉ P est Types . UPPER CASE _ TOKEN , Ċĉ ĉ P est Types . VARI ATION _ SELECT OR _ TOKEN , Ċĉ ĉ P est Types . WHITE _ SPACE _ TOKEN , Ċĉ ĉ P est Types . X ID _ CONTINUE _ TOKEN , Ċĉ ĉ P est Types . X ID _ START _ TOKEN , Ċĉ ĉ P est Types . ANY _ TOKEN , Ċĉ ĉ P est Types . EO I _ TOKEN , Ċĉ ĉ P est Types . SO I _ TOKEN , Ċĉ ĉ P est Types . ASCII _ TOKEN , Ċĉ ĉ P est Types . NEW LINE _ TOKEN , Ċĉ ĉ P est Types . ASCII _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . ASCII _ ALPHA _ TOKEN , Ċĉ ĉ P est Types . ASCII _ ALPH AN UM ERIC _ TOKEN , Ċĉ ĉ P est Types . ASCII _ NON ZERO _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . ASCII _ BIN _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . ASCII _ OCT _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . ASCII _ HEX _ DIGIT _ TOKEN , Ċĉ ĉ P est Types . ASCII _ ALPHA _ UPPER _ TOKEN , Ċĉ ĉ P est Types . ASCII _ ALPHA _ LOWER _ TOKEN ) ĊĊ ĉ private Ġval ĠKEY WORDS _ LIST Ġ= ĠArrays . asList ( Ċĉ ĉ P est Types . PE EK _ ALL _ TOKEN , Ċĉ ĉ P est Types . POP _ TOKEN , Ċĉ ĉ P est Types . POP _ ALL _ TOKEN , Ċĉ ĉ P est Types . DROP _ TOKEN , Ċĉ ĉ P est Types . COMMENT _ TOKEN , Ċĉ ĉ P est Types . WH ITES PACE _ TOKEN , Ċĉ ĉ P est Types . PUSH _ TOKEN , Ċĉ ĉ P est Types . PE EK _ TOKEN ) ĊĊ ĉ private Ġval ĠOPER ATORS _ LIST Ġ= ĠlistOf ( P est Types . PUSH _ TOKEN , ĠPest Types . PE EK _ TOKEN ) Ċ ĉ private Ġval ĠIDENT IFIER _ LIST Ġ= ĠlistOf ( P est Types . IDENTIFIER _ TOKEN , ĠPest Types . VALID _ RULE _ NAME ) ĊĊ ĉ /** Ġbrackets Ġ*/ Ċ ĉ private Ġval ĠBR ACK S Ġ= ĠlistOf ( P est Types . OPEN ING _ BRACK , ĠPest Types . CLO SING _ BRACK ) Ċ ĉ /** Ġbr aces Ġ*/ Ċ ĉ private Ġval ĠBR ACES Ġ= ĠlistOf ( P est Types . OPEN ING _ BRACE , ĠPest Types . CLO SING _ BRACE ) Ċ ĉ /** Ġparentheses Ġ*/ Ċ ĉ private Ġval ĠP ARE NS Ġ= ĠlistOf ( P est Types . OPEN ING _ PAREN , ĠPest Types . CLO SING _ PAREN ) ĊĊ ĉ override Ġfun Ġget Highlighting Lexer () Ġ= Ġlexer () Ċ ĉ override Ġfun ĠgetToken Highlight s ( type : ĠI ElementType ?): ĠArray < Text Attributes Key > Ġ= Ġwhen Ġ( type ) Ġ{ Ċĉ ĉ P est Types . STRING _ TOKEN Ġ-> ĠSTRING _ KEY Ċĉ ĉ P est Types . CHAR _ TOKEN Ġ-> ĠCHAR _ KEY Ċĉ ĉ P est TokenType . LINE _ COMMENT Ġ-> ĠCOMMENT _ KEY Ċĉ ĉ P est TokenType . LINE _ DOC _ COMMENT , ĠPest TokenType . LINE _ REGEX _ COMMENT Ġ-> ĠDOC _ COMMENT _ KEY Ċĉ ĉ P est TokenType . BLOCK _ COMMENT Ġ-> ĠBLOCK _ COMMENT _ KEY Ċĉ ĉ P est Types . NUMBER , Ċĉ ĉ P est Types . MINUS Ġ-> ĠNUMBER _ KEY Ċĉ ĉ in ĠIDENT IFIER _ LIST Ġ-> ĠIDENT IFIER _ KEY Ċĉ ĉ in ĠP ARE NS -> ĠP AREN _ KEY Ċĉ ĉ in ĠBR ACK S Ġ-> ĠBR ACK _ KEY Ċĉ ĉ in ĠBR ACES Ġ-> ĠBR ACE _ KEY Ċĉ ĉ in ĠKEY WORDS _ LIST Ġ-> ĠKEY WORD _ KEY Ċĉ ĉ in ĠBU IL T INS _ LIST Ġ-> ĠBU IL TIN _ KEY Ċĉ ĉ in ĠOPER ATORS _ LIST Ġ-> ĠOPER ATOR _ KEY Ċĉ ĉ else Ġ-> Ġempty Array () Ċ ĉ } Ċ } Ċ Ċ class ĠPest Highlight er Factory Ġ: ĠSyntax Highlight er Factory () Ġ{ Ċ ĉ override Ġfun Ġget Syntax Highlight er ( project : ĠProject ?, Ġvirtual File : ĠVirtual File ?) Ġ= ĠPest Highlight er Ċ } Ċ Ċ class ĠPest Color Settings Page Ġ: ĠColor Settings Page Ġ{ Ċ ĉ private Ġcompanion Ġobject ĠDescriptor Holder Ġ{ Ċĉ ĉ private Ġval ĠDESCRIP T ORS Ġ= ĠarrayOf ( Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . un resolved "), ĠPest Highlight er . UN RESOL VED ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . builtin "), ĠPest Highlight er . BUIL TIN ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . simple "), ĠPest Highlight er . SIMPLE ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . silent "), ĠPest Highlight er . SIL ENT ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . atomic "), ĠPest Highlight er . ATOMIC ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . compound - atomic "), ĠPest Highlight er . COMP O UND _ ATOMIC ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . non - atomic "), ĠPest Highlight er . NON _ ATOMIC ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . number "), ĠPest Highlight er . NUMBER ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . string "), ĠPest Highlight er . STRING ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . char "), ĠPest Highlight er . CHAR ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . comment "), ĠPest Highlight er . COMMENT ), Ċĉĉ ĉ Attributes Descriptor ( P est Bundle . message (" pe st . highlighter . settings . block - comment "), ĠPest Highlight er . BLOCK _ COMMENT )) ĊĊĉ ĉ private Ġval ĠADD ITION AL _ DESCRIPT ORS Ġ= Ġmap Of ( Ċĉĉ ĉ " Un resolved " Ġto ĠPest Highlight er . UN RESOL VED , Ċĉĉ ĉ " Simple " Ġto ĠPest Highlight er . SIMPLE , Ċĉĉ ĉ " Sil ent " Ġto ĠPest Highlight er . SIL ENT , Ċĉĉ ĉ " Atomic " Ġto ĠPest Highlight er . ATOMIC , Ċĉĉ ĉ " Compound Atomic " Ġto ĠPest Highlight er . COMP O UND _ ATOMIC , Ċĉĉ ĉ " Non Atomic " Ġto ĠPest Highlight er . NON _ ATOMIC Ċĉ ĉ ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Highlight er (): ĠSyntax Highlight er Ġ= ĠPest Highlight er Ċ ĉ override Ġfun Ġget Additional Highlighting Tag To Descriptor Map () Ġ= ĠADD ITION AL _ DESCRIPT ORS Ċ ĉ override Ġfun Ġget Icon () Ġ= ĠPest Icons . PE ST Ċ ĉ override Ġfun Ġget Attribute Descriptors () Ġ= ĠDESCRIP T ORS Ċ ĉ override Ġfun Ġget Color Descriptors (): ĠArray < Color Descriptor > Ġ= ĠColor Descriptor . EMPTY _ ARRAY Ċ ĉ override Ġfun Ġget DisplayName () Ġ= ĠPest FileType . name Ċ ĉ @ Language (" P est ") Ċ ĉ override Ġfun Ġget Demo Text () Ġ= Ġ""" // ĠSyntax ĠSample Ċ /* ĠBlock Ġcomment Ġ*/ Ċ < Compound Atomic > compound _ atomic _ rule </ Compound Atomic > Ġ= Ġ@{ Ġ< Simple > simple _ rule </ Simple > Ġ~ Ġ! " a "{ 2 , Ġ 3 } Ġ} Ċ /// Red Ċ < Sil ent > silent _ rule </ Sil ent > Ġ= Ġ_ { Ġ< Atomic > atomic _ rule </ Atomic > Ġ~ Ġ' 1 ' .. ' 2 ' Ġ} Ċ < Atomic > atomic _ rule </ Atomic > Ġ= Ġ${ '$ ' }{ Ġ< Non Atomic > non _ atomic _ rule </ Non Atomic > Ġ} Ċ < Non Atomic > non _ atomic _ rule </ Non Atomic > Ġ= Ġ! { Ġ< Compound Atomic > compound _ atomic _ rule </ Compound Atomic > Ġ} Ċ < Simple > simple _ rule </ Simple > Ġ= Ġ{ ĠP USH Ġ(" string ") Ġ~ ĊĠ Ġ< Un resolved > un resolved _ rule </ Un resolved > Ġ~ ĊĠ Ġ< Sil ent > silent _ rule </ Sil ent > Ġ~ ĊĠ Ġ(! " PRE " Ġ~ ĠID _ CONTINUE ) Ġ} Ċ """ Ċ } Ċ