⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bug1297658.c

📁 a little DFA compiler.
💻 C
字号:
/* Generated by re2c */#line 1 "bug1297658.re"#include <string.h>#include <stdlib.h>#include <iostream>struct Scanner{	Scanner(char *_inp)		: inp(_inp), buf(NULL), ptr(NULL), len(0), siz(strlen(_inp)), line(0)	{		fill(0);		cur = buf;	}		void fill(size_t n)	{		n++;		buf = (char*)realloc(buf, len + n + 1);		if ((len += n) > siz)		{			len = siz;		}		memcpy(buf, inp, len);		buf[len] = '\0';		lim = buf + len;		eof = buf + siz - 1;	}	char    *inp;	char    *cur;	char    *buf;	char    *ptr;	char    *lim;	char    *eof;	size_t  len;	size_t  siz;	size_t  line;};enum What{	UNEXPECTED,	FCON,	EOI};#define	YYCTYPE		char#define	YYCURSOR	s.cur#define	YYLIMIT		s.lim#define	YYMARKER	s.ptr#define	YYFILL(n)	s.fill(n)#define RET(n)      return (n)int scan(Scanner &s){std:#line 61 "<stdout>"{	YYCTYPE yych;	if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);	yych = *YYCURSOR;	switch(yych) {	case 0x0A:	goto yy6;	case '.':	goto yy4;	case '0':	goto yy2;	default:	goto yy8;	}yy2:	yych = *(YYMARKER = ++YYCURSOR);	switch(yych) {	case '.':	goto yy11;	case '0':	goto yy12;	default:	goto yy3;	}yy3:#line 74 "bug1297658.re"	{		RET(UNEXPECTED);	}#line 85 "<stdout>"yy4:	++YYCURSOR;	switch((yych = *YYCURSOR)) {	case 'L':	goto yy10;	case 'e':	goto yy9;	default:	goto yy5;	}yy5:#line 61 "bug1297658.re"	{		RET(FCON);	}#line 98 "<stdout>"yy6:	++YYCURSOR;#line 66 "bug1297658.re"	{		s.line++;		if(1||s.cur == s.eof) RET(EOI);		goto std;	}#line 107 "<stdout>"yy8:	yych = *++YYCURSOR;	goto yy3;yy9:	yych = *++YYCURSOR;	switch(yych) {	case 'L':	goto yy10;	default:	goto yy5;	}yy10:	yych = *++YYCURSOR;	goto yy5;yy11:	yych = *++YYCURSOR;	switch(yych) {	case 'L':	goto yy10;	case 'e':	goto yy15;	default:	goto yy5;	}yy12:	++YYCURSOR;	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);	yych = *YYCURSOR;	switch(yych) {	case '.':	goto yy11;	case '0':	goto yy12;	default:	goto yy14;	}yy14:	YYCURSOR = YYMARKER;	goto yy3;yy15:	++YYCURSOR;	switch((yych = *YYCURSOR)) {	case 'L':	goto yy10;	default:	goto yy5;	}}#line 77 "bug1297658.re"}int main(int,char**){	Scanner s("\n0.eL\n00.eL\n");		std::cout << "RES(2): " << scan(s) << std::endl;	std::cout << "RES(1): " << scan(s) << std::endl;	std::cout << "RES(2): " << scan(s) << std::endl;	std::cout << "RES(1): " << scan(s) << std::endl;	std::cout << "RES(2): " << scan(s) << std::endl;	std::cout << "RES(0): " << scan(s) << std::endl;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -