# Sample syntax file
# Put this file in "$HOME/.foxrc/Adie" or in the global registry file "/usr/lib/foxrc/Adie"
# or in "/usr/local/lib/foxrc/Adie", or in "$PATH/foxrc/Adie"
#
# If you have patterns for other languages, or improvements to the patterns
# listed below, please mail them to: foxgui-users@lists.sourceforge.net


#
# Styles
#
# Format is as follows:
#
# index=name,normalfg,normalbg,selectfg,selectbg,hilitefg,hilitebg,activebg,flags
#
# For the flags, 0=normal, 1=underline, 2=strikeout, 3=underline+strikeout
# A color of None means fall back to the default color for that particular item.
# Colors can be specified by name, e.g. "red" or in hex notation, e.g. "#ff0000".
#
[STYLES]
1=Comment,#008c00,None,None,None,None,None,None,0
2=Format,#c03e19,None,None,None,None,None,None,0
3=Keyword,#940000,None,None,None,None,None,None,0
4=Preprocessor,#772c5f,None,None,None,None,None,None,0
5="String constant,#1900da,None,None,None,None,None,None,0"
6=Number,#b600b6,None,None,None,None,None,None,0
7="Type name,#b78817,None,None,None,None,None,None,0"
8=Style,Cyan,None,None,None,None,None,None,0
9="FOX Macro,#ac8100,None,None,None,None,None,None,0"
10=FIXME,#ff00ea,None,None,None,None,None,None,0
11=Escape,#d24fff,None,None,None,None,None,None,0
12=Operator,#3c51b5,None,None,None,None,None,None,0

#
# Languages
#
# Format is as follows:
#
# index=name,extensions
#
# Where extensions is a wildcard expression as in "*.c,*.h", for the extended
# wildcard matcher as implemented in FOX library.
#
[LANGUAGES]
1=C++,*.C,*.cpp,*.cc,*.cxx,*.c++,*.H,*.hpp,*.hh,*.h++,*.h
2=C,*.c,*.h
3=Perl,*.pl,*.pm
4=Pascal,*.pas,*.p
5=Configure,configure.in
6=FORTRAN,*.f,*.F,*.f90,*.F95,*.fpp
7=Ruby,*.rb
8=Python,*.py


# Patterns
#
# Format is as follows:
#
# index=name,style,priority,parent,context,pattern
#
# Note that parent pattern number should be less than index.
# Note also that certain characters must be escaped as stored in this file.
# The patterns are PERL-compatible regular expressions, interpreted by the
# FOX regular expression matcher.
#

[C]
11="Char constant,5,5,0,0,\\'(\\\\\\\\|\\\\'|.)+?\\'"
10="Type name,7,4,0,0,\\<(unsigned|signed|int|char|wchar_t|short|long|float|double|bool|void)\\>"
13="Escape2,11,0,11,0,\\\\(n|r|a|t|\\\\|\\d+)"
12="Keyword,3,6,0,0,\\<(typename|typeid|for|while|if|else|do|struct|enum|union|switch|case|default|return|break|continue|goto|static|volatile|const|auto|register|inline|extern|sizeof)\\>"
14="Operator,12,7,0,0,(\\+\\+|\\+=|\\+|--|-=|-|==|=|&&|&=|&|\\|\\||\\|=|\\||^=|^|<<=|<<|<=|<|>>=|>>|>=|>|!=|!=|!|~=|~|\\*=|\\*|/=|/|%=|%|->)"
1="String constant,5,7,0,0,\"(\\\\\\\\|\\\\\"|.){0,1000}?\""
2="Format string,2,0,1,0,%[#0 +-]?\\d*(\\.(\\*|\\d*))?l?[diouxXeEfFgGaAcsp]"
3="Escape1,11,0,1,0,\\\\(n|r|a|t|\\\\|\\d+)"
4="Preprocessor,4,8,0,0,^\\s*#(\\\\\\n|.)*?(?=(//.*?)?$)"
5="C comment,1,0,0,0,/\\*.*?\\*/"
6="C++ comment,1,1,0,0,//.*?$"
7="Fixme1,10,0,5,0,\\<(?iFIXME)\\>"
8="Fixme2,10,0,6,0,\\<(?iFIXME)\\>"
9="Number,6,2,0,0,\\<((0[xX][0-9a-fA-F]+)|((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?\\>"

