diff options
Diffstat (limited to 'tests/yymorearraybol.rules')
-rw-r--r-- | tests/yymorearraybol.rules | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/yymorearraybol.rules b/tests/yymorearraybol.rules new file mode 100644 index 0000000..8683ac2 --- /dev/null +++ b/tests/yymorearraybol.rules @@ -0,0 +1,39 @@ +%{ +#include <stdio.h> +%} +/* + * This file is part of flex. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + /* + * Test yymore with array buffer representation. What should happen is: + * 1. "foo" is matched by the first rule but not consumed. + * 2. "bar" is matched, but the token length is 6 rather than 3. + * We use a ^ to force the extra code for BOL checking. + */ + +%array +%option nounput noyywrap yylineno warn noinput +%% +^foo {yymore();} +bar {if (!(yyleng == 6)) {fprintf(stderr,"ASSERT FAILED.\n"); exit(1);}} +### +foobar |