home *** CD-ROM | disk | FTP | other *** search
Lex Description | 1988-11-05 | 2.3 KB | 76 lines |
- %{
- /* Lexical analyzer description for ANSI and C++ cdecl. */
- /* The output of this file is included */
- /* into the C file cdecl.c. */
- char cdlexsccsid[] = "@(#)cdlex.l 2.2 3/30/88";
- %}
-
- N [0-9]
- A [A-Z_a-z]
- AN [0-9A-Z_a-z]
-
- %%
- array return ARRAY;
- as return AS;
- cast return CAST;
- declare return DECLARE;
- exit return 0;
- explain return EXPLAIN;
- function return FUNCTION;
- func return FUNCTION;
- help return HELP;
- into return INTO;
- member return MEMBER;
- of return OF;
- pointer return POINTER;
- ptr return POINTER;
- quit return 0;
- reference return REFERENCE;
- ref return REFERENCE;
- returning return RETURNING;
- ret return RETURNING;
- set return SET;
- to return TO;
- vector return ARRAY;
- :: return DOUBLECOLON;
- [?] return HELP;
- [,] return COMMA;
-
- auto { yylval.dynstr = ds(yytext); return AUTO; }
- character { yylval.dynstr = ds("char"); return CHAR; }
- char { yylval.dynstr = ds(yytext); return CHAR; }
- class { yylval.dynstr = ds(yytext); return CLASS; }
- constant { yylval.dynstr = ds("const"); return CONSTVOLATILE; }
- const { yylval.dynstr = ds(yytext); return CONSTVOLATILE; }
- double { yylval.dynstr = ds(yytext); return DOUBLE; }
- enumeration { yylval.dynstr = ds("enum"); return ENUM; }
- enum { yylval.dynstr = ds(yytext); return ENUM; }
- extern { yylval.dynstr = ds(yytext); return EXTERN; }
- float { yylval.dynstr = ds(yytext); return FLOAT; }
- integer { yylval.dynstr = ds("int"); return INT; }
- int { yylval.dynstr = ds(yytext); return INT; }
- long { yylval.dynstr = ds(yytext); return LONG; }
- noalias { yylval.dynstr = ds(yytext); return CONSTVOLATILE; }
- register { yylval.dynstr = ds(yytext); return REGISTER; }
- short { yylval.dynstr = ds(yytext); return SHORT; }
- signed { yylval.dynstr = ds(yytext); return SIGNED; }
- static { yylval.dynstr = ds(yytext); return STATIC; }
- structure { yylval.dynstr = ds("struct"); return STRUCT; }
- struct { yylval.dynstr = ds(yytext); return STRUCT; }
- union { yylval.dynstr = ds(yytext); return UNION; }
- unsigned { yylval.dynstr = ds(yytext); return UNSIGNED; }
- void { yylval.dynstr = ds(yytext); return VOID; }
- volatile { yylval.dynstr = ds(yytext); return CONSTVOLATILE; }
-
- {A}{AN}* { yylval.dynstr = ds(yytext); return NAME; }
- {N}+ { yylval.dynstr = ds(yytext); return NUMBER; }
-
- [#].* ;
- [\t ] ;
- [&*[\]();\n] return *yytext;
- . {
- (void) printf("bad character '%s'\n",visible(*yytext));
- return *yytext;
- }
- %%
-