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/* This test is for correctness of extended (?...) patterns. */
26
27#include <stdio.h>
28#include <stdlib.h>
29#include "config.h"
30
31%}
32
33%option 8bit prefix="test"
34%option nounput nomain noyywrap noinput
35%option warn
36
37
38%%
39
40    /* Output should match the input. */
41
42abc(?# Single Line Comment )def    ECHO;
43ghi(?#
44    multi-line
45    comment
46    )jkl                           ECHO;
47
48mno(?#
49    multi-line //
50    comment with ##
51    ~~!@#$ %^&*(@-_+=\|,.<>/ ?: ;
52    punctuation
53    )pqr                           ECHO;
54(?# Start of a rule.)stu           ECHO;
55vwxyz(?#End of a rule.)            ECHO;
56A(?x: B
57    /* comment */
58    C D)                           ECHO;
59
60\n                                 ECHO;
61%%
62
63int main(void);
64
65int
66main (void)
67{
68    yyin = stdin;
69    yyout = stdout;
70    yylex();
71    //printf("TEST RETURNING OK.\n");
72    return 0;
73}
74