context default
    keyword whole auto yellow
    keyword whole break yellow
    keyword whole case yellow
    keyword whole char yellow
    keyword whole const yellow
    keyword whole continue yellow
    keyword whole default yellow
    keyword whole do yellow
    keyword whole double yellow
    keyword whole else yellow
    keyword whole enum yellow
    keyword whole extern yellow
    keyword whole float yellow
    keyword whole for yellow
    keyword whole goto yellow
    keyword whole if yellow
    keyword whole int yellow
    keyword whole long yellow
    keyword whole register yellow
    keyword whole return yellow
    keyword whole short yellow
    keyword whole signed yellow
    keyword whole sizeof yellow
    keyword whole static yellow
    keyword whole struct yellow
    keyword whole switch yellow
    keyword whole typedef yellow
    keyword whole union yellow
    keyword whole unsigned yellow
    keyword whole void yellow
    keyword whole volatile yellow
    keyword whole while yellow
    keyword whole asm yellow
    keyword whole catch yellow
    keyword whole class yellow
    keyword whole friend yellow
    keyword whole delete yellow
    keyword whole inline yellow
    keyword whole new yellow
    keyword whole operator yellow
    keyword whole private yellow
    keyword whole protected yellow
    keyword whole public yellow
    keyword whole this yellow
    keyword whole throw yellow
    keyword whole template yellow
    keyword whole try yellow
    keyword whole virtual yellow
    keyword whole bool yellow
    keyword whole const_cast yellow
    keyword whole dynamic_cast yellow
    keyword whole explicit yellow
    keyword whole false yellow
    keyword whole mutable yellow
    keyword whole namespace yellow
    keyword whole reinterpret_cast yellow
    keyword whole static_cast yellow
    keyword whole true yellow
    keyword whole typeid yellow
    keyword whole typename yellow
    keyword whole using yellow
    keyword whole wchar_t yellow
    keyword whole ... yellow
    keyword whole linestart \{\s\t\}\[\s\t\]#*\n brightmagenta

    keyword whole accept yellow
    keyword whole code yellow
    keyword whole debug yellow
    keyword whole defines yellow
    keyword whole destructor yellow
    keyword whole dprec yellow
    keyword whole end yellow
    keyword whole error yellow
    keyword whole error-verbose yellow
    keyword whole expect yellow
    keyword whole file-prefix yellow
    keyword whole glr-parser yellow
    keyword whole initial-action yellow
    keyword whole language yellow
    keyword whole left yellow
    keyword whole lex-param yellow
    keyword whole locations yellow
    keyword whole merge yellow
    keyword whole name-prefix yellow
    keyword whole node yellow
    keyword whole nonassoc yellow
    keyword whole no-parser yellow
    keyword whole no-lines yellow
    keyword whole output yellow
    keyword whole parse-param yellow
    keyword whole prec yellow
    keyword whole pure-parser yellow
    keyword whole require yellow
    keyword whole right yellow
    keyword whole skeleton yellow
    keyword whole start yellow
    keyword whole token yellow
    keyword whole token-table yellow
    keyword whole type yellow
    keyword whole undefined yellow
    keyword whole union yellow
    keyword whole verbose yellow
    keyword whole yacc yellow

    keyword whole YYABORT brightred
    keyword whole YYACCEPT brightred
    keyword whole YYBACKUP brightred
    keyword whole YYDEBUG brightred
    keyword whole YYERROR brightred
    keyword whole YYERROR_VERBOSE brightred
    keyword whole YYINITDEPTH brightred
    keyword whole YYLEX_PARAM brightred
    keyword whole YYLTYPE brightred
    keyword whole YYMAXDEPTH brightred
    keyword whole YYPARSE_PARAM brightred
    keyword whole YYRECOVERING brightred
    keyword whole YYSTACK_USE_ALLOCA brightred
    keyword whole YYSTYPE brightred

    keyword whole yychar brightmagenta
    keyword whole yyclearin brightmagenta
    keyword whole yydebug brightmagenta
    keyword whole yyerrok brightmagenta
    keyword whole yyerror brightmagenta
    keyword whole yylex brightmagenta
    keyword whole yylloc brightmagenta
    keyword whole yylval brightmagenta
    keyword whole yynerrs brightmagenta
    keyword whole yyparse brightmagenta
    keyword whole yypstate_delete brightmagenta
    keyword whole yypstate_new brightmagenta
    keyword whole yypull_parse brightmagenta
    keyword whole yypush_parse brightmagenta
    keyword whole yywrap brightmagenta

    keyword /\* brown
    keyword \*/ brown
    keyword // brown

    keyword '\\\{"abtnvfr\}' brightgreen
    keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
    keyword '\\'' brightgreen
    keyword '\\\\' brightgreen
    keyword '\\0' brightgreen
    keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen

    keyword > yellow
    keyword < yellow
    keyword \+ yellow
    keyword - yellow
    keyword \* yellow
    keyword / yellow
    keyword % yellow
    keyword = yellow
    keyword != yellow
    keyword == yellow
    keyword { brightcyan
    keyword } brightcyan
    keyword ( brightcyan
    keyword ) brightcyan
    keyword [ brightcyan
    keyword ] brightcyan
    keyword , brightcyan
    keyword : brightcyan
    keyword ? brightcyan
    keyword ; brightmagenta

    keyword wholeright %{ brightcyan
    keyword wholeright %} brightcyan
    keyword wholeright %% brightcyan
    keyword % yellow
    keyword $$ yellow
    keyword $\[0123456789\] yellow
    keyword @$ yellow
    keyword @\[0123456789\] yellow

context exclusive /\* \*/ brown
    spellcheck

context exclusive // \n brown
    spellcheck

context linestart # \n brightred
    keyword \\\n yellow
    keyword /\**\*/ brown
    keyword //*\n brown
    keyword "+" red
    keyword <+> red

context " " green
    spellcheck
    keyword \\" brightgreen
    keyword %% brightgreen
    keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
    keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
    keyword %\[hl\]n brightgreen
    keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
    keyword %[*] brightgreen
    keyword %c brightgreen
    keyword %p brightgreen
    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
    keyword \\\\ brightgreen
    keyword \\' brightgreen
    keyword \\\{abtnvfr\} brightgreen
