home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume15
/
twm
/
part01
/
lex.l
< prev
next >
Wrap
Text File
|
1988-06-12
|
4KB
|
112 lines
%{
/*****************************************************************************/
/** Copyright 1988 by Evans & Sutherland Computer Corporation, **/
/** Salt Lake City, Utah **/
/** **/
/** All Rights Reserved **/
/** **/
/** Permission to use, copy, modify, and distribute this software and **/
/** its documentation for any purpose and without fee is hereby **/
/** granted, provided that the above copyright notice appear in all **/
/** copies and that both that copyright notice and this permis- **/
/** sion notice appear in supporting documentation, and that the **/
/** name of Evans & Sutherland not be used in advertising or publi- **/
/** city pertaining to distribution of the software without specif- **/
/** ic, written prior permission. **/
/** **/
/** EVANS & SUTHERLAND DISCLAIMS ALL WARRANTIES WITH REGARD TO **/
/** THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILI- **/
/** TY AND FITNESS, IN NO EVENT SHALL EVANS & SUTHERLAND BE LIABLE **/
/** FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAM- **/
/** AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, **/
/** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS **/
/** ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PER- **/
/** FORMANCE OF THIS SOFTWARE. **/
/*****************************************************************************/
/***********************************************************************
*
* $Header: lex.l,v 1.19 88/04/15 07:09:32 tlastran Exp $
*
* .twmrc lex file
*
* 12-Nov-87 Thomas E. LaStrange File created
*
***********************************************************************/
static char RCSinfo[]=
"$Header: lex.l,v 1.19 88/04/15 07:09:32 tlastran Exp $";
#include <stdio.h>
#include "gram.h"
extern int ParseError;
%}
qstring \"[^"]*\"
number [0-9]+
button [Bb][Uu][Tt][Tt][Oo][Nn]
tbutton [Tt][Ii][Tt][Ll][Ee][Bb][Uu][Tt][Tt][Oo][Nn]
%%
"{" { return LB; }
"}" { return RB; }
{button}{number} { (void)sscanf(&yytext[6], "%d", &yylval.num);
return (BUTTON);
}
{tbutton}{number} { (void)sscanf(&yytext[11], "%d", &yylval.num);
return (TBUTTON);
}
[Mm][Ee][Nn][Uu] { return MENU; }
f.nop { return F_NOP; }
f.quit { return F_QUIT; }
f.title { return F_TITLE ; }
f.menu { return F_MENU; }
f.focus { return F_FOCUS; }
f.refresh { return F_REFRESH; }
f.file { return F_FILE; }
f.twmrc { return F_TWMRC; }
f.version { return F_VERSION; }
f.circleup { return F_CIRCLEUP; }
f.circledown { return F_CIRCLEDOWN; }
f.source { return F_SOURCE; }
f.cutfile { return F_CUTFILE; }
"!" { return F_EXEC; }
"^" { return F_CUT; }
t.nop { return T_NOP; }
t.raise { return T_RAISE; }
t.lower { return T_LOWER; }
t.move { return T_MOVE; }
[Uu][Nn][Kk][Nn][Oo][Ww][Nn][Ii][Cc][Oo][Nn] { return UNKNOWN_ICON; }
[Ww][Aa][Rr][Pp][Cc][Uu][Rr][Ss][Oo][Rr] { return WARPCURSOR; }
[Bb][Oo][Rr][Dd][Ee][Rr][Ww][Ii][Dd][Tt][Hh] { return BORDERWIDTH; }
[Tt][Ii][Tt][Ll][Ee][Ff][Oo][Nn][Tt] { return (TITLE_FONT); }
[Mm][Ee][Nn][Uu][Ff][Oo][Nn][Tt] { return (MENU_FONT); }
[Ii][Cc][Oo][Nn][Ff][Oo][Nn][Tt] { return (ICON_FONT); }
[Rr][Ee][Ss][Ii][Zz][Ee][Ff][Oo][Nn][Tt] { return (RESIZE_FONT); }
[Rr][Ee][Vv][Ee][Rr][Ss][Ee][Vv][Ii][Dd][Ee][Oo] { return (REVERSE_VIDEO); }
[Nn][Oo][Tt][Ii][Tt][Ll][Ee] { return (NO_TITLE); }
[Aa][Uu][Tt][Oo][Rr][Aa][Ii][Ss][Ee] { return (AUTO_RAISE); }
{qstring} { yylval.ptr = yytext; return STRING; }
{number} { (void)sscanf(yytext, "%d", &yylval.num);
return (NUMBER);
}
\#[^\n]*\n {;}
[\n\t ] {;}
. {
fprintf(stderr,
"twm: bad character `%s', line %d\n",
yytext, yylineno);
ParseError = 1;
}
%%
yywrap() { return(1);}
#define unput(c) TwmUnput(c)
#define input() TwmInput()
#define output(c) TwmOutput(c)