[C++]
11="Char constant,5,5,0,0,\\'(\\\\.|.)\\'"
10="Type name,7,4,0,0,\\<(unsigned|signed|int|char|short|long|float|double|bool|complex|void|wchar_t)\\>"
13="Escape2,11,0,11,0,\\\\(n|r|a|t|\\\\|\\d+)"
12="Keyword,3,6,0,0,\\<(friend|typename|explicit|typeid|for|while|if|else|try|catch|new|delete|do|namespace|class|struct|enum|union|public|private|protected|template|switch|case|default|this|return|throw|using|break|continue|goto|static|volatile|const|virtual|mutable|operator|auto|register|overload|inline|extern|and|or|xor|not|compl|and_eq|xor_eq|const_cast|dynamic_cast|true|false|not_eq|sizeof|bitor|bitand|reinterpret_cast|static_cast)\\>"
15="Operator,12,7,0,0,(\\+\\+|\\+=|\\+|--|-=|-|==|=|&&|&=|&|\\|\\||\\|=|\\||^=|^|<<=|<<|<=|<|>>=|>>|>=|>|!=|!=|!|~=|~|\\*=|\\*|/=|/|%=|%|->\\*|->)"
14="FOX Macro,9,0,0,0,\\<(FXDEFMAP|FXMALLOC|FXFREE|FXCALLOC|FXRESIZE|FXMEMDUP|FXTRACE|FXMAPFUNCS|FXMAPFUNC|FXIMPLEMENT|FXDECLARE|FXMAPTYPES|FXMAPTYPE|FXRGBA|FXRGB|FXREDVAL|FXGREENVAL|FXBLUEVAL|FXASSERT|MKUINT|SELID|SELTYPE|ARRAYNUMBER)\\>"
1="String constant,5,7,0,0,\"(\\\\\\\\|\\\\\"|.){0,1000}?\""
2="Format string,2,0,1,0,%[#0 +-]?\\d*(\\.(\\*|\\d*))?l?[diouxXeEfFgGaAcsp]"
3="Escape1,11,0,1,0,\\\\(n|r|a|t|\\\\|\\d+)"
4="Preprocessor,4,8,0,0,^\\s*#(\\\\\\n|.)*?(?=(//.*?)?$)"
5="C comment,1,0,0,0,/\\*.*?\\*/"
6="C++ comment,1,1,0,0,//.*?$"
7="Fixme1,10,0,5,0,\\<(?iFIXME)\\>"
8="Fixme2,10,0,6,0,\\<(?iFIXME)\\>"
9="Number,6,2,0,0,\\<((0[xX][0-9a-fA-F]+)|((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?\\>"

