static const char CVSID[] = "$Id: highlightData.c,v 1.68 2004/08/01 10:06:10 yooden Exp $"; /******************************************************************************* * * * highlightData.c -- Maintain, and allow user to edit, highlight pattern list * * used for syntax highlighting * * * * Copyright (C) 1999 Mark Edel * * * * This is free software; you can redistribute it and/or modify it under the * * terms of the GNU General Public License as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any later * * version. In addition, you may distribute version of this program linked to * * Motif or Open Motif. See README for details. * * * * This software is distributed in the hope that it will be useful, but WITHOUT * * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * * for more details. * * * * You should have received a copy of the GNU General Public License along with * * software; if not, write to the Free Software Foundation, Inc., 59 Temple * * Place, Suite 330, Boston, MA 02111-1307 USA * * * * Nirvana Text Editor * * April, 1997 * * * * Written by Mark Edel * * * *******************************************************************************/ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include "highlightData.h" #include "textBuf.h" #include "nedit.h" #include "highlight.h" #include "regularExp.h" #include "preferences.h" #include "help.h" #include "window.h" #include "regexConvert.h" #include "../util/misc.h" #include "../util/DialogF.h" #include "../util/managedList.h" #include #include #include #ifdef VMS #include "../util/VMSparam.h" #else #ifndef __MVS__ #include #endif #endif /*VMS*/ #include #include #include #include #include #include #include #include #include #ifdef HAVE_DEBUG_H #include "../debug.h" #endif /* Maximum allowed number of styles (also limited by representation of styles as a byte - 'b') */ #define MAX_HIGHLIGHT_STYLES 128 /* Maximum number of patterns allowed in a pattern set (regular expression limitations are probably much more restrictive). */ #define MAX_PATTERNS 127 /* Names for the fonts that can be used for syntax highlighting */ #define N_FONT_TYPES 4 enum fontTypes {PLAIN_FONT, ITALIC_FONT, BOLD_FONT, BOLD_ITALIC_FONT}; static const char *FontTypeNames[N_FONT_TYPES] = {"Plain", "Italic", "Bold", "Bold Italic"}; typedef struct { char *name; char *color; char *bgColor; int font; } highlightStyleRec; static int styleError(const char *stringStart, const char *stoppedAt, const char *message); #if 0 static int lookupNamedPattern(patternSet *p, char *patternName); #endif static int lookupNamedStyle(const char *styleName); static highlightPattern *readHighlightPatterns(char **inPtr, int withBraces, char **errMsg, int *nPatterns); static int readHighlightPattern(char **inPtr, char **errMsg, highlightPattern *pattern); static patternSet *readDefaultPatternSet(const char *langModeName); static int isDefaultPatternSet(patternSet *patSet); static patternSet *readPatternSet(char **inPtr, int convertOld); static patternSet *highlightError(char *stringStart, char *stoppedAt, const char *message); static char *intToStr(int i); static char *createPatternsString(patternSet *patSet, char *indentStr); static void setStyleByName(const char *style); static void hsDestroyCB(Widget w, XtPointer clientData, XtPointer callData); static void hsOkCB(Widget w, XtPointer clientData, XtPointer callData); static void hsApplyCB(Widget w, XtPointer clientData, XtPointer callData); static void hsCloseCB(Widget w, XtPointer clientData, XtPointer callData); static highlightStyleRec *copyHighlightStyleRec(highlightStyleRec *hs); static void *hsGetDisplayedCB(void *oldItem, int explicitRequest, int *abort, void *cbArg); static void hsSetDisplayedCB(void *item, void *cbArg); static highlightStyleRec *readHSDialogFields(int silent); static void hsFreeItemCB(void *item); static void freeHighlightStyleRec(highlightStyleRec *hs); static int hsDialogEmpty(void); static int updateHSList(void); static void updateHighlightStyleMenu(void); static void convertOldPatternSet(patternSet *patSet); static void convertPatternExpr(char **patternRE, char *patSetName, char *patName, int isSubsExpr); static Widget createHighlightStylesMenu(Widget parent); static void destroyCB(Widget w, XtPointer clientData, XtPointer callData); static void langModeCB(Widget w, XtPointer clientData, XtPointer callData); static void lmDialogCB(Widget w, XtPointer clientData, XtPointer callData); static void styleDialogCB(Widget w, XtPointer clientData, XtPointer callData); static void patTypeCB(Widget w, XtPointer clientData, XtPointer callData); static void matchTypeCB(Widget w, XtPointer clientData, XtPointer callData); static int checkHighlightDialogData(void); static void updateLabels(void); static void okCB(Widget w, XtPointer clientData, XtPointer callData); static void applyCB(Widget w, XtPointer clientData, XtPointer callData); static void checkCB(Widget w, XtPointer clientData, XtPointer callData); static void restoreCB(Widget w, XtPointer clientData, XtPointer callData); static void deleteCB(Widget w, XtPointer clientData, XtPointer callData); static void closeCB(Widget w, XtPointer clientData, XtPointer callData); static void helpCB(Widget w, XtPointer clientData, XtPointer callData); static void *getDisplayedCB(void *oldItem, int explicitRequest, int *abort, void *cbArg); static void setDisplayedCB(void *item, void *cbArg); static void setStyleMenu(const char *styleName); static highlightPattern *readDialogFields(int silent); static int dialogEmpty(void); static int updatePatternSet(void); static patternSet *getDialogPatternSet(void); static int patternSetsDiffer(patternSet *patSet1, patternSet *patSet2); static highlightPattern *copyPatternSrc(highlightPattern *pat, highlightPattern *copyTo); static void freeNonNull(void *ptr); static void freeItemCB(void *item); static void freePatternSrc(highlightPattern *pat, int freeStruct); static void freePatternSet(patternSet *p); /* list of available highlight styles */ static int NHighlightStyles = 0; static highlightStyleRec *HighlightStyles[MAX_HIGHLIGHT_STYLES]; /* Highlight styles dialog information */ static struct { Widget shell; Widget nameW; Widget colorW; Widget bgColorW; Widget recogW; Widget plainW, boldW, italicW, boldItalicW; Widget managedListW; highlightStyleRec **highlightStyleList; int nHighlightStyles; } HSDialog = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0}; /* Highlight dialog information */ static struct { Widget shell; Widget lmOptMenu; Widget lmPulldown; Widget styleOptMenu; Widget stylePulldown; Widget nameW; Widget topLevelW; Widget deferredW; Widget subPatW; Widget colorPatW; Widget simpleW; Widget rangeW; Widget parentW; Widget startW; Widget endW; Widget errorW; Widget lineContextW; Widget charContextW; Widget managedListW; Widget parentLbl; Widget startLbl; Widget endLbl; Widget errorLbl; Widget matchLbl; char *langModeName; int nPatterns; highlightPattern **patterns; } HighlightDialog = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL }; /* Pattern sources loaded from the .nedit file or set by the user */ static int NPatternSets = 0; static patternSet *PatternSets[MAX_LANGUAGE_MODES]; static char *DefaultPatternSets[] = { "Ada:1:0{\n\ Comments:\"--\":\"$\"::Comment::\n\ String Literals:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ Character Literals:\"'(?:[^\\\\]|\\\\.)'\":::Character Const::\n\ Ada Attributes:\"(?i'size\\s+(use)>)|'\\l[\\l\\d]*(?:_[\\l\\d]+)*\":::Ada Attributes::\n\ Size Attribute:\"\\1\":\"\"::Keyword:Ada Attributes:C\n\ Based Numeric Literals:\"<(?:\\d+(?:_\\d+)*)#(?:[\\da-fA-F]+(?:_[\\da-fA-F]+)*)(?:\\.[\\da-fA-F]+(?:_[\\da-fA-F]+)*)?#(?iE[+\\-]?(?:\\d+(?:_\\d+)*))?(?!\\Y)\":::Numeric Const::\n\ Numeric Literals:\"<(?:\\d+(?:_\\d+)*)(?:\\.\\d+(?:_\\d+)*)?(?iE[+\\-]?(?:\\d+(?:_\\d+)*))?>\":::Numeric Const::\n\ Pragma:\"(?n(?ipragma)\\s+\\l[\\l\\d]*(?:_\\l[\\l\\d]*)*\\s*\\([^)]*\\)\\s*;)\":::Preprocessor::\n\ Withs Use:\"(?#Make \\s work across newlines)(?n(?iwith|use)(?#Leading W/S)\\s+(?#First package name)(?:\\l[\\l\\d]*(?:(_|\\.\\l)[\\l\\d]+)*)(?#Additional package names [optional])(?:\\s*,\\s*(?:\\l[\\l\\d]*(?:(_|\\.\\l)[\\l\\d]+)*))*(?#Trailing W/S)\\s*;)+\":::Preprocessor::\n\ Predefined Types:\"(?i(?=[bcdfilps]))<(?iboolean|character|count|duration|float|integer|long_float|long_integer|priority|short_float|short_integer|string)>\":::Storage Type::D\n\ Predefined Subtypes:\"(?i(?=[fnp]))<(?ifield|natural|number_base|positive|priority)>\":::Storage Type::D\n\ Reserved Words:\"(?i(?=[a-gil-pr-uwx]))<(?iabort|abs|accept|access|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|is|limited|loop|mod|new|not|null|of|or|others|out|package|pragma|private|procedure|raise|range|record|rem|renames|return|reverse|select|separate|subtype|task|terminate|then|type|use|when|while|with|xor)>\":::Keyword::D\n\ Dot All:\"\\.(?iall)>\":::Storage Type::\n\ Ada 95 Only:\"(?i(?=[aprtu]))<(?iabstract|tagged|all|protected|aliased|requeue|until)>\":::Keyword::\n\ Labels Parent:\"<(\\l[\\l\\d]*(?:_[\\l\\d]+)*)(?n\\s*:\\s*)(?ifor|while|loop|declare|begin)>\":::Keyword::D\n\ Labels subpattern:\"\\1\":\"\"::Label:Labels Parent:DC\n\ Endloop labels:\"<(?nend\\s+loop\\s+(\\l[\\l\\d]*(?:_[\\l\\d]+)*\\s*));\":::Keyword::\n\ Endloop labels subpattern:\"\\1\":\"\"::Label:Endloop labels:C\n\ Goto labels:\"\\<\\<\\l[\\l\\d]*(?:_[\\l\\d]+)*\\>\\>\":::Flag::\n\ Exit parent:\"((?iexit))\\s+(\\l\\w*)(?i\\s+when>)?\":::Keyword::\n\ Exit subpattern:\"\\2\":\"\"::Label:Exit parent:C\n\ Identifiers:\"<(?:\\l[\\l\\d]*(?:_[\\l\\d]+)*)>\":::Identifier::D}", "Awk:2:0{\n\ Comment:\"#\":\"$\"::Comment::\n\ Pattern:\"/(\\\\.|([[][]]?[^]]+[]])|[^/])+/\":::Preprocessor::\n\ Keyword:\"<(return|print|printf|if|else|while|for|in|do|break|continue|next|exit|close|system|getline)>\":::Keyword::D\n\ String:\"\"\"\":\"\"\"\":\"\\n\":String1::\n\ String escape:\"\\\\(.|\\n)\":::String1:String:\n\ Builtin functions:\"<(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gsub|index|length|match|split|sprintf|sub|substr)>\":::Keyword::D\n\ Gawk builtin functions:\"<(fflush|gensub|tolower|toupper|systime|strftime)>\":::Text Key1::D\n\ Builtin variables:\"<(ARGC|ARGV|FILENAME|FNR|FS|NF|NR|OFMT|OFS|ORS|RLENGTH|RS|RSTART|SUBSEP)>\":::Storage Type::D\n\ Gawk builtin variables:\"\"\"<(ARGIND|ERRNO|RT|IGNORECASE|FIELDWIDTHS)>\"\"\":::Storage Type::D\n\ Field:\"\\$[0-9a-zA-Z_]+|\\$[ \\t]*\\([^,;]*\\)\":::Storage Type::D\n\ BeginEnd:\"<(BEGIN|END)>\":::Preprocessor1::D\n\ Numeric constant:\"(?\":\"$\"::Preprocessor::\n\ string escape chars:\"\\\\(?:.|\\n)\":::String1:string:\n\ preprocessor esc chars:\"\\\\(?:.|\\n)\":::Preprocessor1:preprocessor line:\n\ preprocessor comment:\"/\\*\":\"\\*/\"::Comment:preprocessor line:\n\ preproc cplus comment:\"//\":\"$\"::Comment:preprocessor line:\n\ preprocessor keywords:\"<__(?:LINE|FILE|DATE|TIME|STDC)__>\":::Preprocessor::\n\ character constant:\"L?'\":\"'\":\"[^\\\\][^']\":Character Const::\n\ numeric constant:\"(?\":::Storage Type::D\n\ keyword:\"<(?:new|delete|this|return|goto|if|else|case|default|switch|break|continue|while|do|for|try|catch|throw|sizeof|true|false|namespace|using|dynamic_cast|static_cast|reinterpret_cast|const_cast)>\":::Keyword::D\n\ braces:\"[{}]\":::Keyword::D}", "C:1:0 {\n\ comment:\"/\\*\":\"\\*/\"::Comment::\n\ string:\"L?\"\"\":\"\"\"\":\"\\n\":String::\n\ preprocessor line:\"^\\s*#\\s*(?:include|define|if|ifn?def|line|error|else|endif|elif|undef|pragma)>\":\"$\"::Preprocessor::\n\ string escape chars:\"\\\\(?:.|\\n)\":::String1:string:\n\ preprocessor esc chars:\"\\\\(?:.|\\n)\":::Preprocessor1:preprocessor line:\n\ preprocessor comment:\"/\\*\":\"\\*/\"::Comment:preprocessor line:\n\ preprocessor keywords:\"<__(?:LINE|FILE|DATE|TIME|STDC)__>\":::Preprocessor::\n\ character constant:\"L?'\":\"'\":\"[^\\\\][^']\":Character Const::\n\ numeric constant:\"(?\":::Storage Type::D\n\ keyword:\"<(?:return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)>\":::Keyword::D\n\ braces:\"[{}]\":::Keyword::D}", "CSS:1:0{\n\ comment:\"/\\*\":\"\\*/\"::Comment::\n\ import rule:\"@import\\s+(url\\([^)]+\\))\\s*\":\";\"::Warning::\n\ import delim:\"&\":\"&\"::Preprocessor:import rule:C\n\ import url:\"\\1\":::Subroutine1:import rule:C\n\ import media:\"(all|screen|print|projection|aural|braille|embossed|handheld|tty|tv|,)\":::Preprocessor1:import rule:\n\ media rule:\"(@media)\\s+\":\"(?=\\{)\"::Warning::\n\ media delim:\"&\":\"&\"::Preprocessor:media rule:C\n\ media type:\"(all|screen|print|projection|aural|braille|embossed|handheld|tty|tv|,)\":::Preprocessor1:media rule:\n\ charset rule:\"@charset\\s+(\"\"[^\"\"]+\"\")\\s*;\":::Preprocessor::\n\ charset name:\"\\1\":::String:charset rule:C\n\ font-face rule:\"@font-face\":::Preprocessor::\n\ page rule:\"@page\":\"(?=\\{)\"::Preprocessor1::\n\ page delim:\"&\":\"&\"::Preprocessor:page rule:C\n\ page pseudo class:\":(first|left|right)\":::Storage Type:page rule:\n\ declaration:\"\\{\":\"\\}\"::Warning::\n\ declaration delims:\"&\":\"&\"::Keyword:declaration:C\n\ declaration comment:\"/\\*\":\"\\*/\"::Comment:declaration:\n\ property:\"<(azimuth|background(-(attachment|color|image|position|repeat))?|border(-(bottom(-(color|style|width))?|-(color|style|width)|collapse|color|left(-(color|style|width))?|right(-(color|style|width))?|spacing|style|top(-(color|style|width))?|width))?|bottom|caption-side|clear|clip|color|content|counter-(increment|reset)|cue(-(after|before))?|cursor|direction|display|elevation|empty-cells|float|font(-(family|size|size-adjust|stretch|style|variant|weight))?|height|left|letter-spacing|line-height|list-style(-(image|position|type))?|margin(-(bottom|left|right|top))?|marker-offset|marks|max-(height|width)|min-(height|width)|orphans|outline(-(color|style|width))?|overflow|padding(-(bottom|left|right|top))?|page(-break-(after|before|inside))?|pause(-(after|before))?|pitch(-range)?|play-during|position|quotes|richness|right|size|speak(-(header|numeral|punctuation))?|speech-rate|stress|table-layout|text(-(align|decoration|indent|shadow|transform))|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index)>\":::Identifier1:declaration:\n\ value:\":\":\";\":\"\\}\":Warning:declaration:\n\ value delims:\"&\":\"&\"::Keyword:value:C\n\ value modifier:\"!important|inherit\":::Keyword:value:\n\ uri value:\")?\\)|)?\\)\":::Subroutine:value:\n\ color value:\"(#[A-Fa-f\\d]{6}>|#[A-Fa-f\\d]{3}>|rgb\\(([+-]?\\d+(\\.\\d*)?)\\s*,\\s*([+-]?\\d+(\\.\\d*)?)\\s*,\\s*([+-]?\\d+(\\.\\d*)?)\\)|rgb\\(([+-]?\\d+(\\.\\d*)?%)\\s*,\\s*([+-]?\\d+(\\.\\d*)?%)\\s*,\\s*([+-]?\\d+(\\.\\d*)?%)\\)|<(?iaqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow)>|)\":::Text Arg2:value:\n\ dimension value:\"[+-]?(\\d*\\.\\d+|\\d+)(in|cm|mm|pt|pc|em|ex|px|deg|grad|rad|s|ms|hz|khz)>\":::Numeric Const:value:\n\ percentage value:\"[+-]?(\\d*\\.\\d+|\\d+)%\":::Numeric Const:value:\n\ named value:\"<(100|200|300|400|500|600|700|800|900|above|absolute|always|armenian|auto|avoid|baseline|behind|below|bidi-override|blink|block|bold|bolder|both|bottom|capitalize|caption|center(?:-left|-right)?|child|circle|cjk-ideographic|close-quote|code|collapse|compact|condensed|continuous|crop|cross(?:hair)?|cursive|dashed|decimal(?:-leading-zero)?|default|digits|disc|dotted|double|e-resize|embed|expanded|extra(?:-condensed|-expanded)|fantasy|far(?:-left|-right)|fast(?:er)?|female|fixed|georgian|groove|hebrew|help|hidden|hide|high(?:er)?|hiragana(?:-iroha)?|icon|inherit|inline(?:-table)?|inset|inside|italic|justify|katakana(?:-iroha)?|landscape|larger?|left(?:-side|wards)?|level|lighter|line-through|list-item|loud|low(?:er(?:-alpha|-greek|-latin|-roman|case)?)?|ltr|male|marker|medium|menu|message-box|middle|mix|monospace|move|n-resize|narrower|ne-resize|no(?:-close-quote|-open-quote|-repeat)|none|normal|nowrap|nw-resize|oblique|once|open-quote|out(?:set|side)|overline|pointer|portrait|pre|relative|repeat(?:-x|-y)?|ridge|right(?:-side|wards)?|rtl|run-in|s-resize|sans-serif|scroll|se-resize|semi(?:-condensed|-expanded)|separate|serif|show|silent|slow(?:er)?|small(?:-caps|-caption|er)?|soft|solid|spell-out|square|static|status-bar|sub|super|sw-resize|table(?:-caption|-cell|-column(?:-group)?|-footer-group|-header-group|-row(?:-group)?)?|text(?:-bottom|-top)?|thick|thin|top|ultra(?:-condensed|-expanded)|underline|upper(?:-alpha|-latin|-roman|case)|visible|w-resize|wait|wider|x-(?:fast|high|large|loud|low|slow|small|soft)|xx-(large|small))>\":::Text Arg2:value:\n\ integer value:\"<\\d+>\":::Numeric Const:value:\n\ font family:\"(?iarial|courier|impact|helvetica|lucida|symbol|times|verdana)\":::String:value:\n\ dq string value:\"\"\"\":\"\"\"\":\"\\n\":String:value:\n\ dq string escape:\"\\\\([ -~\\0200-\\0377]|[\\l\\d]{1,6}\\s?)\":::Text Escape:dq string value:\n\ dq string continuation:\"\\\\\\n\":::Text Escape:dq string value:\n\ sq string value:\"'\":\"'\":\"\\n\":String:value:\n\ sq string escape:\"\\\\([ -~\\0200-\\0377]|[\\l\\d]{1,6}\\s?)\":::Text Escape:sq string value:\n\ sq string continuation:\"\\\\\\n\":::Text Escape:sq string value:\n\ operators:\"[,/]\":::Keyword:value:\n\ selector id:\"#[-\\w]+>\":::Pointer::\n\ selector class:\"\\.[-\\w]+>\":::Storage Type::\n\ selector pseudo class:\":(first-child|link|visited|hover|active|focus|lang(\\([\\-\\w]+\\))?)(?!\\Y)\":::Text Arg1::\n\ selector attribute:\"\\[[^\\]]+\\]\":::Ada Attributes::\n\ selector operators:\"[,>*+]\":::Keyword::\n\ selector pseudo element:\":(first-letter|first-line|before|after)>\":::Text Arg::\n\ type selector:\"<[\\l_][-\\w]*>\":::Plain::\n\ free text:\".\":::Warning::\n\ info:\"(?# version 1.31; author/maintainer: Joor Loohuis, joor@loohuis-consulting.nl)\":::Plain::D}", "Csh:1:0{\n\ Comment:\"#\":\"$\"::Comment::\n\ Single Quote String:\"'\":\"([^\\\\]'|^')\":\"\\n\":String::\n\ SQ String Esc Char:\"\\\\([bcfnrt$\\n\\\\]|[0-9][0-9]?[0-9]?)\":::String1:Single Quote String:\n\ Double Quote String:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ DQ String Esc Char:\"\\\\([bcfnrt\\n\\\\]|[0-9][0-9]?[0-9]?)\":::String1:Double Quote String:\n\ Keywords:\"(^|[`;()])[ ]*(return|if|endif|then|else|switch|endsw|while|end|foreach|do|done)>\":::Keyword::D\n\ Variable Ref:\"\\$([<$0-9\\*]|[#a-zA-Z_?][0-9a-zA-Z_[\\]]*(:([ehqrtx]|gh|gt|gr))?|\\{[#0-9a-zA-Z_?][a-zA-Z0-9_[\\]]*(:([ehqrtx]|gh|gt|gr))?})\":::Identifier1::\n\ Variable in String:\"\\$([<$0-9\\*]|[#a-zA-Z_?][0-9a-zA-Z_[\\]]*(:([ehqrtx]|gh|gt|gr))?|\\{[#0-9a-zA-Z_?][a-zA-Z0-9_[\\]]*(:([ehqrtx]|gh|gt|gr))?})\":::Identifier1:Double Quote String:\n\ Naked Variable Cmds:\"<(unset|set|setenv|shift)[ \\t]+[0-9a-zA-Z_]*(\\[.+\\])?\":::Identifier1::\n\ Recolor Naked Cmd:\"\\1\":::Keyword:Naked Variable Cmds:C\n\ Built In Cmds:\"(^|\\|&|[\\|`;()])[ ]*(alias|bg|break|breaksw|case|cd|chdir|continue|default|echo|eval|exec|exit|fg|goto|glob|hashstat|history|jobs|kill|limit|login|logout|nohup|notify|nice|onintr|popd|pushd|printenv|read|rehash|repeat|set|setenv|shift|source|suspend|time|umask|unalias|unhash|unlimit|unset|unsetenv|wait)>\":::Keyword::D\n\ Tcsh Built In Cmds:\"(^|\\|&|[\\|`;()])[ ]*(alloc|bindkey|builtins|complete|echotc|filetest|hup|log|sched|settc|setty|stop|telltc|uncomplete|where|which|dirs|ls-F)>\":::Keyword::D\n\ Special Chars:\"([-{};.,<>&~=!|^%[\\]\\+\\*\\|()])\":::Keyword::D}", "Fortran:2:0{\n\ Comment:\"^[Cc*!]\":\"$\"::Comment::\n\ Bang Comment:\"!\":\"$\"::Comment::\n\ Debug Line:\"^D\":\"$\"::Preprocessor::\n\ String:\"'\":\"'\":\"\\n([^ \\t]| [^ \\t]| [^ \\t]| [^ \\t]| [^ \\t]| [ \\t0]| *\\t[^1-9])\":String::\n\ Keywords:\"<(?iaccept|automatic|backspace|block|call|close|common|continue|data|decode|delete|dimension|do|else|elseif|encode|enddo|end *file|endif|end|entry|equivalence|exit|external|format|function|go *to|if|implicit|include|inquire|intrinsic|logical|map|none|on|open|parameter|pause|pointer|print|program|read|record|return|rewind|save|static|stop|structure|subroutine|system|then|type|union|unlock|virtual|volatile|while|write)>\":::Keyword::D\n\ Data Types:\"<(?ibyte|character|complex|double *complex|double *precision|double|integer|real)(\\*[0-9]+)?>\":::Keyword::D\n\ F90 Keywords:\"<(?iallocatable|allocate|case|case|cycle|deallocate|elsewhere|namelist|recursive|rewrite|select|where|intent|optional)>\":::Keyword::D\n\ Continuation:\"^( [^ \\t0]|( | | | )?\\t[1-9])\":::Flag::\n\ Continuation in String:\"\\n( [^ \\t0]|( | | | )?\\t[1-9])\":::Flag:String:}", "Java:3:0{\n\ README:\"Java highlighting patterns for NEdit 5.1. Version 1.5 Author/maintainer: Joachim Lous - jlous at users.sourceforge.net\":::Flag::D\n\ doccomment:\"/\\*\\*\":\"\\*/\"::Text Comment::\n\ doccomment tag:\"@\\l*\":::Text Key1:doccomment:\n\ comment:\"/\\*\":\"\\*/\"::Comment::\n\ cplus comment:\"//\":\"$\"::Comment::\n\ string:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ string escape:\"(?:\\\\u[\\dA-Faf]{4}|\\\\[0-7]{1,3}|\\\\[btnfr'\"\"\\\\])\":::String1:string:\n\ single quoted:\"'\":\"'\":\"\\n\":String::\n\ single quoted escape:\"(?:\\\\u[\\dA-Faf]{4}|\\\\[0-7]{1,3}|\\\\[btnfr'\"\"\\\\])(?=')\":::String1:single quoted:\n\ single quoted char:\".(?=')\":::String:single quoted:\n\ single quoted error:\".\":::Flag:single quoted:\n\ hex const:\"<(?i0[X][\\dA-F]+)>\":::Numeric Const::\n\ long const:\"<(?i[\\d]+L)>\":::Numeric Const::\n\ decimal const:\"(?\":\";\":\"\\n\":Preprocessor::\n\ classdef:\"<(?:class|interface)>\\s*\\n?\\s*([\\l_]\\w*)\":::Keyword::\n\ classdef name:\"\\1\":\"\"::Storage Type:classdef:C\n\ extends:\"<(?:extends)>\":\"(?=(?:|[{;]))\"::Keyword::\n\ extends argument:\"<[\\l_][\\w\\.]*(?=\\s*(?:/\\*.*\\*/)?(?://.*)?\\n?\\s*(?:[,;{]|))\":::Storage Type:extends:\n\ extends comma:\",\":::Keyword:extends:\n\ extends comment:\"/\\*\":\"\\*/\"::Comment:extends:\n\ extends cpluscomment:\"//\":\"$\"::Comment:extends:\n\ extends error:\".\":::Flag:extends:\n\ impl_throw:\"<(?:implements|throws)>\":\"(?=[{;])\"::Keyword::\n\ impl_throw argument:\"<[\\l_][\\w\\.]*(?=\\s*(?:/\\*.*\\*/)?(?://.*)?\\n?\\s*[,;{])\":::Storage Type:impl_throw:\n\ impl_throw comma:\",\":::Keyword:impl_throw:\n\ impl_throw comment:\"/\\*\":\"\\*/\"::Comment:impl_throw:\n\ impl_throw cpluscomment:\"//\":\"$\"::Comment:impl_throw:\n\ impl_throw error:\".\":::Flag:impl_throw:\n\ case:\"\":\":\"::Label::\n\ case single quoted:\"'\\\\?[^']'\":::Character Const:case:\n\ case numeric const:\"(?^&|%()]\":::Keyword:case:\n\ case error:\".\":::Flag:case:\n\ label:\"([;{}:])\":\"[\\l_]\\w*\\s*:\":\"[^\\s\\n]\":Label::\n\ label qualifier:\"\\1\":\"\"::Keyword:label:C\n\ labelref:\"<(?:break|continue)>\\s*\\n?\\s*([\\l_]\\w*)?(?=\\s*\\n?\\s*;)\":::Keyword::\n\ labelref name:\"\\1\":\"\"::Label:labelref:C\n\ instanceof:\"\\s*\\n?\\s*([\\l_][\\w.]*)\":::Keyword::\n\ instanceof class:\"\\1\":\"\"::Storage Type:instanceof:C\n\ newarray:\"new\\s*[\\n\\s]\\s*([\\l_][\\w\\.]*)\\s*\\n?\\s*(?=\\[)\":::Keyword::\n\ newarray type:\"\\1\":\"\"::Storage Type:newarray:C\n\ constructor def:\"<(abstract|final|native|private|protected|public|static|synchronized)\\s*[\\n|\\s]\\s*[\\l_]\\w*\\s*\\n?\\s*(?=\\()\":::Subroutine::\n\ constructor def modifier:\"\\1\":\"\"::Keyword:constructor def:C\n\ keyword - modifiers:\"<(?:abstract|final|native|private|protected|public|static|transient|synchronized|volatile)>\":::Keyword::\n\ keyword - control flow:\"<(?:catch|do|else|finally|for|if|return|switch|throw|try|while)>\":::Keyword::\n\ keyword - calc value:\"<(?:new|super|this)>\":::Keyword::\n\ keyword - literal value:\"<(?:false|null|true)>\":::Numeric Const::\n\ function def:\"<([\\l_][\\w\\.]*)>((?:\\s*\\[\\s*\\])*)\\s*[\\n|\\s]\\s*<[\\l_]\\w*>\\s*\\n?\\s*(?=\\()\":::Plain::\n\ function def type:\"\\1\":\"\"::Storage Type:function def:C\n\ function def type brackets:\"\\2\":\"\"::Keyword:function def:C\n\ function call:\"<[\\l_]\\w*>\\s*\\n?\\s*(?=\\()\":::Plain::\n\ cast:\"[^\\w\\s]\\s*\\n?\\s*\\(\\s*([\\l_][\\w\\.]*)\\s*\\)\":::Keyword::\n\ cast type:\"\\1\":\"\"::Storage Type:cast:C\n\ declaration:\"<[\\l_][\\w\\.]*>((:?\\s*\\[\\s*\\]\\s*)*)(?=\\s*\\n?\\s*(?!instanceof)[\\l_]\\w*)\":::Storage Type::\n\ declaration brackets:\"\\1\":\"\"::Keyword:declaration:C\n\ variable:\"<[\\l_]\\w*>\":::Identifier1::D\n\ braces and parens:\"[(){}[\\]]\":::Keyword::D\n\ signs:\"[-+*/%=,.;:<>!|&^?]\":::Keyword::D\n\ error:\".\":::Flag::D}", #ifndef VMS /* The VAX C compiler cannot compile this definition */ "JavaScript:1:0{\n\ DSComment:\"//\":\"$\"::Comment::\n\ MLComment:\"/\\*\":\"\\*/\"::Comment::\n\ DQColors:\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|#[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]\":::Text Arg1:DQStrings:\n\ SQColors:\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|(#)[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-F-af0-9]\":::Text Arg1:SQStrings:\n\ Numeric:\"(?\":::Keyword::\n\ Braces:\"[{}]\":::Keyword::\n\ Statements:\"<(break|continue|else|for|if|in|new|return|this|typeof|var|while|with)>\":::Keyword::\n\ Function:\"function[\\t ]+([a-zA-Z0-9_]+)[\\t \\(]+\":\"[\\n{]\"::Keyword::\n\ FunctionName:\"\\1\":\"\"::Storage Type:Function:C\n\ FunctionArgs:\"\\(\":\"\\)\"::Text Arg:Function:\n\ Parentheses:\"[\\(\\)]\":::Plain::\n\ BuiltInObjectType:\"<(anchor|Applet|Area|Array|button|checkbox|Date|document|elements|FileUpload|form|frame|Function|hidden|history|Image|link|location|Math|navigator|Option|password|Plugin|radio|reset|select|string|submit|text|textarea|window)>\":::Storage Type::\n\ SQStrings:\"'\":\"'\":\"\\n\":String::\n\ DQStrings:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ EventCapturing:\"captureEvents|releaseEvents|routeEvent|handleEvent\":\"\\)\":\"\\n\":Keyword::\n\ PredefinedMethods:\"<(abs|acos|alert|anchor|asin|atan|atan2|back|big|blink|blur|bold|ceil|charAt|clear|clearTimeout|click|close|confirm|cos|escape|eval|exp|fixed|floor|focus|fontcolor|fontsize|forward|getDate|getDay|getHours|getMinutes|getMonth|getSeconds|getTime|getTimezoneOffset|getYear|go|indexOf|isNaN|italics|javaEnabled|join|lastIndexOf|link|log|max|min|open|parse|parseFloat|parseInt|pow|prompt|random|reload|replace|reset|reverse|round|scroll|select|setDate|setHours|setMinutes|setMonth|setSeconds|setTimeout|setTime|setYear|sin|small|sort|split|sqrt|strike|sub|submit|substring|sup|taint|tan|toGMTString|toLocaleString|toLowerCase|toString|toUpperCase|unescape|untaint|UTC|write|writeln)>\":::Keyword::\n\ Properties:\"<(action|alinkColor|anchors|appCodeName|appName|appVersion|bgColor|border|checked|complete|cookie|defaultChecked|defaultSelected|defaultStatus|defaultValue|description|E|elements|enabledPlugin|encoding|fgColor|filename|forms|frames|hash|height|host|hostname|href|hspace|index|lastModified|length|linkColor|links|LN2|LN10|LOG2E|LOG10E|lowsrc|method|name|opener|options|parent|pathname|PI|port|protocol|prototype|referrer|search|selected|selectedIndex|self|SQRT1_2|SQRT2|src|status|target|text|title|top|type|URL|userAgent|value|vlinkColor|vspace|width|window)>\":::Storage Type::\n\ Operators:\"[= ; ->]|[/]|&|\\|\":::Preprocessor::}", #endif /*VMS*/ "LaTeX:1:0{\n\ Comment:\"%\":\"$\"::Text Comment::\n\ Parameter:\"#[0-9]*\":::Text Arg::\n\ Special Chars:\"[{}&]\":::Keyword::\n\ Escape Chars:\"\\\\[$&%#_{}]\":::Text Escape::\n\ Super Sub 1 Char:\"(?:\\^|_)(?:\\\\\\l+|#\\d|[^{\\\\])\":::Text Arg2::\n\ Verbatim Begin End:\"\\\\begin\\{verbatim\\*?}\":\"\\\\end\\{verbatim\\*?}\"::Plain::\n\ Verbatim BG Color:\"&\":\"&\"::Keyword:Verbatim Begin End:C\n\ Verbatim:\"(\\\\verb\\*?)([^\\l\\s\\*]).*?(\\2)\":::Plain::\n\ Verbatim Color:\"\\1\\2\\3\":\"\"::Keyword:Verbatim:C\n\ Inline Math:\"(?/~.,\\\\ ])\":\"nevermatch\":\"[^{[(]\":Text Key::\n\ Cmd Brace Args:\"\\{\":\"}\":\"(?<=^%)|\\\\]|\\$\\$|\\\\end\\{equation\\}\":Text Arg2:Command:\n\ Brace Color:\"&\":\"&\"::Text Arg:Cmd Brace Args:C\n\ Cmd Paren Args:\"\\(\":\"\\)\":\"$\":Text Arg2:Command:\n\ Paren Color:\"&\":\"&\"::Text Arg:Cmd Paren Args:C\n\ Cmd Bracket Args:\"\\[\":\"\\]\":\"$|\\\\\\]\":Text Arg2:Command:\n\ Bracket Color:\"&\":\"&\"::Text Arg:Cmd Bracket Args:C\n\ Sub Cmd Bracket Args Esc:\"\\\\\\}\":::Plain:Sub Cmd Bracket Args:\n\ Sub Cmd Bracket Args:\"\\{\":\"\\}\":\"$|\\\\\\]\":Preprocessor1:Cmd Bracket Args:\n\ Sub Command:\"(?:[_^]|(?:[\\\\@](?:[A-Za-z]+\\*?|[^A-Za-z$&%#{}~\\\\ \\t])))\":::Text Key1:Cmd Brace Args:\n\ Sub Brace:\"\\{\":\"}\"::Text Arg2:Cmd Brace Args:\n\ Sub Sub Brace:\"\\{\":\"}\"::Text Arg2:Sub Brace:\n\ Sub Sub Sub Brace:\"\\{\":\"}\"::Text Arg2:Sub Sub Brace:\n\ Sub Sub Sub Sub Brace:\"\\{\":\"}\"::Text Arg2:Sub Sub Sub Brace:\n\ Sub Paren:\"\\(\":\"\\)\":\"$\":Text Arg2:Cmd Paren Args:\n\ Sub Sub Paren:\"\\(\":\"\\)\":\"$\":Text Arg2:Sub Paren:\n\ Sub Sub Sub Paren:\"\\(\":\"\\)\":\"$\":Text Arg2:Sub Sub Paren:\n\ Sub Parameter:\"#[0-9]*\":::Text Arg:Cmd Brace Args:\n\ Sub Spec Chars:\"[{}$&]\":::Text Arg:Cmd Brace Args:\n\ Sub Esc Chars:\"\\\\[$&%#_{}~^\\\\]\":::Text Arg1:Cmd Brace Args:}", "Lex:1:0{\n\ comment:\"/\\*\":\"\\*/\"::Comment::\n\ string:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ meta string:\"\\\\\"\".*\\\\\"\"\":::String::\n\ preprocessor line:\"^\\s*#\\s*(include|define|if|ifn?def|line|error|else|endif|elif|undef|pragma)>\":\"$\"::Preprocessor::\n\ string escape chars:\"\\\\(.|\\n)\":::String1:string:\n\ preprocessor esc chars:\"\\\\(.|\\n)\":::Preprocessor1:preprocessor line:\n\ preprocessor comment:\"/\\*\":\"\\*/\"::Comment:preprocessor line:\n\ character constant:\"'\":\"'\":\"[^\\\\][^']\":Character Const::\n\ numeric constant:\"(?\":::Storage Type::D\n\ keyword:\"<(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)>\":::Keyword::D\n\ lex keyword:\"<(yylval|yytext|input|unput|output|lex_input|lex_output|yylex|yymore|yyless|yyin|yyout|yyleng|yywtext|yywleng|yyterminate|REJECT|ECHO|BEGIN|YY_NEW_FILE|yy_create_buffer|yy_switch_to_buffer|yy_delete_buffer|YY_CURRENT_BUFFER|YY_BUFFER_STATE|YY_DECL|YY_INPUT|yywrap|YY_USER_ACTION|YY_USER_INIT|YY_BREAK)>\":::Text Arg::D\n\ stdlib:\"<(BUFSIZ|CHAR_BIT|CHAR_MAX|CHAR_MIN|CLOCKS_PER_SEC|DBL_DIG|DBL_EPSILON|DBL_MANT_DIG|DBL_MAX|DBL_MAX_10_EXP|DBL_MAX_EXP|DBL_MIN|DBL_MIN_10_EXP|DBL_MIN_EXP|EDOM|EOF|ERANGE|EXIT_FAILURE|EXIT_SUCCESS|FILE|FILENAME_MAX|FLT_DIG|FLT_EPSILON|FLT_MANT_DIG|FLT_MAX|FLT_MAX_10_EXP|FLT_MAX_EXP|FLT_MIN|FLT_MIN_10_EXP|FLT_MIN_EXP|FLT_RADIX|FLT_ROUNDS|FOPEN_MAX|HUGE_VAL|INT_MAX|INT_MIN|LC_ALL|LC_COLLATE|LC_CTYPE|LC_MONETARY|LC_NUMERIC|LC_TIME|LDBL_DIG|LDBL_EPSILON|LDBL_MANT_DIG|LDBL_MAX|LDBL_MAX_10_EXP|LDBL_MAX_EXP|LDBL_MIN|LDBL_MIN_10_EXP|LDBL_MIN_EXP|LONG_MAX|LONG_MIN|L_tmpnam|MB_CUR_MAX|MB_LEN_MAX|NULL|RAND_MAX|SCHAR_MAX|SCHAR_MIN|SEEK_CUR|SEEK_END|SEEK_SET|SHRT_MAX|SHRT_MIN|SIGABRT|SIGFPE|SIGILL|SIGINT|SIGSEGV|SIGTERM|SIG_DFL|SIG_ERR|SIG_IGN|TMP_MAX|UCHAR_MAX|UINT_MAX|ULONG_MAX|USHRT_MAX|WCHAR_MAX|WCHAR_MIN|WEOF|_IOFBF|_IOLBF|_IONBF|abort|abs|acos|asctime|asin|assert|atan|atan2|atexit|atof|atoi|atol|bsearch|btowc|calloc|ceil|clearerr|clock|clock_t|cos|cosh|ctime|difftime|div|div_t|errno|exit|exp|fabs|fclose|feof|ferror|fflush|fgetc|fgetpos|fgets|fgetwc|fgetws|floor|fmod|fopen|fpos_t|fprintf|fputc|fputs|fputwc|fputws|fread|free|freopen|frexp|fscanf|fseek|fsetpos|ftell|fwide|fwprintf|fwrite|fwscanf|getc|getchar|getenv|gets|getwc|getwchar|gmtime|isalnum|isalpha|iscntrl|isdigit|isgraph|islower|isprint|ispunct|isspace|isupper|iswalnum|iswalpha|iswcntrl|iswctype|iswdigit|iswgraph|iswlower|iswprint|iswpunct|iswspace|iswupper|iswxdigit|isxdigit|jmp_buf|labs|lconv|ldexp|ldiv|ldiv_t|localeconv|localtime|log|log10|longjmp|malloc|mblen|mbrlen|mbrtowc|mbsinit|mbsrtowcs|mbstate_t|mbstowcs|mbtowc|memchr|memcmp|memcpy|memmove|memset|mktime|modf|offsetof|perror|pow|printf|ptrdiff_t|putc|puts|putwc|putwchar|qsort|raise|rand|realloc|remove|rename|rewind|scanf|setbuf|setjmp|setlocale|setvbuf|sig_atomic_t|signal|sin|sinh|size_t|sprintf|sqrt|srand|sscanf|stderr|stdin|stdout|strcat|strchr|strcmp|strcoll|strcpy|strcspn|strerror|strftime|strlen|strncat|strncmp|strncpy|stroul|strpbrk|strrchr|strspn|strstr|strtod|strtok|strtol|strxfrm|swprintf|swscanf|system|tan|tanh|time|time_t|tm|tmpfile|tmpnam|tolower|toupper|towctrans|towlower|towupper|ungetc|ungetwc|va_arg|va_end|va_list|va_start|vfwprintf|vprintf|vsprintf|vswprintf|vwprintf|wint_t|wmemchr|wmemcmp|wmemcpy|wmemmove|wmemset|wprintf|wscanf)>\":::Subroutine::D\n\ label:\"|(^[ \\t]*[A-Za-z_][A-Za-z0-9_]*[ \\t]*:)\":::Flag::D\n\ braces:\"[{}]\":::Keyword::D\n\ markers:\"(?[ \\t]\":\"$\"::Keyword::\n\ Exports var:\".[A-Za-z0-9_+]*\":\"$\"::Keyword:Exports:\n\ Conditionals:\"^( *| [ \\t]*)[ \\t]\":::Keyword::D\n\ Conditionals ifdefs:\"^( *| [ \\t]*)[ \\t]\":\"$\"::Keyword::D\n\ Conditionals ifdefs var:\".[A-Za-z0-9_+]*\":\"$\"::Preprocessor:Conditionals ifdefs:D\n\ Conditional Ends:\"^( *| [ \\t]*)\":::Keyword::D\n\ vpath:\"^( *| [ \\t]*)[ \\t]\":::Keyword::D\n\ define:\"^( *| [ \\t]*)[ \\t]\":\"$\"::Keyword::D\n\ define var:\".[A-Za-z0-9_+]*\":\"$\"::Preprocessor:define:D\n\ define Ends:\"^( *| [ \\t]*)\":::Keyword::D}", "Matlab:1:0{\n\ Comment:\"%\":\"$\"::Comment::\n\ Comment in Octave:\"#\":\"$\"::Plain::\n\ Keyword:\"<(break|clear|else|elseif|end|for|function|global|if|return|then|while)>\":::Keyword::\n\ Transpose:\"[\\w.]('+)\":::Plain::\n\ Paren transposed:\"\\)('+)\":::Keyword::\n\ Paren transp close:\"\\1\":\"\"::Plain:Paren transposed:C\n\ Parentheses:\"[\\(\\)]\":::Keyword::\n\ Brackets transposed:\"\\]('+)\":::Text Key1::\n\ Brack transp close:\"\\1\":\"\"::Plain:Brackets transposed:C\n\ Brackets:\"[\\[\\]]\":::Text Key1::\n\ Braces transposed:\"\\}('+)\":::Text Arg::\n\ Braces transp close:\"\\1\":\"\"::Plain:Braces transposed:C\n\ Braces:\"[\\{\\}]\":::Text Arg::\n\ String:\"'\":\"'\"::String::\n\ Numeric const:\"(?=|\\<|\\>\":::Text Arg1::\n\ Wrong logical ops:\"&&|\\|\\|\":::Plain::\n\ Logical operators:\"~|&|\\|\":::Text Arg2::}", "NEdit Macro:2:0{\n\ README:\"NEdit Macro syntax highlighting patterns, version 2.6, maintainer Thorsten Haude, nedit at thorstenhau.de\":::Flag::D\n\ Comment:\"#\":\"$\"::Comment::\n\ Built-in Misc Vars:\"(?\":::Identifier::\n\ Built-in Pref Vars:\"(?\":::Identifier2::\n\ Built-in Special Vars:\"(?\":::String1::\n\ Built-in Subrs:\"<(?:append_file|beep|calltip|clipboard_to_string|dialog|focus_window|get_character|get_pattern_(by_name|at_pos)|get_range|get_selection|get_style_(by_name|at_pos)|getenv|kill_calltip|length|list_dialog|max|min|rangeset_(?:add|create|destroy|get_by_name|includes|info|invert|range|set_color|set_mode|set_name|subtract)|read_file|replace_in_string|replace_range|replace_selection|replace_substring|search|search_string|select|select_rectangle|set_cursor_pos|set_language_mode|set_locked|shell_command|split|string_compare|string_dialog|string_to_clipboard|substring|t_print|tolower|toupper|valid_number|write_file)>\":::Subroutine::\n\ Menu Actions:\"<(?:new|open|open-dialog|open_dialog|open-selected|open_selected|close|save|save-as|save_as|save-as-dialog|save_as_dialog|revert-to-saved|revert_to_saved|revert_to_saved_dialog|include-file|include_file|include-file-dialog|include_file_dialog|load-macro-file|load_macro_file|load-macro-file-dialog|load_macro_file_dialog|load-tags-file|load_tags_file|load-tags-file-dialog|load_tags_file_dialog|unload_tags_file|load_tips_file|load_tips_file_dialog|unload_tips_file|print|print-selection|print_selection|exit|undo|redo|delete|select-all|select_all|shift-left|shift_left|shift-left-by-tab|shift_left_by_tab|shift-right|shift_right|shift-right-by-tab|shift_right_by_tab|find|find-dialog|find_dialog|find-again|find_again|find-selection|find_selection|find_incremental|start_incremental_find|replace|replace-dialog|replace_dialog|replace-all|replace_all|replace-in-selection|replace_in_selection|replace-again|replace_again|replace_find|replace_find_same|replace_find_again|goto-line-number|goto_line_number|goto-line-number-dialog|goto_line_number_dialog|goto-selected|goto_selected|mark|mark-dialog|mark_dialog|goto-mark|goto_mark|goto-mark-dialog|goto_mark_dialog|match|select_to_matching|goto_matching|find-definition|find_definition|show_tip|split-window|split_window|close-pane|close_pane|uppercase|lowercase|fill-paragraph|fill_paragraph|control-code-dialog|control_code_dialog|filter-selection-dialog|filter_selection_dialog|filter-selection|filter_selection|execute-command|execute_command|execute-command-dialog|execute_command_dialog|execute-command-line|execute_command_line|shell-menu-command|shell_menu_command|macro-menu-command|macro_menu_command|bg_menu_command|post_window_bg_menu|beginning-of-selection|beginning_of_selection|end-of-selection|end_of_selection|repeat_macro|repeat_dialog|raise_window|focus_pane|set_statistics_line|set_incremental_search_line|set_show_line_numbers|set_auto_indent|set_wrap_text|set_wrap_margin|set_highlight_syntax|set_make_backup_copy|set_incremental_backup|set_show_matching|set_match_syntax_based|set_overtype_mode|set_locked|set_tab_dist|set_em_tab_dist|set_use_tabs|set_fonts|set_language_mode)(?=\\s*\\()\":::Subroutine::\n\ Text Actions:\"<(?:self-insert|self_insert|grab-focus|grab_focus|extend-adjust|extend_adjust|extend-start|extend_start|extend-end|extend_end|secondary-adjust|secondary_adjust|secondary-or-drag-adjust|secondary_or_drag_adjust|secondary-start|secondary_start|secondary-or-drag-start|secondary_or_drag_start|process-bdrag|process_bdrag|move-destination|move_destination|move-to|move_to|move-to-or-end-drag|move_to_or_end_drag|end_drag|copy-to|copy_to|copy-to-or-end-drag|copy_to_or_end_drag|exchange|process-cancel|process_cancel|paste-clipboard|paste_clipboard|copy-clipboard|copy_clipboard|cut-clipboard|cut_clipboard|copy-primary|copy_primary|cut-primary|cut_primary|newline|newline-and-indent|newline_and_indent|newline-no-indent|newline_no_indent|delete-selection|delete_selection|delete-previous-character|delete_previous_character|delete-next-character|delete_next_character|delete-previous-word|delete_previous_word|delete-next-word|delete_next_word|delete-to-start-of-line|delete_to_start_of_line|delete-to-end-of-line|delete_to_end_of_line|forward-character|forward_character|backward-character|backward_character|key-select|key_select|process-up|process_up|process-down|process_down|process-shift-up|process_shift_up|process-shift-down|process_shift_down|process-home|process_home|forward-word|forward_word|backward-word|backward_word|forward-paragraph|forward_paragraph|backward-paragraph|backward_paragraph|beginning-of-line|beginning_of_line|end-of-line|end_of_line|beginning-of-file|beginning_of_file|end-of-file|end_of_file|next-page|next_page|previous-page|previous_page|page-left|page_left|page-right|page_right|toggle-overstrike|toggle_overstrike|scroll-up|scroll_up|scroll-down|scroll_down|scroll_left|scroll_right|scroll-to-line|scroll_to_line|select-all|select_all|deselect-all|deselect_all|focusIn|focusOut|process-return|process_return|process-tab|process_tab|insert-string|insert_string|mouse_pan)>\":::Subroutine::\n\ Keyword:\"<(?:break|continue|define|delete|else|for|if|in|return|while)>\":::Keyword::\n\ Braces:\"[{}\\[\\]]\":::Keyword::\n\ Global Variable:\"\\$[A-Za-z0-9_]+\":::Identifier1::\n\ String:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ String Escape Char:\"\\\\(?:.|\\n)\":::Text Escape:String:\n\ Numeric Const:\"(?\":::Numeric Const::\n\ Macro Definition:\"(?<=define)\\s+\\w+\":::Subroutine1::\n\ Custom Macro:\"\\w+(?=\\s*(?:\\\\\\n)?\\s*[\\(])\":::Subroutine1::\n\ Variables:\"\\w+\":::Identifier1::D}", "Pascal:1:0{\n\ TP Directives:\"\\{\\$\":\"\\}\"::Comment::\n\ Comment:\"\\(\\*|\\{\":\"\\*\\)|\\}\"::Comment::\n\ String:\"'\":\"'\":\"\\n\":String::D\n\ Array delimitors:\"\\(\\.|\\.\\)|\\[|\\]\":::Character Const::D\n\ Parentheses:\"\\(|\\)\":::Keyword::D\n\ X Numeric Values:\"<([2-9]|[12]\\d|3[0-6])#[\\d\\l]+>\":::Text Key::D\n\ TP Numeric Values:\"(?\":::Text Key1::D\n\ Numeric Values:\"<\\d+(\\.\\d+)?((e|E)(\\+|-)?\\d+)?>\":::Numeric Const::D\n\ Reserved Words 1:\"<(?iBegin|Const|End|Program|Record|Type|Var)>\":::Keyword::D\n\ Reserved Words 2:\"<(?iForward|Goto|Label|Of|Packed|With)>\":::Identifier::D\n\ X Reserved Words:\"<(?iBindable|Export|Implementation|Import|Interface|Module|Only|Otherwise|Protected|Qualified|Restricted|Value)>\":::Identifier1::D\n\ TP Reserved Words:\"<(?iAbsolute|Assembler|Exit|External|Far|Inline|Interrupt|Near|Private|Unit|Uses)>\":::Text Comment::D\n\ Data Types:\"<(?iArray|Boolean|Char|File|Integer|Real|Set|Text)>\":::Storage Type::D\n\ X Data Types:\"<(?iBindingType|Complex|String|TimeStamp)>\":::Text Arg1::D\n\ TP Data Types:\"<(?iByte|Comp|Double|Extended|LongInt|ShortInt|Single|Word)>\":::Text Arg2::D\n\ Predefined Consts:\"<(?iFalse|Input|MaxInt|Nil|Output|True)>\":::String1::D\n\ X Predefined Consts:\"<(?iEpsReal|MaxChar|MaxReal|MinReal|StandardInput|StandardOutput)>\":::String2::D\n\ Conditionals:\"<(?iCase|Do|DownTo|Else|For|If|Repeat|Then|To|Until|While)>\":::Ada Attributes::D\n\ Proc declaration:\"<(?iProcedure)>\":::Character Const::D\n\ Predefined Proc:\"<(?iDispose|Get|New|Pack|Page|Put|Read|ReadLn|Reset|Rewrite|Unpack|Write|WriteLn)>\":::Subroutine::D\n\ X Predefined Proc:\"<(?iBind|Extend|GetTimeStamp|Halt|ReadStr|SeekRead|SeekUpdate|SeekWrite|Unbind|Update|WriteStr)>\":::Subroutine1::D\n\ Func declaration:\"<(?iFunction)>\":::Identifier::D\n\ Predefined Func:\"<(?iAbs|Arctan|Chr|Cos|Eof|Eoln|Exp|Ln|Odd|Ord|Pred|Round|Sin|Sqr|Sqrt|Succ|Trunc)>\":::Preprocessor::D\n\ X Predefined Func:\"<(?iArg|Binding|Card|Cmplx|Date|Empty|Eq|Ge|Gt|Im|Index|LastPosition|Le|Length|Lt|Ne|Polar|Position|Re|SubStr|Time|Trim)>\":::Preprocessor1::D\n\ X Operators:\"(\\>\\<|\\*\\*)|<(?iAnd_Then|Or_Else|Pow)>\":::Text Arg1::D\n\ Assignment:\":=\":::Plain::D\n\ Operators:\"(\\<|\\>|=|\\^|@)|<(?iAnd|Div|In|Mod|Not|Or)>\":::Text Arg::D\n\ TP Operators:\"<(?iShl|Shr|Xor)>\":::Text Arg2::D}", "Perl:2:0{\n\ dq here doc:\"(\\<\\<(\"\"?))EOF(\\2.*)$\":\"^EOF>\"::Label::\n\ dq here doc delims:\"\\1\\3\":::Keyword:dq here doc:C\n\ dq here doc esc chars:\"\\\\([nrtfbaeulULQE@%\\$\\\\]|0[0-7]+|x[0-9a-fA-F]+|c\\l)\":::Text Escape:dq here doc:\n\ dq here doc variables:\"\\$([-_./,\"\"\\\\*?#;!@$<>(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:dq here doc:\n\ dq here doc content:\".\":::String:dq here doc:\n\ dq string:\"(?(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:dq string:\n\ gen dq string:\"(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:gen dq string:\n\ sq here doc:\"(\\<\\<')EOF('.*)$\":\"^EOF>\"::Label::\n\ sq here doc delims:\"\\1\\2\":::Keyword:sq here doc:C\n\ sq here doc esc chars:\"\\\\\\\\\":::Text Escape:sq here doc:\n\ sq here doc content:\".\":::String1:sq here doc:\n\ sq string:\"(?)|(\\{)[-\\w]+(\\})\":::String1::\n\ implicit sq delims:\"\\1\\2\":::Keyword:implicit sq:C\n\ word list:\"\"::Label::\n\ bq here doc delims:\"\\1\\2\":::Keyword:bq here doc:C\n\ bq here doc comment:\"#\":\"$\"::Comment:bq here doc:\n\ bq here doc variables:\"\\$([-_./,\"\"\\\\*?#;!@$<>(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:bq here doc:\n\ bq here doc content:\".\":::String1:bq here doc:\n\ bq string:\"(?(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:bq string:\n\ gen bq string:\"(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:gen bq string:\n\ gen bq string esc chars:\"\\\\/\":::Text Escape:gen bq string:\n\ transliteration:\"<((y|tr)/)(\\\\/|[^/])+(/)(\\\\/|[^/])*(/[cds]*)\":::String::D\n\ transliteration delims:\"\\1\\4\\6\":::Keyword:transliteration:DC\n\ last array index:\"\\$#([\\l_](\\w|::(?=\\w))*)?\":::Identifier1::\n\ comment:\"#\":\"$\"::Comment::\n\ label:\"((?:^|;)\\s*<([A-Z_]+)>\\s*:(?=(?:[^:]|\\n)))|(goto|last|next|redo)\\s+(<((if|unless)|[A-Z_]+)>|)\":::Plain::\n\ label identifier:\"\\2\\5\":::Label:label:C\n\ label keyword:\"\\3\\6\":::Keyword:label:C\n\ handle:\"(\\<)[A-Z_]+(\\>)|(bind|binmode|close(?:dir)?|connect|eof|fcntl|fileno|flock|getc|getpeername|getsockname|getsockopt|ioctl|listen|open(?:dir)?|recv|read(?:dir)?|rewinddir|seek(?:dir)?|send|setsockopt|shutdown|socket|sysopen|sysread|sysseek|syswrite|tell(?:dir)?|write)>\\s*(\\(?)\\s*[A-Z_]+>|<(accept|pipe|socketpair)>\\s*(\\(?)\\s*[A-Z_]+\\s*(,)\\s*[A-Z_]+>|(print|printf|select)>\\s*(\\(?)\\s*[A-Z_]+>(?!\\s*,)\":::Storage Type::\n\ handle delims:\"\\1\\2\\4\\6\\7\\9\":::Keyword:handle:C\n\ handle functions:\"\\3\\5\\8\":::Subroutine:handle:C\n\ statements:\"<(if|until|while|elsif|else|unless|for(each)?|continue|last|goto|next|redo|do(?=\\s*\\{)|BEGIN|END)>\":::Keyword::D\n\ packages and modules:\"<(bless|caller|import|no|package|prototype|require|return|INIT|CHECK|BEGIN|END|use|new)>\":::Keyword::D\n\ pragm modules:\"<(attrs|autouse|base|blib|constant|diagnostics|fields|integer|less|lib|locale|ops|overload|re|sigtrap|strict|subs|vars|vmsish)>\":::Keyword::D\n\ standard methods:\"<(can|isa|VERSION)>\":::Keyword::D\n\ file tests:\"-[rwxRWXoOezsfdlSpbcugktTBMAC]>\":::Subroutine::D\n\ subr header:\"\":\"(?:\\{|;)\"::Keyword::D\n\ subr header coloring:\"\\1\":::Plain:subr header:DC\n\ subr prototype:\"\\(\":\"\\)\"::Flag:subr header:D\n\ subr prototype delims:\"&\":\"&\"::Keyword:subr prototype:DC\n\ subr prototype chars:\"\\\\?[@$%&*]|;\":::Identifier1:subr prototype:D\n\ references:\"\\\\(\\$|@|%|&)(::)?[\\l_](\\w|::(?=\\w))*|\\\\(\\$?|@|%|&)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|\\\\(\\$|@|%|&)(?=\\{)\":::Identifier1::\n\ variables:\"\\$([-_./,\"\"\\\\*?#;!@$<>(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1::\n\ named operators:\"<(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|sub|x)>\":::Keyword::D\n\ library functions:\"<((?# arithmetic functions)abs|atan2|cos|exp|int|log|rand|sin|sqrt|srand|time|(?# conversion functions)chr|gmtime|hex|localtime|oct|ord|vec|(?# structure conversion)pack|unpack|(?# string functions)chomp|chop|crypt|eval(?=\\s*[^{])|index|lc|lcfirst|length|quotemeta|rindex|substr|uc|ucfirst|(?# array and hash functions)delete|each|exists|grep|join|keys|map|pop|push|reverse|scalar|shift|sort|splice|split|unshift|values|(?# search and replace functions)pos|study|(?# file operations)chmod|chown|link|lstat|mkdir|readlink|rename|rmdir|stat|symlink|truncate|unlink|utime|(?# input/output)binmode|close|eof|fcntl|fileno|flock|getc|ioctl|open|pipe|print|printf|read|readline|readpipe|seek|select|sprintf|sysopen|sysread|sysseek|syswrite|tell|(?# formats)formline|write|(?# tying variables)tie|tied|untie|(?# directory reading routines)closedir|opendir|readdir|rewinddir|seekdir|telldir|(?# system interaction)alarm|chdir|chroot|die|exec|exit|fork|getlogin|getpgrp|getppid|getpriority|glob|kill|setpgrp|setpriority|sleep|syscall|system|times|umask|wait|waitpid|warn|(?# networking)accept|bind|connect|getpeername|getsockname|getsockopt|listen|recv|send|setsockopt|shutdown|socket|socketpair|(?# system V ipc)msgctl|msgget|msgrcv|msgsnd|semctl|semget|semop|shmctl|shmget|shmread|shmwrite|(?# miscellaneous)defined|do|dump|eval(?=\\s*\\{)|local|my|ref|reset|undef|(?# informations from system databases)endpwent|getpwent|getpwnam|getpwuid|setpwent|endgrent|getgrent|getgrgid|getgrnam|setgrent|endnetent|getnetbyaddr|getnetbyname|getnetent|setnetent|endhostend|gethostbyaddr|gethostbyname|gethostent|sethostent|endservent|getservbyname|getservbyport|getservent|setservent|endprotoent|getprotobyname|getprotobynumber|getprotoent|setprotoent)>\":::Subroutine::\n\ subroutine call:\"(&|-\\>)\\w(\\w|::)*(?!\\Y)|<\\w(\\w|::)*(?=\\s*\\()\":::Subroutine1::D\n\ symbolic operators:\">[-<>+.*/\\\\?!~=%^&:]<\":::Keyword::D\n\ braces and parens:\"[\\[\\]{}\\(\\)\\<\\>]\":::Keyword::D\n\ numerics:\"(?(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:re match:\n\ re match comment:\"\\(\\?#[^)]*\\)\":::Comment:re match:\n\ re match syms:\"[.^$[\\])|)]|\\{\\d+(,\\d*)?\\}\\??|\\((\\?([:=!>imsx]|\\<[=!]))?|[?+*]\\??\":::Regex:re match:\n\ re match refs:\"\\\\[1-9]\\d?\":::Identifier1:re match:\n\ re sub:\"<(s/)\":\"(/)((?:\\\\/|\\\\[1-9]\\d?|[^/])*)(/[egimosx]*)\"::Plain::\n\ re sub delims:\"\\1\":\"\\1\\3\"::Keyword:re sub:C\n\ re sub subst:\"\\2\":\"\\2\"::String:re sub:C\n\ re sub esc chars:\"\\\\([/abdeflnrstuwzABDEGLQSUWZ+?.*$^(){}[\\]|\\\\]|0[0-7]{2}|x[0-9a-fA-F]{2})\":::Text Escape:re sub:\n\ re sub class:\"\\[\\^?\":\"\\]\"::Plain:re sub:\n\ re sub class delims:\"&\":\"&\"::Regex:re sub class:C\n\ re sub class esc chars:\"\\\\([abdeflnrstuwzABDEGLQSUWZ^\\]\\\\-]|0[0-7]{2}|x[0-9a-fA-F]{2})\":::Text Escape:re sub class:\n\ re sub variables:\"\\$([-_.,\"\"\\\\*?#;!@$<>(%=~^|&`'+[\\]]|:(?!:)|\\^[ADEFHILMOPSTWX]|ARGV|\\d{1,2})|(@|\\$#)(ARGV|EXPORT|EXPORT_OK|F|INC|ISA|_)>|%(ENV|EXPORT_TAGS|INC|SIG)>|(\\$#?|@|%)(::)?[\\l_](\\w|::(?=\\w))*|(\\$#?|@|%)\\{(::)?[\\l_](\\w|::(?=\\w))*\\}|(\\$|@|%)(?=\\{)\":::Identifier1:re sub:\n\ re sub comment:\"\\(\\?#[^)]*\\)\":::Comment:re sub:\n\ re sub syms:\"[.^$[\\])|)]|\\{\\d+(,\\d*)?\\}\\??|\\((\\?([:=!>imsx]|\\<[=!]))?|[?+*]\\??\":::Regex:re sub:\n\ re sub refs:\"\\\\[1-9]\\d?\":::Identifier1:re sub:\n\ info:\"version: 2.02p1; author/maintainer: Joor Loohuis, joor@loohuis-consulting.nl\":::Plain::}", "PostScript:1:0{\n\ DSCcomment:\"^%[%|!]\":\"$\"::Preprocessor::\n\ Comment:\"%\":\"$\"::Comment::\n\ string:\"\\(\":\"\\)\"::String::\n\ string esc chars:\"\\\\(n|r|t|b|f|\\\\|\\(|\\)|[0-9][0-9]?[0-9]?)?\":::String2:string:\n\ string2:\"\\(\":\"\\)\"::String:string:\n\ string2 esc chars:\"\\\\(n|r|t|b|f|\\\\|\\(|\\)|[0-9][0-9]?[0-9]?)?\":::String2:string2:\n\ string3:\"\\(\":\"\\)\"::String:string2:\n\ string3 esc chars:\"\\\\(n|r|t|b|f|\\\\|\\(|\\)|[0-9][0-9]?[0-9]?)?\":::String2:string3:\n\ ASCII 85 string:\"\\<~\":\"~\\>\":\"[^!-uz]\":String1::\n\ Dictionary:\"(\\<\\<|\\>\\>)\":::Storage Type::\n\ hex string:\"\\<\":\"\\>\":\"[^0-9a-fA-F> \\t]\":String1::\n\ Literal:\"/[^/%{}\\(\\)\\<\\>\\[\\]\\f\\n\\r\\t ]*\":::Text Key::\n\ Number:\"(?\":::Keyword::D\n\ Operator3:\"<(GetHalftoneName|GetPageDeviceName|GetSubstituteCRD|StartData|addglyph|beginbfchar|beginbfrange|begincidchar|begincidrange|begincmap|begincodespacerange|beginnotdefchar|beginnotdefrange|beginrearrangedfont|beginusematrix|cliprestore|clipsave|composefont|currentsmoothness|currenttrapparams|endbfchar|endbfrange|endcidchar|endcidrange|endcmap|endcodespacerange|endnotdefchar|endnotdefrange|endrearrangedfont|endusematrix|findcolorrendering|removeall|removeglyphs|setsmoothness|settrapparams|settrapzone|shfill|usecmap|usefont)>\":::Keyword::D\n\ Old operator:\"<(condition|currentcontext|currenthalftonephase|defineusername|detach|deviceinfo|eoviewclip|fork|initviewclip|join|lock|monitor|notify|rectviewclip|sethalftonephase|viewclip|viewclippath|wait|wtranslation|yield)>\":::Keyword::D}", "Python:2:0{\n\ Comment:\"#\":\"$\"::Comment::\n\ String3s:\"[uU]?[rR]?'{3}\":\"'{3}\"::String::\n\ String3d:\"[uU]?[rR]?\"\"{3}\":\"\"\"{3}\"::String::\n\ String1s:\"[uU]?[rR]?'\":\"'\":\"$\":String::\n\ String1d:\"[uU]?[rR]?\"\"\":\"\"\"\":\"$\":String::\n\ String escape chars 3s:\"\\\\(?:\\n|\\\\|'|\"\"|a|b|f|n|r|t|v|[0-7]{1,3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|U[\\da-fA-F]{8})\":::String1:String3s:\n\ String escape chars 3d:\"\\\\(?:\\n|\\\\|'|\"\"|a|b|f|n|r|t|v|[0-7]{1,3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|U[\\da-fA-F]{8})\":::String1:String3d:\n\ String escape chars 1s:\"\\\\(?:\\n|\\\\|'|\"\"|a|b|f|n|r|t|v|[0-7]{1,3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|U[\\da-fA-F]{8})\":::String1:String1s:\n\ String escape chars 1d:\"\\\\(?:\\n|\\\\|'|\"\"|a|b|f|n|r|t|v|[0-7]{1,3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|U[\\da-fA-F]{8})\":::String1:String1d:\n\ Representation:\"`\":\"`\":\"$\":String2::\n\ Representation cont:\"\\\\\\n\":::String2:Representation:\n\ Number:\"(?\":\";|$\":\"#\":Preprocessor::\n\ Import continuation:\"\\\\\\n\":::Preprocessor:Import:\n\ Member definition:\"<(def)\\s+(?:(__(?:abs|add|and|call|cmp|coerce|complex|contains|del|delattr|delitem|div|divmod|eq|float|floordiv|ge|getattr|getitem|gt|hash|hex|iadd|iand|idiv|ilshift|imod|imul|init|int|invert|ior|ipow|irshift|isub|iter|ixor|le|len|long|lshift|lt|mod|mul|ne|neg|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|repr|rlshift|rmod|rmul|ror|rpow|rrshift|rshift|rsub|rxor|setattr|setitem|str|sub|truediv|xor)__)|((__(?:bases|class|dict)__)|(__(?:delslice|getslice|setslice)__)|(__(?:members|methods)__))|(and|assert|break|continue|def|del|elif|else|except|exec|finally|for|from|if|import|in|is|not|or|pass|print|raise|return|try|while|yield|class|global|lambda)|([\\l_]\\w*))(?=(?:\\s*(?:\\\\\\n\\s*)?\\(\\s*|\\s*\\(\\s*(?:\\\\?\\n\\s*)?)self>)\":::Plain::\n\ Member def color:\"\\1\":::Keyword:Member definition:C\n\ Member def special:\"\\2\":::Subroutine:Member definition:C\n\ Member def deprecated:\"\\3\":::Warning:Member definition:C\n\ Member def error:\"\\7\":::Flag:Member definition:C\n\ Static method definition:\"<(def)\\s+(__(?:new)__)\":::Plain::\n\ Static def color:\"\\1\":::Keyword:Static method definition:C\n\ Static def special:\"\\2\":::Subroutine:Static method definition:C\n\ Function definition:\"<(def)\\s+(?:(ArithmeticError|AssertionError|AttributeError|DeprecationWarning|EOFError|Ellipsis|EnvironmentError|Exception|False|FloatingPointError|FutureWarning|IOError|ImportError|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|None|NotImplemented|NotImplementedError|OSError|OverflowError|OverflowWarning|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StandardError|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|True|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UserWarning|ValueError|Warning|WindowsError|ZeroDivisionError|__builtins__|__debug__|__doc__|__import__|__name__|abs|apply|basestring|bool|buffer|callable|chr|classmethod|cmp|coerce|compile|complex|copyright|credits|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|license|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|self|setattr|slice|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)|(and|assert|break|continue|def|del|elif|else|except|exec|finally|for|from|if|import|in|is|not|or|pass|print|raise|return|try|while|yield|class|global|lambda)|([\\l_]\\w*))>\":::Plain::\n\ Function def color:\"\\1\":::Keyword:Function definition:C\n\ Function def deprecated:\"\\2\":::Warning:Function definition:C\n\ Function def error:\"\\3\":::Flag:Function definition:C\n\ Class definition:\"<(class)\\s+(?:(ArithmeticError|AssertionError|AttributeError|DeprecationWarning|EOFError|Ellipsis|EnvironmentError|Exception|False|FloatingPointError|FutureWarning|IOError|ImportError|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|None|NotImplemented|NotImplementedError|OSError|OverflowError|OverflowWarning|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StandardError|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|True|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UserWarning|ValueError|Warning|WindowsError|ZeroDivisionError|__builtins__|__debug__|__doc__|__import__|__name__|abs|apply|basestring|bool|buffer|callable|chr|classmethod|cmp|coerce|compile|complex|copyright|credits|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|license|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|self|setattr|slice|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)|(and|assert|break|continue|def|del|elif|else|except|exec|finally|for|from|if|import|in|is|not|or|pass|print|raise|return|try|while|yield|class|global|lambda)|([\\l_]\\w*))>\":::Plain::\n\ Class def color:\"\\1\":::Storage Type:Class definition:C\n\ Class def deprecated:\"\\2\":::Warning:Class definition:C\n\ Class def error:\"\\3\":::Flag:Class definition:C\n\ Member reference:\"\\.\\s*(?:\\\\?\\n\\s*)?(?:((__(?:abs|add|and|call|cmp|coerce|complex|contains|del|delattr|delitem|div|divmod|eq|float|floordiv|ge|getattr|getitem|gt|hash|hex|iadd|iand|idiv|ilshift|imod|imul|init|int|invert|ior|ipow|irshift|isub|iter|ixor|le|len|long|lshift|lt|mod|mul|ne|neg|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|repr|rlshift|rmod|rmul|ror|rpow|rrshift|rshift|rsub|rxor|setattr|setitem|str|sub|truediv|xor)__)|(__(?:new)__))|((__(?:delslice|getslice|setslice)__)|(__(?:members|methods)__))|(__(?:bases|class|dict)__)|(and|assert|break|continue|def|del|elif|else|except|exec|finally|for|from|if|import|in|is|not|or|pass|print|raise|return|try|while|yield|class|global|lambda)|([\\l_]\\w*))>\":::Plain::\n\ Member special method:\"\\1\":::Subroutine:Member reference:C\n\ Member deprecated:\"\\4\":::Warning:Member reference:C\n\ Member special attrib:\"\\7\":::Identifier1:Member reference:C\n\ Member ref error:\"\\8\":::Flag:Member reference:C\n\ Storage keyword:\"<(?:class|global|lambda)>\":::Storage Type::\n\ Keyword:\"<(?:and|assert|break|continue|def|del|elif|else|except|exec|finally|for|from|if|import|in|is|not|or|pass|print|raise|return|try|while|yield)>\":::Keyword::\n\ Built-in function:\"<(?:__import__|abs|basestring|bool|callable|chr|classmethod|cmp|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|setattr|slice|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)>\":::Subroutine::\n\ Built-in name:\"<(?:Ellipsis|False|None|NotImplemented|True|__builtins__|__debug__|__doc__|__name__|copyright|credits|license|self)>\":::Identifier1::\n\ Built-in exceptions:\"<(?:ArithmeticError|AssertionError|AttributeError|EOFError|EnvironmentError|Exception|FloatingPointError|IOError|ImportError|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|NotImplementedError|OSError|OverflowError|ReferenceError|RuntimeError|StandardError|StopIteration|SyntaxError|SystemError|SystemExit|TabError|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|ValueError|WindowsError|ZeroDivisionError)>\":::Identifier1::\n\ Built-in warnings:\"<(?:DeprecationWarning|FutureWarning|OverflowWarning|PendingDeprecationWarning|RuntimeWarning|SyntaxWarning|UserWarning|Warning)>\":::Identifier1::\n\ Deprecated function:\"<(?:apply|buffer|coerce|intern)>\":::Warning::\n\ Braces and parens:\"[[{()}\\]]\":::Keyword::D}", "Regex:1:0{\n\ Comments:\"(?#This is a comment!)\\(\\?#[^)]*(?:\\)|$)\":::Comment::\n\ Literal Escape:\"(?#Special chars that need escapes)\\\\[abefnrtv()\\[\\]<>{}.|^$*+?&\\\\]\":::Preprocessor::\n\ Shortcut Escapes:\"(?#Shortcuts for common char classes)\\\\[dDlLsSwW]\":::Character Const::\n\ Backreferences:\"(?#Internal regex backreferences)\\\\[1-9]\":::Storage Type::\n\ Word Delimiter:\"(?#Special token to match NEdit [non]word-delimiters)\\\\[yY]\":::Subroutine::\n\ Numeric Escape:\"(?#Negative lookahead is to exclude \\x0 and \\00)(?!\\\\[xX0]0*(?:[^\\da-fA-F]|$))\\\\(?:[xX]0*[1-9a-fA-F][\\da-fA-F]?|0*[1-3]?[0-7]?[0-7])\":::Numeric Const::\n\ Quantifiers:\"(?#Matches greedy and lazy quantifiers)[*+?]\\??\":::Flag::\n\ Counting Quantifiers:\"(?#Properly limits range numbers to 0-65535)\\{(?:[0-5]?\\d?\\d?\\d?\\d|6[0-4]\\d\\d\\d|65[0-4]\\d\\d|655[0-2]\\d|6553[0-5])?(?:,(?:[0-5]?\\d?\\d?\\d?\\d|6[0-4]\\d\\d\\d|65[0-4]\\d\\d|655[0-2]\\d|6553[0-5])?)?\\}\\??\":::Numeric Const::\n\ Character Class:\"(?#Handles escapes, char ranges, ^-] at beginning and - at end)\\[\\^?[-\\]]?(?:(?:\\\\(?:[abdeflnrstvwDLSW\\-()\\[\\]<>{}.|^$*+?&\\\\]|[xX0][\\da-fA-F]+)|[^\\\\\\]])(?:-(?:\\\\(?:[abdeflnrstvwDLSW\\-()\\[\\]<>{}.|^$*+?&\\\\]|[xX0][\\da-fA-F]+)|[^\\\\\\]]))?)*\\-?]\":::Character Const::\n\ Anchors:\"(?#\\B is the \"\"not a word boundary\"\" anchor)[$^<>]|\\\\B\":::Flag::\n\ Parens and Alternation:\"\\(?:\\?(?:[:=!iInN])|[()|]\":::Keyword::\n\ Match Themselves:\"(?#Highlight chars left over which just match themselves).\":::Text Comment::D}", "SGML HTML:6:0{\n\ markup declaration:\"\\\"::Plain::\n\ mdo-mdc:\"&\":\"&\"::Storage Type:markup declaration:C\n\ markup declaration dq string:\"\"\"\":\"\"\"\"::String1:markup declaration:\n\ markup declaration sq string:\"'\":\"'\"::String1:markup declaration:\n\ entity declaration:\"((?ientity))[ \\t\\n][ \\t]*\\n?[ \\t]*(%[ \\t\\n][ \\t]*\\n?[ \\t]*)?(\\l[\\l\\d\\-\\.]*|#((?idefault)))[ \\t\\n][ \\t]*\\n?[ \\t]*((?i[cs]data|pi|starttag|endtag|m[ds]))?\":::Preprocessor:markup declaration:\n\ ed name:\"\\2\":\"\"::String2:element declaration:C\n\ ed type:\"\\4\":\"\"::Storage Type:entity declaration:C\n\ doctype declaration:\"((?idoctype))[ \\t\\n][ \\t]*\\n?[ \\t]*(\\l[\\l\\d\\-\\.]*)\":::Preprocessor:markup declaration:\n\ dt name:\"\\2\":\"\"::String2:doctype declaration:C\n\ element declaration:\"((?ielement))[ \\t\\n][ \\t]*\\n?[ \\t]*(\\l[\\l\\d\\-\\.]*)\":::Preprocessor:markup declaration:\n\ attribute declaration:\"((?iattlist))[ \\t\\n][ \\t]*\\n?[ \\t]*(\\l[\\l\\d\\-\\.]*)\":::Preprocessor:markup declaration:\n\ ad name:\"\\2\":\"\"::String2:attribute declaration:C\n\ notation declaration:\"((?inotation))[ \\t\\n][ \\t]*\\n?[ \\t]*(\\l[\\l\\d\\-\\.]*)\":::Preprocessor:markup declaration:\n\ nd name:\"\\2\":\"\"::String2:notation declaration:C\n\ shortref declaration:\"((?ishortref))[ \\t\\n][ \\t]*\\n?[ \\t]*(\\l[\\l\\d\\-\\.]*)\":::Preprocessor:markup declaration:\n\ sd name:\"\\2\":\"\"::String2:shortref declaration:C\n\ comment:\"\\-\\-\":\"\\-\\-\"::Comment:markup declaration:\n\ pi:\"\\<\\?[^\\>]*\\??\\>\":::Flag::\n\ stag:\"(\\<)(\\(\\l[\\w\\-\\.:]*\\))?\\l[\\w\\-\\.:]*\":\"/?\\>\"::Text Key1::\n\ stago-tagc:\"\\1\":\"&\"::Text Arg:stag:C\n\ Attribute:\"([\\l\\-]+)[ \\t\\v]*\\n?[ \\t\\v]*=[ \\t\\v]*\\n?[ \\t\\v]*(\"\"([^\"\"]*\\n){,4}[^\"\"]*\"\"|'([^']*\\n){,4}[^']*'|\\&([^;]*\\n){,4}[^;]*;|[\\w\\-\\.:]+)\":::Plain:stag:\n\ Attribute name:\"\\1\":\"\"::Text Arg2:Attribute:C\n\ Attribute value:\"\\2\":\"\"::String:Attribute:C\n\ Boolean Attribute:\"([\\l\\-]+)\":::Text Arg1:stag:\n\ etag:\"(\\)\":::Text Key1::\n\ etago-tagc:\"\\1\\4\":\"\"::Text Arg:etag:C\n\ Character reference:\"\\&((\\(\\l[\\l\\d\\-\\.]*\\))?\\l[\\l\\d]*|#\\d+|#[xX][a-fA-F\\d]+);?\":::Text Escape::\n\ parameter entity:\"%(\\(\\l[\\l\\d\\-\\.]*\\))?\\l[\\l\\d\\-\\.]*;?\":::Text Escape::\n\ md parameter entity:\"%(\\(\\l[\\l\\d\\-\\.]*\\))?\\l[\\l\\d\\-\\.]*;?\":::Text Escape:markup declaration:\n\ system-public id:\"<(?isystem|public|cdata)>\":::Storage Type:markup declaration:}", "SQL:1:0{\n\ keywords:\",|%|\\<|\\>|:=|=|<(SELECT|ON|FROM|ORDER BY|DESC|WHERE|AND|OR|NOT|NULL|TRUE|FALSE)>\":::Keyword::\n\ comment:\"--\":\"$\"::Comment::\n\ data types:\"<(CHAR|VARCHAR2\\([0-9]*\\)|INT[0-9]*|POINT|BOX|TEXT|BOOLEAN|VARCHAR2|VARCHAR|NUMBER\\([0-9]*\\)|NUMBER)(?!\\Y)\":::Storage Type::\n\ string:\"'\":\"'\"::String::\n\ keywords2:\"END IF;|(?\":::Preprocessor1::\n\ comment2:\"/\\*\":\"\\*/\"::Comment::}", "Sh Ksh Bash:1:0{\n\ README:\"Shell syntax highlighting patterns, version 2.2, maintainer Thorsten Haude, nedit at thorstenhau.de\":::Flag::D\n\ escaped special characters:\"\\\\[\\\\\"\"$`']\":::Keyword::\n\ single quoted string:\"'\":\"'\"::String1::\n\ double quoted string:\"\"\"\":\"\"\"\"::String::\n\ double quoted escape:\"\\\\[\\\\\"\"$`]\":::String2:double quoted string:\n\ dq command sub:\"`\":\"`\":\"\"\"\":Subroutine:double quoted string:\n\ dq arithmetic expansion:\"\\$\\(\\(\":\"\\)\\)\":\"\"\"\":String:double quoted string:\n\ dq new command sub:\"\\$\\(\":\"\\)\":\"\"\"\":Subroutine:double quoted string:\n\ dqncs single quoted string:\"'\":\"'\"::String1:dq new command sub:\n\ dq variables:\"\\$([-*@#?$!0-9]|[a-zA-Z_][0-9a-zA-Z_]*)\":::Identifier1:double quoted string:\n\ dq variables2:\"\\$\\{\":\"}\":\"\\n\":Identifier1:double quoted string:\n\ arithmetic expansion:\"\\$\\(\\(\":\"\\)\\)\"::String::\n\ ae escapes:\"\\\\[\\\\$`\"\"']\":::String2:arithmetic expansion:\n\ ae single quoted string:\"'\":\"'\":\"\\)\\)\":String1:arithmetic expansion:\n\ ae command sub:\"`\":\"`\":\"\\)\\)\":Subroutine:arithmetic expansion:\n\ ae arithmetic expansion:\"\\$\\(\\(\":\"\\)\\)\"::String:arithmetic expansion:\n\ ae new command sub:\"\\$\\(\":\"\\)\":\"\\)\\)\":Subroutine:arithmetic expansion:\n\ ae variables:\"\\$([-*@#?$!0-9]|[a-zA-Z_][0-9a-zA-Z_]*)\":::Identifier1:arithmetic expansion:\n\ ae variables2:\"\\$\\{\":\"}\":\"\\)\\)\":Identifier1:arithmetic expansion:\n\ comments:\"^[ \\t]*#\":\"$\"::Comment::\n\ command substitution:\"`\":\"`\"::Subroutine::\n\ cs escapes:\"\\\\[\\\\$`\"\"']\":::Subroutine1:command substitution:\n\ cs single quoted string:\"'\":\"'\":\"`\":String1:command substitution:\n\ cs variables:\"\\$([-*@#?$!0-9]|[a-zA-Z_][0-9a-zA-Z_]*)\":::Identifier1:command substitution:\n\ cs variables2:\"\\$\\{\":\"}\":\"`\":Identifier1:command substitution:\n\ new command substitution:\"\\$\\(\":\"\\)\"::Subroutine::\n\ ncs escapes:\"\\\\[\\\\$`\"\"']\":::Subroutine1:new command substitution:\n\ ncs single quoted string:\"'\":\"'\"::String1:new command substitution:\n\ ncs variables:\"\\$([-*@#?$!0-9]|[a-zA-Z_][0-9a-zA-Z_]*)\":::Identifier1:new command substitution:\n\ ncs variables2:\"\\$\\{\":\"}\":\"\\)\":Identifier1:new command substitution:\n\ assignment:\"[a-zA-Z_][0-9a-zA-Z_]*=\":::Identifier1::\n\ variables:\"\\$([-*@#?$!0-9_]|[a-zA-Z_][0-9a-zA-Z_]*)\":::Identifier1::\n\ variables2:\"\\$\\{\":\"}\"::Identifier1::\n\ internal var:\"\\$\\{\":\"}\"::Identifier1:variables2:\n\ comments in line:\"#\":\"$\"::Comment::\n\ numbers:\"<(?i0x[\\da-f]+)|((\\d*\\.)?\\d+([eE][-+]?\\d+)?(?iul?|l|f)?)>\":::Numeric Const::D\n\ keywords:\"(??]+\":::Identifier::\n\ delimiters:\"[{};<>&~=!|^%[\\]+*|]\":::Text Key::D\n\ built ins:\"(?\":::Identifier::\n\ Braces and Brackets:\"[\\[\\]{}]\":::Keyword::D\n\ DQ String Esc Chars:\"\\\\(.|\\n)\":::String1:Double Quote String:\n\ SQ String Esc Chars:\"\\\\(.|\\n)\":::String1:Single Quote String:\n\ Variable in String:\"\\$\\w+|\\$\\{[^}]*}|\\$\":::Identifier1:Double Quote String:\n\ Storage:\"<(public|private|protected)>\":::Storage Type::\n\ Namespace:\"\\w+::\":::Keyword::}", "VHDL:1:0{\n\ Comments:\"--\":\"$\"::Comment::\n\ String Literals:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ Vhdl Attributes:\"'[a-zA-Z][a-zA-Z_]+\":::Ada Attributes::\n\ Character Literals:\"'\":\"'\":\"[^\\\\][^']\":Character Const::\n\ Numeric Literals:\"(?\":::Storage Type::D\n\ Predefined SubTypes:\"<(?istd_logic|std_logic_vector|std_ulogic|std_ulogic_vector|bit|bit_vector)>\":::Storage Type::D\n\ Reserved Words:\"<(?iabs|access|after|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|error|exit|failure|file|for|function|generate|generic|guarded|if|in|inout|is|label|library|linkage|loop|map|mod|nand|new|next|nor|not|note|null|of|on|open|or|others|out|package|port|procedure|process|range|record|register|rem|report|return|select|severity|then|to|transport|units|until|use|wait|warning|when|while|with|xor|group|impure|inertial|literal|postponed|pure|reject|rol|ror|shared|sla|sll|sra|srl|unaffected|xnor)>\":::Keyword::D\n\ Identifiers:\"<([a-zA-Z][a-zA-Z0-9_]*)>\":::Plain::D\n\ Flag Special Comments:\"--\\<[^a-zA-Z0-9]+\\>\":::Flag:Comments:\n\ Instantiation:\"([a-zA-Z][a-zA-Z0-9_]*)([ \\t]+):([ \\t]+)([a-zA-Z][a-zA-Z0-9_]*)([ \\t]+)(port|generic|map)\":::Keyword::\n\ Instance Name:\"\\1\":\"\"::Identifier1:Instantiation:C\n\ Component Name:\"\\4\":\"\"::Identifier:Instantiation:C\n\ Syntax Character:\"(\\<=|=\\>|:|=|:=|;|,|\\(|\\))\":::Keyword::}", "Verilog:1:0{\n\ Comment:\"/\\*\":\"\\*/\"::Comment::\n\ cplus comment:\"//\":\"$\"::Comment::\n\ String Literals:\"\"\"\":\"\"\"\":\"\\n\":String::\n\ preprocessor line:\"^[ ]*`\":\"$\"::Preprocessor::\n\ Reserved WordsA:\"(?\":::Storage Type::D\n\ System Functions:\"\\$[a-z_]+\":::Subroutine::D\n\ Numeric Literals:\"(?\":::Storage Type1::\n\ Special Chars:\"(\\{|\\}|,|;|=|\\.)\":::Keyword::}", "XML:1:0{\n\ comment:\"\\