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#include "multiple_scanners_r_1.h"
25#include "multiple_scanners_r_2.h"
26
27int
28main ( int argc, char** argv )
29{
30    (void)argc;
31    (void)argv;
32
33    int S1_ok=1, S2_ok=1;
34    YY_BUFFER_STATE buff1, buff2;
35    yyscan_t scan1, scan2;
36
37    S1_lex_init(&scan1);
38    S2_lex_init(&scan2);
39
40    S1_set_out(stdout,scan1);
41    S2_set_out(S1_get_out(scan1),scan2);
42
43    buff1 = S1__scan_string("foo on bar off", scan1);
44    buff2 = S2__scan_string("on blah blah off foo on bar off", scan2);
45
46    /* scan simultaneously. */
47    while(S1_ok || S2_ok)
48    {
49        if (S1_ok)
50            S1_ok = S1_lex(scan1);
51        if (S2_ok)
52            S2_ok = S2_lex(scan2);
53    }
54    S1__delete_buffer(buff1, scan1);
55    S2__delete_buffer(buff2, scan2);
56
57    S1_lex_destroy(scan1);
58    S2_lex_destroy(scan2);
59    printf("TEST RETURNING OK.\n");
60    return 0;
61}
62
63
64/* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */
65