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

📄 server.l

📁 手机短消息的服务器端和客户端的源代码 是应用于LINUX/UNIX开发环境的
💻 L
字号:
%{/*========================================================== * Program : server.l                      Project : smslink * Author  : Philippe Andersson. * Date    : 02/12/99 * Version : 0.11b * Notice  : (c) Les Ateliers du Heron, 1998 for Scitex Europe, S.A. * Comment : Lexer module for the parser (server.y). * * Modification History : * - 0.01a (19/08/98) : Initial release. * - 0.02a (21/08/98) : Made it recognize text type for some *   returned token value (T_PHNUM & T_TEXT). * - 0.03a (22/08/98) : Added recognition for '+' in PHNUM, *   and for "he" as short for "help". * - 0.04a (28/08/98) : Removed inclusion of server.h (was *   useless anyway), since was merged into sms_serv.h. * - 0.05a (30/08/98) : Added handling for both [LF] and [CR][LF] *   sequences ("\r\n"), cause [return] translates to \r\n when *   sent through telnet. Moved yyerror () from server.y to here. * - 0.06a (24/09/98) : Changed [LF] to [CR][LF] in messages *   sent through the socket. * - 0.07a (20/10/98) : Added support for 'devicelist' command. * ++++ Switched to Beta ++++ * - 0.08b (21/10/98) : Noticed quoted 'phnum' were considered *   'text'. So added optional quote-endquote sequence in 'phnum' *   syntax and moved 'phnum' pattern before 'text', otherwize *   'text' would play catch-all and hide it. * - 0.09b (23/10/98) : Added ' ' as a legal char. in a 'phnum'. * - 0.10b (16/05/99) : Added "uptime" command. * - 0.11b (02/12/99) : Added "aclist" command. *========================================================*/#include "server.tab.h"#include "sms_serv.h"#undef YY_INPUT#define YY_INPUT(b, r, ms)  (r = my_yyinput(b, ms))/*-------------------------------------External variables *//* program specific */extern int csfd;                      /* client socket FD */extern char *buffer;    /* scratch space for C/S dialogue */int yyparse ();%}%s PARAM%s ASSIGWS		[ \t]+PHNUM		(\")?(\+)?[0-9]+[\/\.\- 0-9]*(\")?TEXT		\"[^\"\n]*\"VIDENT		[a-zA-Z][a-zA-Z0-9]+%%{WS}		;^he |^help		{		BEGIN PARAM;		return T_HELP;		}^clear		{		BEGIN PARAM;		return T_CLEAR;		}^send		{ return T_SEND; }^dl |^devicelist	{ return T_DEVLIST; }^ut |^uptime		{ return T_UPTIME; }^acl |^aclist		{ return T_ACLIST; }^quit |^exit |^bye		{ return T_QUIT; }^stats		{ return T_STATS; }^sh |^show		{		BEGIN PARAM;		return T_SHOW;		}^set		{		BEGIN ASSIG;		return T_SET;		}<PARAM>[a-zA-Z]+ { return T_PARAM; }<ASSIG>{VIDENT}	{ return T_NAME; }{PHNUM}		{		yylval.string = (char *) strdup (yytext);		return T_PHNUM;		}{TEXT}		{		yylval.string = (char *) strdup (yytext);		return T_TEXT;		}\r\n |\n		{ return (0); }.		{ return (yytext[0]); }%%/*========================================================*/void yyerror (msg)const char *msg;{  sprintf (buffer, "ERROR: %s near <%s>\r\n", msg, yytext);  tellsock (csfd, buffer);}/*========================================================== * EOF : server.l *===================*/

⌨️ 快捷键说明

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