flex/tests/yymorearray.rules
Eric S. Raymond df632cf2eb Fix typo revealed by Go porting work, and improve test coverage to match.
We a ruleset test for BOL matching and a test for the array case of yymore.
Improve yymore testing by adding tests that require a BOL match in
both array and pointer cases.

Also, convert lineno sporadic test to be ruleset-based so it's
applied on all back ends.

No cide changes.
2020-11-15 12:24:35 -05:00

37 lines
1.3 KiB
Plaintext

/*
* 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.
* Also see the yymorearraybol ruleset.
*/
%array
%option nounput noyywrap noyylineno warn noinput
%%
foo {M4_TEST_DO(yymore())}
bar {M4_TEST_ASSERT(yyleng == 6)}
###
foobar