diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2014-10-13 19:14:30 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2014-10-13 19:14:30 +0000 |
commit | eafd7a3974e8605fd02794269db6114a3446e016 (patch) | |
tree | 064737b35dbe10f2995753ead92f95bac30ba048 /test/atoi1.rl | |
download | ragel-tarball-eafd7a3974e8605fd02794269db6114a3446e016.tar.gz |
ragel-6.9ragel-6.9
Diffstat (limited to 'test/atoi1.rl')
-rw-r--r-- | test/atoi1.rl | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/atoi1.rl b/test/atoi1.rl new file mode 100644 index 0000000..013348e --- /dev/null +++ b/test/atoi1.rl @@ -0,0 +1,69 @@ +/* + * @LANG: indep + */ +bool neg; +int val; +%% +val = 0; +neg = false; +%%{ + machine AtoI; + + action begin { + neg = false; + val = 0; + } + + action see_neg { + neg = true; + } + + action add_digit { + val = val * 10 + <int>(fc - 48); + } + + action finish { + if ( neg ) { + val = -1 * val; + } + } + action print { + printi val; + prints "\n"; + } + + atoi = ( + ('-'@see_neg | '+')? (digit @add_digit)+ + ) >begin %finish; + + main := atoi '\n' @print; +}%% +/* _____INPUT_____ +"1\n" +"12\n" +"222222\n" +"+2123\n" +"213 3213\n" +"-12321\n" +"--123\n" +"-99\n" +" -3000\n" +_____INPUT_____ */ + +/* _____OUTPUT_____ +1 +ACCEPT +12 +ACCEPT +222222 +ACCEPT +2123 +ACCEPT +FAIL +-12321 +ACCEPT +FAIL +-99 +ACCEPT +FAIL +_____OUTPUT_____ */ |