/* Generated by re2c */
#line 1 "calc_003.re"
/* re2c lesson 001_upn_calculator, calc_003, (c) M. Boerger 2006 - 2007 */
#line 19 "calc_003.re"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int scan(char *s, int l)
{
char *p = s;
char *q = 0;
#define YYCTYPE char
#define YYCURSOR p
#define YYLIMIT (s+l+2)
#define YYMARKER q
#define YYFILL(n) { printf("OOD\n"); return 2; }
for(;;)
{
#line 24 "<stdout>"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch (yych) {
case 0x00: goto yy10;
case '+': goto yy6;
case '-': goto yy8;
case '0': goto yy2;
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy4;
default: goto yy12;
}
yy2:
++YYCURSOR;
switch ((yych = *YYCURSOR)) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy16;
default: goto yy3;
}
yy3:
#line 40 "calc_003.re"
{ printf("Num\n"); continue; }
#line 64 "<stdout>"
yy4:
++YYCURSOR;
yych = *YYCURSOR;
goto yy15;
yy5:
#line 39 "calc_003.re"
{ printf("Num\n"); continue; }
#line 72 "<stdout>"
yy6:
++YYCURSOR;
#line 41 "calc_003.re"
{ printf("+\n"); continue; }
#line 77 "<stdout>"
yy8:
++YYCURSOR;
#line 42 "calc_003.re"
{ printf("+\n"); continue; }
#line 82 "<stdout>"
yy10:
++YYCURSOR;
#line 43 "calc_003.re"
{ printf("EOF\n"); return 0; }
#line 87 "<stdout>"
yy12:
++YYCURSOR;
#line 44 "calc_003.re"
{ printf("ERR\n"); return 1; }
#line 92 "<stdout>"
yy14:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy15:
switch (yych) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy14;
default: goto yy5;
}
yy16:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch (yych) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy16;
default: goto yy18;
}
yy18:
#line 38 "calc_003.re"
{ printf("Oct\n"); continue; }
#line 131 "<stdout>"
}
#line 45 "calc_003.re"
}
return 0;
}
int main(int argc, char **argv)
{
if (argc > 1)
{
return scan(argv[1], strlen(argv[1]));
}
else
{
fprintf(stderr, "%s <expr>\n", argv[0]);
return 0;
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]