diff options
Diffstat (limited to 'test/ragel.d/forder1.rl')
-rw-r--r-- | test/ragel.d/forder1.rl | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/test/ragel.d/forder1.rl b/test/ragel.d/forder1.rl deleted file mode 100644 index a0139b87..00000000 --- a/test/ragel.d/forder1.rl +++ /dev/null @@ -1,97 +0,0 @@ -/* - * @LANG: c - */ - -#include <stdio.h> -#include <string.h> - -struct forder -{ - int cs; -}; - -%%{ - machine forder; - variable cs fsm->cs; - - second = 'b' - >{printf("enter b1\n");} - >{printf("enter b2\n");} - ; - - first = 'a' - %{printf("leave a\n");} - @{printf("finish a\n");} - ; - - main := first . second . '\n'; -}%% - -%% write data; - -void forder_init( struct forder *fsm ) -{ - %% write init; -} - -void forder_execute( struct forder *fsm, const char *_data, int _len ) -{ - const char *p = _data; - const char *pe = _data+_len; - - %% write exec; -} - -int forder_finish( struct forder *fsm ) -{ - if ( fsm->cs == forder_error ) - return -1; - if ( fsm->cs >= forder_first_final ) - return 1; - return 0; -} - -struct forder fsm; - -void test( char *buf ) -{ - int len = strlen(buf); - forder_init( &fsm ); - forder_execute( &fsm, buf, len ); - if ( forder_finish( &fsm ) > 0 ) - printf("ACCEPT\n"); - else - printf("FAIL\n"); -} - -int main() -{ - test( "ab\n"); - test( "abx\n"); - test( "" ); - - test( - "ab\n" - "fail after newline\n" - ); - - return 0; -} - -##### OUTPUT ##### -finish a -leave a -enter b1 -enter b2 -ACCEPT -finish a -leave a -enter b1 -enter b2 -FAIL -FAIL -finish a -leave a -enter b1 -enter b2 -FAIL |