return inv;
}
+RegExp *mkDot()
+{
+ RegExp * any = ranToRE(SubStr("[\\000-\\377]"));
+ RegExp * ran = matchChar('\n');
+ RegExp * inv = mkDiff(any, ran);
+
+ delete ran;
+ delete any;
+
+ return inv;
+}
+
char *RuleOp::type = "RuleOp";
RuleOp::RuleOp(RegExp *e, RegExp *c, Token *t, uint a)
-/* Generated by re2c 0.9.9.dev on Sat Jul 9 20:41:37 2005 */
+/* Generated by re2c 0.9.9.dev on Sun Jul 10 01:26:44 2005 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
yy52:
#line 197 "scanner.re"
{ cur = cursor;
- yylval.regexp = ranToRE("[\\000-\\377]");
+ yylval.regexp = mkDot();
return RANGE;
}
#line 375 "scanner.cc"
extern void genCode(std::ostream&, RegExp*);
extern RegExp *mkDiff(RegExp*, RegExp*);
+extern RegExp *mkDot();
extern RegExp *strToRE(SubStr);
extern RegExp *ranToRE(SubStr);
extern RegExp *invToRE(SubStr);
}
"." { cur = cursor;
- yylval.regexp = ranToRE("[\\000-\\377]");
+ yylval.regexp = mkDot();
return RANGE;
}
yy0:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy2;
+ switch(yych){
+ case 0x0A: goto yy4;
+ default: goto yy2;
+ }
yy2: ++YYCURSOR;
goto yy3;
yy3:
-#line 3 "input7.re"
+#line 5 "input7.re"
{ return 0; }
-#line 19 "<stdout>"
+#line 22 "<stdout>"
+yy4: ++YYCURSOR;
+ goto yy5;
+yy5:
+#line 6 "input7.re"
+{ return 1; }
+#line 28 "<stdout>"
}
-#line 5 "input7.re"
+#line 8 "input7.re"
/*!re2c
+any = [\000-\377];
+
. { return 0; }
+any { return 1; }
*/
yy0:
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
- goto yy2;
+ switch(yych){
+ case 0x0A: goto yy4;
+ default: goto yy2;
+ }
yy2: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x00) goto yy4;
- goto yy6;
+ switch(yych){
+ case 0x00: goto yy6;
+ case 0x0A: goto yy3;
+ default: goto yy8;
+ }
yy3:
-#line 4 "input8.re"
+#line 6 "input8.re"
{ return 1; }
-#line 22 "<stdout>"
-yy4: yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x00) goto yy7;
- goto yy8;
+#line 28 "<stdout>"
+yy4: ++YYCURSOR;
+ goto yy5;
yy5:
-#line 3 "input8.re"
+#line 7 "input8.re"
+{ return 2; }
+#line 34 "<stdout>"
+yy6: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x00: goto yy10;
+ case 0x0A: goto yy7;
+ default: goto yy11;
+ }
+yy7:
+#line 5 "input8.re"
{ return 0; }
-#line 30 "<stdout>"
-yy6: yych = *++YYCURSOR;
- if(yych >= 0x01) goto yy8;
- goto yy7;
-yy7: yych = *++YYCURSOR;
- if(yych <= 0x00) goto yy10;
- goto yy5;
+#line 45 "<stdout>"
yy8: yych = *++YYCURSOR;
- if(yych <= 0x00) goto yy10;
- goto yy9;
+ switch(yych){
+ case 0x00: goto yy10;
+ case 0x0A: goto yy9;
+ default: goto yy11;
+ }
yy9: YYCURSOR = YYMARKER;
switch(yyaccept){
- case 1: goto yy5;
+ case 1: goto yy7;
case 0: goto yy3;
}
-yy10: ++YYCURSOR;
+yy10: yych = *++YYCURSOR;
+ if(yych <= 0x00) goto yy12;
+ goto yy7;
+yy11: yych = *++YYCURSOR;
+ if(yych >= 0x01) goto yy9;
+ goto yy12;
+yy12: ++YYCURSOR;
yych = *YYCURSOR;
- goto yy5;
+ goto yy7;
}
-#line 6 "input8.re"
+#line 9 "input8.re"
/*!re2c
+any = [\000-\377];
+
.{1,3}"\000" { return 0; }
. { return 1; }
+any { return 2; }
*/