+<CLASS_CODE_I>property {
+ yylval.line = line_no;
+ BEGIN(PROPERTY_CODE);
+ return PROPERTY;
+ }
+<PROPERTY_CODE_I>nick { yylval.line = line_no; return NICK; }
+<PROPERTY_CODE_I>blurb { yylval.line = line_no; return BLURB; }
+<PROPERTY_CODE_I>maximum { yylval.line = line_no; return MAXIMUM; }
+<PROPERTY_CODE_I>minimum { yylval.line = line_no; return MINIMUM; }
+<PROPERTY_CODE_I>default_value { yylval.line = line_no; return DEFAULT_VALUE; }
+<PROPERTY_CODE_I>flags { yylval.line = line_no; return FLAGS; }
+<PROPERTY_CODE_I>type { yylval.line = line_no; return TYPE; }
+<PROPERTY_CODE_I>flags_type { yylval.line = line_no; return FLAGS_TYPE; }
+<PROPERTY_CODE_I>enum_type { yylval.line = line_no; return ENUM_TYPE; }
+<PROPERTY_CODE_I>param_type { yylval.line = line_no; return PARAM_TYPE; }
+<PROPERTY_CODE_I>boxed_type { yylval.line = line_no; return BOXED_TYPE; }
+<PROPERTY_CODE_I>object_type { yylval.line = line_no; return OBJECT_TYPE; }
+<PROPERTY_CODE>[(] {
+ yylval.line = line_no;
+ property_paren_depth = 1;
+ BEGIN(PROPERTY_CODE_I);
+ return '(';
+ }
+<PROPERTY_CODE_I>[(] {
+ yylval.line = line_no;
+ property_paren_depth++;
+ return '(';
+ }
+<PROPERTY_CODE_I>[)] {
+ yylval.line = line_no;
+ property_paren_depth--;
+ if (property_paren_depth == 0) {
+ BEGIN(CLASS_CODE_I);
+ }
+ return ')';
+ }
+
+<CLASS_CODE,CLASS_CODE_I,PROPERTY_CODE,PROPERTY_CODE_I>0|[1-9][0-9]*|0x[0-9a-fA-F]+|0[0-7]+|[0-9]*\.[0-9]+|\.[0-9][0-9]* {