Blame src/util/ss/cmd_tbl.lex.l

Packit fd8b60
N	[0-9]
Packit fd8b60
PC	[^\"]
Packit fd8b60
AN      [A-Z_a-z0-9]
Packit fd8b60
%%
Packit fd8b60
Packit fd8b60
command_table	return l_command_table();
Packit fd8b60
request		return l_request();
Packit fd8b60
unimplemented	return l_unimplemented();
Packit fd8b60
end		return l_end();
Packit fd8b60
Packit fd8b60
[\t\n ]		;
Packit fd8b60
Packit fd8b60
\"{PC}*\"	return l_quoted_string();
Packit fd8b60
Packit fd8b60
{AN}*		return l_string();
Packit fd8b60
Packit fd8b60
#.*\n		;
Packit fd8b60
Packit fd8b60
.		return (*yytext);
Packit fd8b60
%%
Packit fd8b60
/*
Packit fd8b60
 * User-subroutines section.
Packit fd8b60
 *
Packit fd8b60
 * Have to put all this stuff here so that the include file
Packit fd8b60
 * from YACC output can be included, since LEX doesn't allow
Packit fd8b60
 * an include file before the code it generates for the above
Packit fd8b60
 * rules.
Packit fd8b60
 *
Packit fd8b60
 * Copyright 1987 by MIT Student Information Processing Board.
Packit fd8b60
 *
Packit fd8b60
 * For copyright info, see mit-sipb-copyright.h.
Packit fd8b60
 */
Packit fd8b60
#include <string.h>
Packit fd8b60
#include "ct.tab.h"
Packit fd8b60
Packit fd8b60
#ifndef HAS_STRDUP
Packit fd8b60
extern char *strdup();
Packit fd8b60
#endif
Packit fd8b60
Packit fd8b60
extern char *last_token;
Packit fd8b60
Packit fd8b60
static l_command_table()
Packit fd8b60
{
Packit fd8b60
     last_token = "command_table";
Packit fd8b60
     return COMMAND_TABLE;
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
static l_request()
Packit fd8b60
{
Packit fd8b60
     last_token = "request";
Packit fd8b60
     return REQUEST;
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
static l_unimplemented()
Packit fd8b60
{
Packit fd8b60
     last_token = "unimplemented";
Packit fd8b60
     return UNIMPLEMENTED;
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
static l_end()
Packit fd8b60
{
Packit fd8b60
     last_token = "end";
Packit fd8b60
     return END;
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
static l_quoted_string()
Packit fd8b60
{
Packit fd8b60
     char *p;
Packit fd8b60
     yylval.dynstr = strdup(yytext+1);
Packit fd8b60
     if (p=strrchr(yylval.dynstr, '"'))
Packit fd8b60
	  *p='\0';
Packit fd8b60
     last_token = strdup(yylval.dynstr);
Packit fd8b60
     return STRING;
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
static l_string()
Packit fd8b60
{
Packit fd8b60
     yylval.dynstr = strdup(yytext);
Packit fd8b60
     last_token = strdup(yylval.dynstr);
Packit fd8b60
     return STRING;
Packit fd8b60
}