diff options
Diffstat (limited to 'boot/tests/parse/loops.cskt')
| -rw-r--r-- | boot/tests/parse/loops.cskt | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/boot/tests/parse/loops.cskt b/boot/tests/parse/loops.cskt new file mode 100644 index 0000000..45b1040 --- /dev/null +++ b/boot/tests/parse/loops.cskt @@ -0,0 +1,31 @@ +looping structures! + +<<< + +for i uint = 0..10 { + print(i) +} + +for x uint = 0, x < 10, x++ { + print(r) +} + +var y uint = 0 +while y < 10 { + print(y) + y++ +} + +>>> + +(loop for-each (declaration i (type name uint) (initializer (expr (binary .. (expr 0) (expr 10))))) (block + (expr (call (expr (name print)) (arg (expr (name i))))) +)) +(loop c-style (declaration x (type name uint) (initializer (expr 0))) (condition (expr (binary < (expr (name x)) (expr 10)))) (iteration (expr (increment/decrement ++ postfix (expr (name x))))) (block + (expr (call (expr (name print)) (arg (expr (name r))))) +)) +(variable (declaration y (type name uint) (initializer (expr 0)))) +(loop while (condition (expr (binary < (expr (name y)) (expr 10)))) (block + (expr (call (expr (name print)) (arg (expr (name y))))) + (expr (increment/decrement ++ postfix (expr (name y)))) +)) \ No newline at end of file |
