home *** CD-ROM | disk | FTP | other *** search
Lex Description | 1988-06-12 | 4.3 KB | 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)
-