summaryrefslogtreecommitdiff
path: root/test/ragel.d/call3.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/ragel.d/call3.rl')
-rw-r--r--test/ragel.d/call3.rl122
1 files changed, 0 insertions, 122 deletions
diff --git a/test/ragel.d/call3.rl b/test/ragel.d/call3.rl
deleted file mode 100644
index 416790d8..00000000
--- a/test/ragel.d/call3.rl
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * @LANG: obj-c
- * @PROHIBIT_FLAGS: --var-backend
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#import <Foundation/Foundation.h>
-
-int num = 0;
-
-@interface CallTest : NSObject
-{
-@public
- /* State machine operation data. */
- 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) initFsm;
-
-// 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) executeWithData:(const char *)data len:(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;
-
-@end
-
-@implementation CallTest
-
-%%{
- machine CallTest;
-
- action check_num {
- if ( num & 1 )
- fcall 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) initFsm;
-{
- num = 0;
- %% write init;
-}
-
-- (void) executeWithData:(const char *)data len:(int)len;
-{
- const char *p = data;
- const char *pe = data + len;
- %% write exec;
-}
-
-- (int) finish;
-{
- if ( cs == CallTest_error )
- return -1;
- return ( cs >= CallTest_first_final ) ? 1 : 0;
-}
-
-@end
-
-#define BUFSIZE 1024
-
-void test( char *buf )
-{
- CallTest *test = [[CallTest alloc] init];
- [test initFsm];
- [test executeWithData:buf len: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