summaryrefslogtreecommitdiff
path: root/examples/atoi.rl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/atoi.rl')
-rw-r--r--examples/atoi.rl59
1 files changed, 0 insertions, 59 deletions
diff --git a/examples/atoi.rl b/examples/atoi.rl
deleted file mode 100644
index 7164b68d..00000000
--- a/examples/atoi.rl
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Convert a string to an integer.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-%%{
- machine atoi;
- write data;
-}%%
-
-long long atoi( char *str )
-{
- char *p = str, *pe = str + strlen( str );
- int cs;
- long long val = 0;
- bool neg = false;
-
- %%{
- action see_neg {
- neg = true;
- }
-
- action add_digit {
- val = val * 10 + (fc - '0');
- }
-
- main :=
- ( '-'@see_neg | '+' )? ( digit @add_digit )+
- '\n';
-
- # Initialize and execute.
- write init;
- write exec;
- }%%
-
- if ( neg )
- val = -1 * val;
-
- if ( cs < atoi_first_final )
- fprintf( stderr, "atoi: there was an error\n" );
-
- return val;
-};
-
-
-#define BUFSIZE 1024
-
-int main()
-{
- char buf[BUFSIZE];
- while ( fgets( buf, sizeof(buf), stdin ) != 0 ) {
- long long value = atoi( buf );
- printf( "%lld\n", value );
- }
- return 0;
-}