######################################################################
################################# C ##################################
######################################################################
[c]
#comment
"", "", "[^/]/\*.*?\*/"
#string
"", "", "\".*?(\"|$)"
#preprocessor line
"", "", "^[ \t]*#.*?$"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b"
#storage keyword
"", "", "\b(const|extern|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum)\b"
#keyword
"", "", "\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b"
#braces
"", "", "[\{\}]"
#symbols
"", "", "([\*\-\+=:;%&\|<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# C ++ ###############################
######################################################################
[c++]
#comment
"", "", "[^/]/\*.*?\*/"
#cplus comment
"", "", "//.*?$"
#string
"", "", "\".*?(\"|$)"
#preprocessor line
"", "", "^[ \t]*#.*?$"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b"
#storage keyword
"", "", "\b(class|typename|typeid|template|friend|virtual|inline|explicit|operator|overload|public|private|protected|const|extern|auto|register|static|mutable|unsigned|signed|volatile|char|double|float|int|long|short|bool|wchar_t|void|typedef|struct|union|enum)\b"
#keyword
"", "", "\b(new|delete|this|return|goto|if|else|case|default|switch|break|continue|while|do|for|catch|throw|sizeof|true|false|namespace|using|dynamic_cast|static_cast|reinterpret_cast)\b"
#braces
"", "", "[\{\}]"
#symbols
"", "", "([\*\-\+=:;%&\|<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# Ada 95 #############################
######################################################################
[ada,ada95]
#Comments
"", "", "--.*?$"
#String Literals
"", "", "\".*?(\"|$)"
#Character Literals
"", "", "'.'"
#Ada Attibutes
"", "", "'[a-zA-Z][a-zA-Z_]+\b"
#Numeric Literals
"", "", "(((2|8|10|16)#[_0-9a-fA-F]*#)|[0-9.]+)"
#Withs Pragmas Use
"", "", "\b(([wW]ith|WITH|[pP]ragma|PRAGMA|[uU]se|USE)[ \t\n\f\r]+[a-zA-Z0-9_.]+;)+\b"
#Predefined Types
"", "", "\b([bB]oolean|BOOLEAN|[cC]haracter|CHARACTER|[cC]ount|COUNT|[dD]uration|DURATION|[fF]loat|FLOAT|[iI]nteger|INTEGER|[lL]ong_[fF]loat|LONG_FLOAT|[lL]ong_[iI]nteger|LONG_INTEGER|[pP]riority|PRIORITY|[sS]hort_[fF]loat|SHORT_FLOAT|[sS]hort_[iI]nteger|SHORT_INTEGER|[sS]tring|STRING)\b"
#Predefined Subtypes
"", "", "\b([fF]ield|FIELD|[nN]atural|NATURAL|[nN]umber_[bB]ase|NUMBER_BASE|[pP]ositive|POSITIVE|[pP]riority|PRIORITY)\b"
#Reserved Words
"", "", "\b([aA]bort|ABORT|[aA]bs|ABS|[aA]ccept|ACCEPT|[aA]ccess|ACCESS|[aA]nd|AND|[aA]rray|ARRAY|[aA][tT]|[bB]egin|BEGIN|[bB]ody|BODY|[cC]ase|CASE|[cC]onstant|CONSTANT|[dD]eclare|DECLARE|[dD]elay|DELAY|[dD]elta|DELTA|[dD]igits|DIGITS|[dD][oO]||[eE]lse|ELSE|[eE]lsif|ELSIF|[eE]nd|END|[eE]ntry|ENTRY|[eE]xception|EXCEPTION|[eE]xit|EXIT|[fF]or|FOR|[fF]unction|FUNCTION|[gG]eneric|GENERIC|[gG]oto|GOTO|[iI][fF]|[iI][nN]|[iI][sS]|[lL]imited|LIMITED|[lL]oop|LOOP|[mM]od|MOD|[nN]ew|NEW|[nN]ot|NOT|[nN]ull|NULL|[oO][fF]|[oO][rR]|[oO]thers|OTHERS|[oO]ut|OUT|[pP]ackage|PACKAGE|[pP]ragma|PRAGMA|[pP]rivate|PRIVATE|[pP]rocedure|PROCEDURE|[rR]aise|RAISE|[rR]ange|RANGE|[rR]ecord|RECORD|[rR]em|REM|[rR]enames|RENAMES|[rR]eturn|RETURN|[rR]everse|REVERSE|[sS]elect|SELECT|[sS]eparate|SEPARATE|[sS]ubtype|SUBTYPE|[tT]ask|TASK|[tT]erminate|TERMINATE|[tT]hen|THEN|[tT]ype|TYPE|[uU]se|USE|[wW]hen|WHEN|[wW]hile|WHILE|[wW]ith|WITH|[xX]or|XOR)\b"
#Ada 95 Only
"", "", "\b([aA]bstract|ABSTRACT|[tT]agged|TAGGED|[aA]ll|ALL|[pP]rotected|PROTECTED|[aA]liased|ALIASED|[rR]equeue|REQUEUE|[uU]ntil|UNTIL)\b"
#Identifiers
"", "", "\b[a-zA-Z][a-zA-Z0-9_]*\b"
#Dot All
"", "", "\.[aA][lL][lL]\b"
######################################################################
################################# Pascal #############################
######################################################################
[pas,pascal]
#comment1 (* *)
"", "", "\(\*.*?\*\)"
#comment1 { }
"", "", "\{.*?\}"
#string
"", "", "'.*?('|$)"
#preprocessor line
"", "", "^[ \t]*#.*?$"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|[0-9.]+((e|E)(\+|-)?)?[0-9]*)(L|l|UL|ul|u|U|F|f)?\b"
#storage and ops
"", "", "\b(and|AND|array|const|div|export|file|function|import|in|IN|label|mod|module|nil|not|NOT|only|or|OR|packed|pow|pragma|procedure|program|protected|qualified|record|restricted|set|type|var)\b"
#keywords
"", "", "\b(begin|case|do|downto|else|end|for|goto|if|of|otherwise|then|to|until|while|with)\b"
#symbols
"", "", "([\*\-\+=:;<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# HTML ###############################
######################################################################
[html]
#comment
"", "", ""
#special chars
"", "", "\&[-.a-zA-Z0-9#]*;?"
#tag
"", "", "<(/|!)?[-.a-zA-Z0-9]*.*?>"