[Perl]
22="Char constant,5,5,0,0,\\'(\\\\\\\\|\\\\'|.)+?\\'"
10="Library functions,3,6,0,0,<(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chr|chroot|chown|closedir|close|connect|cos|crypt|dbmclose|dbmopen|defined|delete|die|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|exec|exists|exp|fctnl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|hex|import|index|int|ioctl|join|keys|kill|lcfirst|lc|length|link|listen|log|localtime|lstat|map|mkdir|msgctl|msgget|msgrcv|no|oct|opendir|open|ord|pack|pipe|pop|pos|printf|print|push|quotemeta|rand|readdir|read|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|scalar|seekdir|seek|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|telldir|tell|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|wait|waitpid|wantarray|warn|write|qw|-[rwxoRWXOezsfdlpSbctugkTBMAC])>"
20="Number,6,2,0,0,\\<((0[xX][0-9a-fA-F]+)|((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?\\>"
21="Typename,7,4,0,0,\\<(unsigned|signed|int|char|short|long|float|double|bool|complex|void)\\>"
15="Variable,14,1,0,0,[\\$@%](\\{[^\\}]*\\}|[/#]|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*)"
13="Subroutine,3,6,0,0,\\<(chomp|chop|split|splice|push|pop|shift|unshift)\\>"
24="Escape2,11,0,22,0,\\\\(n|r|a|t|\\\\|\\d+)"
16="Variable instring,14,1,1,0,[\\$@%&](\\{[^\\}]*\\}|[/#]|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*)"
19="Fixme2,10,0,17,0,\\<(?iFIXME)\\>"
18="Fixme1,10,0,13,0,\\<(?iFIXME)\\>"
14="Subroutine call,3,1,0,0,&[a-zA-Z0-9_]+"
17=Comment,1,0,0,0,#.*?$
25="Operator,12,7,0,0,(\\+\\+|\\+=|\\+|--|-=|-|==|=|&&|&=|\\|\\||\\|=|\\||^=|^|<<=|<<|<=|<|>>=|>>|>=|>|!=|!=|!|~=|~|\\*=|\\*|/=|%=|%|->\\*|->)"
1="String constant,5,7,0,0,[^\\\\]\"(\\\\\\\\|\\\\\"|.)*?[\"|\\n]"
2="re substitution,4,0,0,0,\\<(s|y|tr)/(\\\\/|[^/])*?/[^/]*?/[gimsox]?"
3="re substitution hl,4,2,2,0,[^\\\\]//?"
4="re substitution hl2,14,0,3,0,/"
5="re substitutionalt,4,2,0,1,\\<(s|y|tr)([^\\n\\t\\r])(\\\\\\2|[^\\2\\n])*?\\2[^\\2\\n]*?\\2[gimsox]?"
12="Escape1,11,0,1,0,\\\\(n|r|a|t|\\\\|\\d+)"
7="re matching hl,4,0,6,0,([^\\\\]|)/"
8="re matching hl2,14,0,7,0,/"
9="re matchingalt,4,3,0,0,\\<(m|q|qq)([^\\n\\r\\t])(\\\\\\2|[^\\2\\n])*?\\2[gimsox]?"
6="re matching,4,1,0,0,(m|q|qq)?/(\\\\/|[^/])*/[gimsox]?"
11="Format string,2,0,1,0,%[#0+-]?\\d*(\\.(\\*|\\d*))?l?[diouxXeEfFgGaAcsp]"
23="Keyword,15,6,0,0,\\<(my|local|new|if|until|while|elsif|else|eval|unless|for|foreach|continue|exit|die|last|goto|next|redo|return|exec|do|use|require|package|eval|BEGIN|END|eq|ne|not|\\|\\||\\&\\&|and|or|sub)\\>"

[Pascal]
1="Comment,1,0,0,0,\\(\\*.*?\\*\\)|\\{.*?\\}"
2="Character String,5,0,0,0,\\'[^']*?\\'"
3="Keyword,3,0,0,0,\\<(?iabsolute|and|array|asm|begin|break|case|const|constructor|continue|destructor|div|do|downto|else|end|file|for|function|goto|if|implementation|in|inherited|inline|interface|label|mod|nil|not|object|of|on|operator|or|packed|procedure|program|record|repeat|self|set|shl|shr|string|then|to|type|unit|until|uses|var|while|with|xor)\\>"
4="Type,7,0,0,0,\\<(?iInteger|Shortint|SmallInt|Longint|Int64|Byte|Word|Cardinal|QWord|Boolean|ByteBool|LongBool|Char)\\>"
5="Number,6,0,0,0,\\<(([0-9]+)|((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)|(\\$[0-9A-Fa-f]+)|(%[01]+)\\>"
6="Operator,12,0,0,0,(:=|:|@|\\+=|\\+|-=|-|=|\\^|<=|<|>=|>|\\*=|\\*|/=|/|\\.)"

