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

📄 cmdlex.l

📁 支持Telnet功能的Modem通讯程序
💻 L
字号:
%{ /* -*- fundamental -*- *//* lexer spec. for modemu command mode */#include "cmdlex.h"	/*Cmdstat*/#include "defs.h"	/*->atcmd.h (uchar)*/#include "atcmd.h"	/*(atcmdDAddr)*/#if 0static struct {	const char *ptr;	const char *end;} line;#endifstatic const char *ptr;#if 0#define yyInput() (*ptr++)#define yyInput() (*ptr? *ptr++ : 0)#endif#if 0static intyyInput(void){	if (line.ptr >= line.end) return 0;	return *line.ptr++;}#endif#ifdef FLEX_SCANNER/*#undef yywrap*/static intflexYyInput(char *buf,int maxsize){	int i;	for (i = 0; i < maxsize; i++) {		if (*ptr == 0) break;		*buf++ = *ptr++;	}	return i;}# define YY_INPUT(buf,result,maxsize) (result = flexYyInput(buf,maxsize))#else /*!ifdef FLEX_SCANNER*/# undef input# define input() (*ptr++)# undef unput# define unput(c) (ptr--) /* can't alter the const */#endif /*ifdef FLEX_SCANNER*/static Cmdstat cmdstat;intyywrap(void){	return 1;}%}	/*A_NUM	([0-9]{1,3}(\.[0-9]{1,3}){3}) <- meets ATT lex bug*/	/*A_NUM	(([0-9]{1,3})(\.[0-9]{1,3}){3}) <- meets ATT lex bug*/	/*A_NUM	(([0-9]{1,3}\.){3}[0-9]{1,3}) <- meets ATT lex bug*/A_NUM	(([0-9]{1,3}\.){3}([0-9]{1,3}))A_STR	([a-zA-Z][-a-zA-Z0-9.]*)P_NUM	([0-9]{1,5})P_STR	([a-zA-Z][-a-zA-Z0-9]*)	/* TTYPE ([a-zA-Z][-/a-zA-Z0-9]*[a-zA-Z0-9]?) strict check */TTYPE	([-/a-zA-Z0-9]*)%s AT ATD%k 1500%%%{	BEGIN 0;%}<INITIAL>at |<INITIAL>AT	{ BEGIN AT; cmdstat = CMDST_OK; }<INITIAL>^#	{ return cmdstat = CMDST_NOAT; }<INITIAL>.|\n	{ /*ignore preceding garbage*/ }<AT>[dD]	{ BEGIN ATD; cmdstat = CMDST_ERROR; }<AT>[eE][0-9]?	{ if (atcmdFake(yytext,"1")) return cmdstat = CMDST_ERROR; }<AT>[fF][0-9]?	{ if (atcmdFake(yytext,"1")) return cmdstat = CMDST_ERROR; }<AT>[hH][0-9]?	{ if (atcmdH(yytext)) return cmdstat = CMDST_ERROR; }<AT>[iI][0-9]?	{ if (atcmdI(yytext)) return cmdstat = CMDST_ERROR; }<AT>[oO][0-9]?	{ if (atcmdFake(yytext,"0")) return cmdstat = CMDST_ERROR;		  cmdstat = CMDST_ATO; }<AT>[pPtT]	{ /* just ignore */ }<AT>[qQ][0-9]?	{ if (atcmdFake(yytext,"0")) return cmdstat = CMDST_ERROR; }<AT>[vV][0-9]?	{ if (atcmdFake(yytext,"1")) return cmdstat = CMDST_ERROR; }<AT>[xX][0-9]?	{ if (atcmdFake(yytext,"0")) return cmdstat = CMDST_ERROR; }<AT>[sS][0-9]*=[0-9]*	{ /* ATT lex:[0-9]{0,n} n=2:OK n=3:NG */			  if (atcmdSSet(yytext))				return cmdstat = CMDST_ERROR; }<AT>[sS][0-9]*\?	{ if (atcmdSQuery(yytext))				return cmdstat = CMDST_ERROR; }<AT>[zZ]		{ atcmdZ(); }<AT>&[wW]		{ atcmdAW(); }<AT>%[bB][0-9]?=[0-9]?	{ if (atcmdPB(yytext)) return cmdstat = CMDST_ERROR; }<AT>%[dD][0-9]?		{ if (atcmdPD(yytext)) return cmdstat = CMDST_ERROR; }<AT>%[lL][0-9]?		{ if (atcmdPL(yytext)) return cmdstat = CMDST_ERROR; }<AT>%[qQ]		{ atcmdPQ(); }<AT>%[rR][0-9]?		{ if (atcmdPR(yytext)) return cmdstat = CMDST_ERROR; }<AT>%[tT][0-9]?		{ if (atcmdPT(yytext)) return cmdstat = CMDST_ERROR; }<AT>%[tT]=\"{TTYPE}\"?	{ if (atcmdPTSet(yytext))				return cmdstat = CMDST_ERROR; }<AT>%[vV][0-9]*		{ if (atcmdPV(yytext)) return cmdstat = CMDST_ERROR; }<AT>" "			{ /*ignore spaces*/ }<AT>.|\n		{ return cmdstat = CMDST_ERROR; }<ATD>[tTpP] |<ATD>[0-9][wW,]		{ /* ignore them */ }<ATD>[sS][0-9]*		{ /* use registered number (not work yet) */ }<ATD>{A_NUM} |<ATD>\"{A_NUM}\"?	{ atcmdD(yytext, ATDA_NUM, ATDP_NUL);				cmdstat = CMDST_ATD; BEGIN AT; }<ATD>{A_NUM}:{P_NUM} |<ATD>\"{A_NUM}:{P_NUM}\"?	{ atcmdD(yytext, ATDA_NUM, ATDP_NUM);					cmdstat = CMDST_ATD; BEGIN AT; }<ATD>\"{A_NUM}:{P_STR}\"?	{ atcmdD(yytext, ATDA_NUM, ATDP_STR);					cmdstat = CMDST_ATD; BEGIN AT; }<ATD>\"{A_STR}\"?		{ atcmdD(yytext, ATDA_STR, ATDP_NUL);					cmdstat = CMDST_ATD; BEGIN AT; }<ATD>\"{A_STR}:{P_NUM}\"?	{ atcmdD(yytext, ATDA_STR, ATDP_NUM);					cmdstat = CMDST_ATD; BEGIN AT; }<ATD>\"{A_STR}:{P_STR}\"?	{ atcmdD(yytext, ATDA_STR, ATDP_STR);					cmdstat = CMDST_ATD; BEGIN AT; }<ATD>" "			{ /*ignore spaces*/ }<ATD>.|\n			{ return cmdstat = CMDST_ERROR; }%%CmdstatcmdLex(const char *p){	if (p == NULL) return CMDST_NOAT;	ptr = p;#ifdef FLEX_SCANNER	yyrestart(yyin);#endif	cmdstat = CMDST_NOAT;	yylex();	return cmdstat;}

⌨️ 快捷键说明

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