summaryrefslogtreecommitdiff
path: root/test/ragel.d/repetition.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/ragel.d/repetition.rl')
-rw-r--r--test/ragel.d/repetition.rl292
1 files changed, 0 insertions, 292 deletions
diff --git a/test/ragel.d/repetition.rl b/test/ragel.d/repetition.rl
deleted file mode 100644
index 1734af24..00000000
--- a/test/ragel.d/repetition.rl
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * @LANG: c++
- */
-
-/* Test repeptition operators. */
-
-#include <iostream>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-using namespace std;
-
-struct Rep
-{
- int cs;
-
- int init( );
- int execute( const char *data, int len );
- int finish( );
-};
-
-%%{
- machine Rep;
-
- action begin { cout << "begin" << endl; }
- action in { cout << "in" << endl; }
- action end { cout << "end" << endl; }
-
- a = 'a' >begin @in %end;
- b = 'b' >begin @in %end;
- c = 'c' >begin @in %end;
- d = 'd' >begin @in %end;
-
- main :=
- ( a {5} '\n' )* '-\n'
- ( b {,5} '\n' )* '-\n'
- ( c {5,} '\n' )* '-\n'
- ( d {2,5} '\n' )*;
-}%%
-
-%% write data;
-
-int Rep::init( )
-{
- %% write init;
- return 1;
-}
-
-int Rep::execute( const char *_data, int _len )
-{
- const char *p = _data;
- const char *pe = _data+_len;
-
- %% write exec;
-
- if ( cs == Rep_error )
- return -1;
- if ( cs >= Rep_first_final )
- return 1;
- return 0;
-}
-
-int Rep::finish( )
-{
- if ( cs == Rep_error )
- return -1;
- if ( cs >= Rep_first_final )
- return 1;
- return 0;
-}
-
-void test( const char *buf )
-{
- Rep rep;
- int len = strlen( buf );
- rep.init();
- rep.execute( buf, len );
- if ( rep.finish() > 0 )
- printf("ACCEPT\n");
- else
- printf("FAIL\n");
-}
-
-int main()
-{
- test(
- "aaaaa\n"
- "-\n"
- "\n"
- "b\n"
- "bb\n"
- "bbb\n"
- "bbbb\n"
- "bbbbb\n"
- "-\n"
- "ccccc\n"
- "ccccccc\n"
- "cccccccccc\n"
- "-\n"
- "dd\n"
- "ddd\n"
- "dddd\n"
- "ddddd\n"
- );
-
- test(
- "a\n"
- "-\n"
- "b\n"
- "-\n"
- "c\n"
- "-\n"
- "d\n"
- );
-
- return 0;
-}
-
-##### OUTPUT #####
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-begin
-in
-end
-ACCEPT
-begin
-in
-FAIL