1/*
2 * This file is part of flex.
3 * 
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 * 
14 * Neither the name of the University nor the names of its contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
17 * 
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 * PURPOSE.
22 */
23
24%{
25
26#include "config.h"
27#include <fstream>
28
29%}
30
31%option 8bit prefix="test"
32%option nounput nomain
33%option warn c++
34
35
36%%
37
38.              { }
39
40%%
41
42#define MAX_FILES 10
43
44char *files[MAX_FILES] = { 0 };
45int filecounter = 0;
46
47int testFlexLexer::yywrap()
48{
49    if (filecounter-- > 0) {
50        std::cout << "NOW WRAPPING TO READ " << files[filecounter] << std::endl;
51        std::ifstream *ifs = new std::ifstream(files[filecounter]);
52        switch_streams(ifs);
53        return 0;
54    }
55    return 1;
56}
57
58int
59main (int argc, char *argv[])
60{
61    for (int i = 1; i < argc && i <= MAX_FILES; i++) {
62        files[i-1] = argv[i];
63	filecounter++;
64    }
65    testFlexLexer* f = new testFlexLexer;
66    f->yywrap();
67    f->yylex();
68    std::cout << "TEST RETURNING OK." << std::endl;
69    return 0;
70}
71