[STYLES]
11=Escape,#d90b00,None,None,None,None,None,None,0
10=FIXME,#ff00ea,None,None,None,None,None,None,0
13=Definition,#c00003,None,None,None,None,None,None,0
12=Operator,#3847de,None,None,None,None,None,None,0
15=NOWORD,#0036ff,None,None,None,None,None,None,0
14=WORD,#ff1a00,None,None,None,None,None,None,0
1=Comment,#00a200,None,None,None,None,None,None,0
2=Format,#cb1f23,None,None,None,None,None,None,0
3=Keyword,#c60300,None,None,None,None,None,None,0
4=Preprocessor,#00738f,None,None,None,None,None,None,0
5="String constant,#0007ff,None,None,None,None,None,None,0"
6=Number,#d94bac,None,None,None,None,None,None,0
7="Type name,#c80014,None,None,None,None,None,None,0"
8=Style,Cyan,None,None,None,None,None,None,0
9="FOX Macro,#ce7c00,None,None,None,None,None,None,0"

[FORTRAN]
1=Comment,1,0,0,0,!.*?$
2="Keyword,3,0,0,0,\\<(?iuse|call|return|subroutine|function|real|integer|dimension|only|if|break|do|write|read|else|end|endif|enddo|case|select|default|implicit|none|then)\\>"
3="String constant,5,0,0,0,\"(\\\\\\\\|\\\\\"|.)*?\""
4=Continuation,10,0,0,0,&
5=Operators,12,0,0,0,(==|=|,/=|>=|<=|>|<)
6="Number,6,0,0,0,\\<(((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)\\>"

[Python]
1="String,5,3,0,0,(\\\".*?\\\")|(\\'.*?\\')"
2="Operator,12,0,0,0,\\+\\+|\\+=|\\+|--|-=|-|==|=|&&|&=|&|=|^=|^|<<=|<<|<=|<|>>=|>>|>=|>|!=|!=|!|~=|~|\\*=|\\*|/=|/|%=|%"
3="AnotherDefinition,13,6,0,0,^\\s*def\\s*[0-9a-zA-Z_]*"
4="Definition,13,5,0,0,\\<(def)\\>"
5="Keyword,3,2,0,0,\\<(import|for|in|while|if|elif|else|try|class|return|break|continue|raise|and|or|not|print|pass|access|global|from|except|exec|is|finally|lambda)\\>"
6=Comment,1,1,0,0,#.*?$


[Configure]
1="Comment,1,0,0,0,\\<dnl\\>.*?$"
2="String,5,3,0,0,\"(\\\\\\\\|\\\\\"|.)*?\""
3="ShellResult,12,1,0,0,`(\\\\\\\\|\\\\`|.)*?`"
4="SubString,2,0,3,0,\"(\\\\\\\\|\\\\\"|.)*?\""
5="String2,5,0,0,0,'(\\\\\\\\|\\\\'|.)*?'"
6="Macro,9,4,0,0,\\<A[CM]\\w*\\>"

[Ruby]
1="SingleQuoteString,5,3,0,0,'(\\\\\\\\|\\\\'|.){0,1000}?'"
2="DoubleQuoteString,5,3,0,0,\"(\\\\\\\\|\\\\\"|.){0,1000}?\""
3=Comment,1,1,0,0,#.*?$
4="Reserved Word,3,2,0,0,\\<(alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\\>"
5="Operator,12,0,0,0,\\+=|\\+|-=|-|===|==|=|&&|&=|&|\\|\\||\\|=|\\||^=|^|<<=|<<|<=|<|>>=|>>|>=|>|!=|!|~=|~|\\*=|\\*|/=|/|%=|%|"
6="Number,6,3,0,0,\\<((0[xX][0-9a-fA-F]+)|((\\d+\\.?\\d*)|(\\.\\d+))([eE](\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?\\>"


