source: trunk/flex/examples/manual/cat.lex@ 3032

Last change on this file since 3032 was 3031, checked in by bird, 18 years ago

flex 2.5.33.

File size: 849 bytes
Line 
1/*
2 * cat.lex: A demonstration of YY_NEW_FILE.
3 */
4
5%{
6#include <stdio.h>
7
8char **names = NULL;
9int current = 1;
10%}
11
12%%
13<<EOF>> {
14 current += 1;
15 if(names[current] != NULL){
16 yyin = fopen(names[current],"r");
17 if(yyin == NULL){
18 fprintf(stderr,"cat: unable to open %s\n",
19 names[current]);
20 yyterminate();
21 }
22 YY_NEW_FILE;
23 } else {
24 yyterminate();
25 }
26 }
27%%
28
29int main(int argc, char **argv)
30{
31 if(argc < 2){
32 fprintf(stderr,"Usage: cat files....\n");
33 exit(1);
34 }
35 names = argv;
36
37 yyin = fopen(names[current],"r");
38 if(yyin == NULL){
39 fprintf(stderr,"cat: unable to open %s\n",
40 names[current]);
41 yyterminate();
42 }
43
44 yylex();
45}
Note: See TracBrowser for help on using the repository browser.