##############################################################
# 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
Comment,    	cm,	dark blue, 50, 1
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 *not* contain commas at the moment,
#				and any leading/trailing spaces/tabs are *included*
#				into the expression!
#		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
r2,//.*$, 					0, cm, 0
r3,[ \t]*#.*$,					0, pp, 0

c,'.',	 				0, ch, 0
cs,/\*,						0, mc, mc
ce,\*/,						mc, mc, 0

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

##############################################################
# keywords section
#
#   every line contains a single keyword
#
keywords:
bool
break
case
char
class
const
default
delete
do
double
else
enum
extern
false
float
for
friend
if
inline
int
interrupt
new
private
protected
public
register
return
signed
static
struct
switch
this
true
typedef
union
unsigned
virtual
void
volatile
while
##############################################################

