diff options
Diffstat (limited to 'test/trans.d/case/scan2_crack.rl')
-rw-r--r-- | test/trans.d/case/scan2_crack.rl | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/trans.d/case/scan2_crack.rl b/test/trans.d/case/scan2_crack.rl new file mode 100644 index 00000000..dcc88144 --- /dev/null +++ b/test/trans.d/case/scan2_crack.rl @@ -0,0 +1,62 @@ +// +// @LANG: crack +// @GENERATED: true +// + +import crack.io cout; +import crack.lang Buffer; + +int + ts; +int + te; +int act; +int token; + +%%{ + machine scanner; + + # Warning: changing the patterns or the input string will affect the + # coverage of the scanner action types. + main := |* + 'a' => {cout.format( "pat1\n" ); +}; + + [ab]+ . 'c' => {cout.format( "pat2\n" ); +}; + + any => {cout.format( "any\n" ); +}; + *|; +}%% + + + +%% write data; + +void m( String s ) +{ + byteptr data = s.buffer; + int p = 0; + int pe = s.size; + int cs; + String buffer; + int eof = pe; + + %% write init; + %% write exec; + + if ( cs >= scanner_first_final ) { + cout `ACCEPT\n`; + } + else { + cout `FAIL\n`; + } +} + +void main() +{ + m( "a" ); +} + +main(); |