multiple_scanners_r_main.c revision 1.1.1.1
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 FILE * fp; 35 YY_BUFFER_STATE buff1, buff2; 36 yyscan_t scan1, scan2; 37 38 S1_lex_init(&scan1); 39 S2_lex_init(&scan2); 40 41 S1_set_out(stdout,scan1); 42 S2_set_out(S1_get_out(scan1),scan2); 43 44 buff1 = S1__scan_string("foo on bar off", scan1); 45 buff2 = S2__scan_string("on blah blah off foo on bar off", scan2); 46 47 /* scan simultaneously. */ 48 while(S1_ok || S2_ok) 49 { 50 if (S1_ok) 51 S1_ok = S1_lex(scan1); 52 if (S2_ok) 53 S2_ok = S2_lex(scan2); 54 } 55 S1__delete_buffer(buff1, scan1); 56 S2__delete_buffer(buff2, scan2); 57 58 S1_lex_destroy(scan1); 59 S2_lex_destroy(scan2); 60 printf("TEST RETURNING OK.\n"); 61 return 0; 62} 63 64 65/* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */ 66