📄 calc_003.c
字号:
/* 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; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -