##############################################################
# states section
#
#  format of the states: section
#  <description>, <id> [, <color> [, <weight> [, <italic>]]]
#  parameter:
#	description: 	readable description of state, users can
#			see this in the color settings dlg
#	id:		state identifier string (unique among states); used
#			to reference a state in the rules: section
#	color:		two possibilities: (1) a ref to a definition
#			in the [colors] section of the rc file. (2) a hex or decimal
#			color definition (bits 0..7 for red, bits 8..15
#			green and bits 16..23 for blue; bits 24..31 should
#			always be 0). optional, defaults to 0x000000.
#	weight:		a decimal value between 0 and 99; specifies the
#			weight of the font used for drawing; can also
#			be a hex value (with preceeding 0x). optional,
#			default 50 (normal weight).
#	italic:		a value of 0 or 1, indicating the italic state
#			of the font to be used. optional, default 0.
#
#	The first state in the list is always the 'normal' state (the one
#	that parsing starts with).
#
states:
Normal,		0
Float, 	    	fl,	blue
Integer,  	int, 	blue
Identifier,	id,	black, 75
Char,       	ch, 	blue
String,     	str,	blue
Preprocessor,	pp,	dark green
MultiComment,	mc,	dark blue, 50, 1
Hex Integer,	hex,	red
Keyword,	key,	red, 75
##############################################################

##############################################################
# settings section
#
#   entries:
#	<KeywordCheck> defines the id of a state that is used
#	to check for keywords; if this state occurs, the matched
#	text is checked for any keyword in the keyword section.
#	If a keyword is found, the state <KeywordState> is used to
#	draw the keyword.
settings:
KeywordCheck=id
KeywordState=key
##############################################################

##############################################################
# rules section
#
#  format of entries in the rules: section
#  <id>, <regular expression>, <previous state>, <inner state>, <following state>
#  parameter:
#		id: 		unique string ID for rule; actually not used
#		reg.exp.:	regular expression defining matching strings for
#				the rule; it must be enclosed in "-signs; does the 
#				regexp contain "s, these have to be escaped by a '\' 
#				(backslash) character.
#		previous state:	defines the state that must occur in a text stream
#				to ŽactivateŽ this rule. A rule must be activated
#				before it is matched against the text.
#		inner state:	state of the matching text; this state is used for 
#				drawing the matching text.
#		following state:state that occurs afterwards; a rule that is activated
#				*and* matches a portion of text assigns this state 
#				to the parser; a rule must have this state as previous
#				state before it can be activated.
#
rules:
f1,"\-?[0-9]*\.?[0-9]+e\-?[0-9]+",		0, fl, 0
f1,"\-?[0-9]+\.?[0-9]*e\-?[0-9]+",		0, fl, 0
f2,"\-?[0-9]*\.[0-9]+",	 			0, fl, 0
f2,"\-?[0-9]+\.[0-9]*",	 			0, fl, 0
i1,"\-?[0-9]+[lLuU]?", 				0, int, 0
i2,"\-?0[xX][0-9a-fA-F]+[lLuU]?", 		0, hex, 0

r1,"[a-zA-Z_][a-zA-Z0-9_]*", 			0, id, 0
r3,"^[ \t]*#.*$",				0, pp, 0

ch,"'\\?.'",	 				0, ch, 0
cs,"/\*",					0, mc, mc
ce,"\*/",					mc, mc, 0

s1,"\"[^\"]*\"",				0, str, 0
##############################################################

##############################################################
# keywords section
#
#   every line contains a single keyword
#
keywords:
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
if
inline
int
interrupt
long
register
return
signed
static
struct
switch
typedef
union
unsigned
void
volatile
while
##############################################################

