diff options
author | Adrian Thurston <thurston@colm.net> | 2020-03-08 23:29:57 +0200 |
---|---|---|
committer | Adrian Thurston <thurston@colm.net> | 2020-03-08 23:53:25 +0200 |
commit | 78e7949ca590b273c2c152a0abe0d51e590a52fd (patch) | |
tree | c253c852aec77af8a04c24d921d8657ff29c4101 /test/ragel.d/call2.rl | |
parent | 5718c319424a21b64e1b50dbb6aae644715b9e85 (diff) | |
download | colm-78e7949ca590b273c2c152a0abe0d51e590a52fd.tar.gz |
remove the ragel tests, export runtests for use by ragel
Diffstat (limited to 'test/ragel.d/call2.rl')
-rw-r--r-- | test/ragel.d/call2.rl | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/test/ragel.d/call2.rl b/test/ragel.d/call2.rl deleted file mode 100644 index fdf40e6f..00000000 --- a/test/ragel.d/call2.rl +++ /dev/null @@ -1,116 +0,0 @@ -/* - * @LANG: c++ - * @PROHIBIT_FLAGS: --var-backend - */ - -#include <stdio.h> -#include <string.h> - -int num = 0; - -struct CallTest -{ - int cs, top, stack[32]; - - // Initialize the machine. Invokes any init statement blocks. Returns 0 - // if the machine begins in a non-accepting state and 1 if the machine - // begins in an accepting state. - void init( ); - - // Execute the machine on a block of data. Returns -1 if after processing - // the data, the machine is in the error state and can never accept, 0 if - // the machine is in a non-accepting state and 1 if the machine is in an - // accepting state. - void execute( const char *data, int len ); - - // Indicate that there is no more data. Returns -1 if the machine finishes - // in the error state and does not accept, 0 if the machine finishes - // in any other non-accepting state and 1 if the machine finishes in an - // accepting state. - int finish( ); -}; - -%%{ - machine CallTest; - - action check_num { - if ( num & 1 ) - fcall *fentry(odd); - else - fcall even; - } - - # Test call and return functionality. - even := 'even' any @{fhold; fret;}; - odd := 'odd' any @{fhold; fret;}; - num = [0-9]+ ${ num = num * 10 + (fc - '0'); }; - even_odd = num ' ' @check_num "\n"; - - # Test calls in out actions. - fail := !(any*); - out_acts = 'OA ok\n' | - 'OA error1\n' | - 'OA error2\n'; - - main := even_odd | out_acts; -}%% - -%% write data; - -void CallTest::init( ) -{ - num = 0; - %% write init; -} - -void CallTest::execute( const char *data, int len ) -{ - const char *p = data; - const char *pe = data+len; - - %% write exec; -} - -int CallTest::finish( ) -{ - if ( this->cs == CallTest_error ) - return -1; - if ( this->cs >= CallTest_first_final ) - return 1; - return 0; -} - -#define BUFSIZE 1024 - -void test( const char *buf ) -{ - CallTest test; - - test.init(); - test.execute( buf, strlen(buf) ); - if ( test.finish() > 0 ) - printf( "ACCEPT\n" ); - else - printf( "FAIL\n" ); -} - -int main() -{ - test( "78 even\n" ); - test( "89 odd\n" ); - test( "1 even\n" ); - test( "0 odd\n" ); - test( "OA ok\n" ); - test( "OA error1\n" ); - test( "OA error2\n" ); - return 0; -} - -##### OUTPUT ##### -ACCEPT -ACCEPT -FAIL -FAIL -ACCEPT -ACCEPT -ACCEPT |