bug1054496.c
来自「a little DFA compiler.」· C语言 代码 · 共 238 行
C
238 行
/* Generated by re2c */#line 1 "bug1054496.re"#include <stdlib.h>#include <stdio.h>#include <string.h>#define RET(n) printf("%d\n", n); return n#define TAG_EOI 0#define TAG_A 1#define TAG_TAG 2int scan(char *s, int l){ char *p = s; char *q;#define YYCTYPE char#define YYCURSOR p#define YYLIMIT (s+l)#define YYMARKER q#define YYFILL(n)cont:#line 24 "<stdout>"{ YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch(yych) { case 0x00: goto yy4; case '<': goto yy2; default: goto yy6; }yy2: ++YYCURSOR; switch((yych = *YYCURSOR)) { case 'A': case 'a': goto yy7; case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy9; default: goto yy3; }yy3:#line 25 "bug1054496.re" { goto cont; }#line 95 "<stdout>"yy4: ++YYCURSOR;#line 24 "bug1054496.re" { RET(TAG_EOI); }#line 100 "<stdout>"yy6: yych = *++YYCURSOR; goto yy3;yy7: ++YYCURSOR; switch((yych = *YYCURSOR)) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy9; default: goto yy8; }yy8:#line 22 "bug1054496.re" { RET(TAG_A); }#line 164 "<stdout>"yy9: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch(yych) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy9; default: goto yy11; }yy11:#line 23 "bug1054496.re" { RET(TAG_TAG); }#line 227 "<stdout>"}#line 26 "bug1054496.re"}#define do_scan(str) scan(str, strlen(str))main(){ do_scan("0");}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?