Rickard's Projects

This site hosts my projects.

Projects

Recent events

2025-11-15 19:12 Rickard pushed to rlworkbench

commit 3b59fca7e5dd006e1a84c2cd561f4afdda0b2c4d
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 19:12:15 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index e508159..1bfc0aa 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -1,26 +1,32 @@
-main = decodeInstruction*:xs !. -> {
+main = decodeInstructionNewline*:xs !. -> {
     "bits 16\n"
     "\n"
     xs
 };
 
+decodeInstructionNewline = decodeInstruction:x -> { x "\n" };
+
 decodeInstruction =
-    | jump:x byte:y -> { x " " y "\n" }
-    | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x       -> { "mov"  " " destination ", " x "\n" }
-    | &0b_1011_1_rrr registerBottomThreeWord:destination word:x       -> { "mov"  " " destination ", " x "\n" }
-    | opFromByte:opcode peekRegByte:source      modRmByte:destination -> { opcode " " destination ", " source "\n" }
-    | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
-    | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
-    | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
+    | jump:x byte:y -> { x " " y }
+    | registerOrMemoryToFromRegister:x -> { x }
     | immediateFromAccumulator:x -> { x }
     | immediateFromRegisterMemory:x -> { x }
+    | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x -> { "mov"  " " destination ", " x }
+    | &0b_1011_1_rrr registerBottomThreeWord:destination word:x -> { "mov"  " " destination ", " x }
+    ;
+
+registerOrMemoryToFromRegister =
+    | opFromByte:opcode peekRegByte:source      modRmByte:destination -> { opcode " " destination ", " source }
+    | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source }
+    | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source }
+    | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source }
     ;
 
 immediateFromRegisterMemory =
-    | 0b_100000_1_1 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " " x ", " y "\n" }
-    | 0b_100000_1_1               immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " word " x ", " y "\n" }
-    | 0b_100000_s_0 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " " x ", " y "\n" }
-    | 0b_100000_s_0               immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " byte " x ", " y "\n" }
+    | 0b_100000_1_1 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " " x ", " y }
+    | 0b_100000_1_1               immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " word " x ", " y }
+    | 0b_100000_s_0 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " " x ", " y }
+    | 0b_100000_s_0               immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " byte " x ", " y }
     ;
 
 modIsRegToReg = &0b_11_xxxxxx;
@@ -32,8 +38,8 @@ immediateFromRegisterMemoryOpcode =
     ;
 
 immediateFromAccumulator =
-    | &0b_1 immediateFromAccumulatorOpcode:opcode word:x -> { opcode " ax, " x "\n" }
-    | &0b_0 immediateFromAccumulatorOpcode:opcode byte:x -> { opcode " al, " x "\n" }
+    | &0b_1 immediateFromAccumulatorOpcode:opcode word:x -> { opcode " ax, " x }
+    | &0b_0 immediateFromAccumulatorOpcode:opcode byte:x -> { opcode " al, " x }
     ;
 
 immediateFromAccumulatorOpcode =

commit 90ef512fb1a5a42b83a2aad1724dda960da16f1d
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 19:06:42 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index b04ea4f..e508159 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -12,33 +12,34 @@ decodeInstruction =
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
+    | immediateFromAccumulator:x -> { x }
+    | immediateFromRegisterMemory:x -> { x }
+    ;
 
-    | 0b_100000_1_1 &0b_xx_000_xxx sizeWord:s modRmWord:x byte:y -> { "add " s x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add " s x ", " y "\n" }
-    | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
-    | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
-
-    | 0b_100000_1_1 &0b_xx_101_xxx sizeWord:s modRmWord:x byte:y -> { "sub " s x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_101_xxx sizeByte:s modRmByte:x byte:y -> { "sub " s x ", " y "\n" }
-    | 0b_0010110_1 word:y -> { "sub ax, " y "\n" }
-    | 0b_0010110_0 byte:y -> { "sub al, " y "\n" }
+immediateFromRegisterMemory =
+    | 0b_100000_1_1 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " " x ", " y "\n" }
+    | 0b_100000_1_1               immediateFromRegisterMemoryOpcode:opcode modRmWord:x byte:y -> { opcode " word " x ", " y "\n" }
+    | 0b_100000_s_0 modIsRegToReg immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " " x ", " y "\n" }
+    | 0b_100000_s_0               immediateFromRegisterMemoryOpcode:opcode modRmByte:x byte:y -> { opcode " byte " x ", " y "\n" }
+    ;
 
-    | 0b_100000_1_1 &0b_xx_111_xxx sizeWord:s modRmWord:x byte:y -> { "cmp " s x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_111_xxx sizeByte:s modRmByte:x byte:y -> { "cmp " s x ", " y "\n" }
-    | 0b_0011110_1 word:y -> { "cmp ax, " y "\n" }
-    | 0b_0011110_0 byte:y -> { "cmp al, " y "\n" }
+modIsRegToReg = &0b_11_xxxxxx;
 
-    | . -> { "??\n" }
+immediateFromRegisterMemoryOpcode =
+    | &0b_xx_000_xxx -> { "add" }
+    | &0b_xx_101_xxx -> { "sub" }
+    | &0b_xx_111_xxx -> { "cmp" }
     ;
 
-sizeWord = 
-    | &0b_11_xxxxxx -> { "" }
-    |               -> { "word " }
+immediateFromAccumulator =
+    | &0b_1 immediateFromAccumulatorOpcode:opcode word:x -> { opcode " ax, " x "\n" }
+    | &0b_0 immediateFromAccumulatorOpcode:opcode byte:x -> { opcode " al, " x "\n" }
     ;
 
-sizeByte = 
-    | &0b_11_xxxxxx -> { "" }
-    |               -> { "byte " }
+immediateFromAccumulatorOpcode =
+    | 0b_0000010_x -> { "add" }
+    | 0b_0010110_x -> { "sub" }
+    | 0b_0011110_x -> { "cmp" }
     ;
 
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };

2025-11-15 18:52 Rickard pushed to rlworkbench

commit 86cab5de0ab9f3a02412e0b9757ea8216f5bb1f6
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:52:28 2025 +0100

    Fix whitespace

diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 0d99665..9432bc5 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -1,6 +1,6 @@
 bits 16
 
-add bx, [bx+si]
+add bx, [bx + si]
 add bx, [bp + 0]
 add si, 2
 add bp, 2
@@ -9,7 +9,7 @@ add bx, [bp + 0]
 add cx, [bx + 2]
 add bh, [bp + si + 4]
 add di, [bp + di + 6]
-add [bx+si], bx
+add [bx + si], bx
 add [bp + 0], bx
 add [bp + 0], bx
 add [bx + 2], cx
@@ -24,7 +24,7 @@ add al, ah
 add ax, 1000
 add al, 226
 add al, 9
-sub bx, [bx+si]
+sub bx, [bx + si]
 sub bx, [bp + 0]
 sub si, 2
 sub bp, 2
@@ -33,7 +33,7 @@ sub bx, [bp + 0]
 sub cx, [bx + 2]
 sub bh, [bp + si + 4]
 sub di, [bp + di + 6]
-sub [bx+si], bx
+sub [bx + si], bx
 sub [bp + 0], bx
 sub [bp + 0], bx
 sub [bx + 2], cx
@@ -48,7 +48,7 @@ sub al, ah
 sub ax, 1000
 sub al, 226
 sub al, 9
-cmp bx, [bx+si]
+cmp bx, [bx + si]
 cmp bx, [bp + 0]
 cmp si, 2
 cmp bp, 2
@@ -57,7 +57,7 @@ cmp bx, [bp + 0]
 cmp cx, [bx + 2]
 cmp bh, [bp + si + 4]
 cmp di, [bp + di + 6]
-cmp [bx+si], bx
+cmp [bx + si], bx
 cmp [bp + 0], bx
 cmp [bp + 0], bx
 cmp [bx + 2], cx

commit 871f3368e481ad36bc257ae1211d866d821e97b0
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:50:03 2025 +0100

    Resolve jump labels to numbers for diffing

diff --git a/make.sh b/make.sh
index 8e0b2f2..f71a8e2 100755
--- a/make.sh
+++ b/make.sh
@@ -30,6 +30,7 @@ examples() {
     test_example computerenhance_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
     test_example computerenhance_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
     test_example computerenhance_decoder listing_0039_more_movs listing_0039_more_movs.asm
+    test_example computerenhance_decoder listing_0041_add_sub_cmp_jnz listing_0041_add_sub_cmp_jnz.asm
 }
 
 example() {
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 34b73c1..0d99665 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -72,27 +72,27 @@ cmp al, ah
 cmp ax, 1000
 cmp al, 226
 cmp al, 9
-jnz test_label1
-jnz test_label0
-jnz test_label0
-jnz test_label1
-je label
-jl label
-jle label
-jb label
-jbe label
-jp label
-jo label
-js label
-jnz label
-jnl label
-jg label
-jnb label
-ja label
-jnp label
-jno label
-jns label
-loop label
-loopz label
-loopnz label
-jcxz label
+jnz 2
+jnz 252
+jnz 250
+jnz 252
+je 254
+jl 252
+jle 250
+jb 248
+jbe 246
+jp 244
+jo 242
+js 240
+jnz 238
+jnl 236
+jg 234
+jnb 232
+ja 230
+jnp 228
+jno 226
+jns 224
+loop 222
+loopz 220
+loopnz 218
+jcxz 216

commit 90843dea4a2286bfc7592f157fc9c8a5d9c84a37
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:46:10 2025 +0100

    Decode more simple instructions

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 40945d7..b04ea4f 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -63,10 +63,17 @@ jump =
     | 0b_01111010 -> { "jp" }
     | 0b_01110000 -> { "jo" }
     | 0b_01111000 -> { "js" }
-    | 0b_01110101 -> { "jne" }
     | 0b_01111101 -> { "jnl" }
     | 0b_01111111 -> { "jg" }
     | 0b_01110011 -> { "jnb" }
+    | 0b_01110111 -> { "ja" }
+    | 0b_01111011 -> { "jnp" }
+    | 0b_01110001 -> { "jno" }
+    | 0b_01111001 -> { "jns" }
+    | 0b_11100010 -> { "loop" }
+    | 0b_11100001 -> { "loopz" }
+    | 0b_11100000 -> { "loopnz" }
+    | 0b_11100011 -> { "jcxz" }
     ;
 
 peekRegByte =
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 9a5314f..34b73c1 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -72,13 +72,10 @@ cmp al, ah
 cmp ax, 1000
 cmp al, 226
 cmp al, 9
-test_label0:
 jnz test_label1
 jnz test_label0
-test_label1:
 jnz test_label0
 jnz test_label1
-label:
 je label
 jl label
 jle label
@@ -87,7 +84,7 @@ jbe label
 jp label
 jo label
 js label
-jne label
+jnz label
 jnl label
 jg label
 jnb label

commit 2de16028bfad5f0fd7ec19858c6b61cfcf4c7754
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:39:28 2025 +0100

    Decode some more cmp instructions

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index b98c97d..40945d7 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -23,6 +23,11 @@ decodeInstruction =
     | 0b_0010110_1 word:y -> { "sub ax, " y "\n" }
     | 0b_0010110_0 byte:y -> { "sub al, " y "\n" }
 
+    | 0b_100000_1_1 &0b_xx_111_xxx sizeWord:s modRmWord:x byte:y -> { "cmp " s x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_111_xxx sizeByte:s modRmByte:x byte:y -> { "cmp " s x ", " y "\n" }
+    | 0b_0011110_1 word:y -> { "cmp ax, " y "\n" }
+    | 0b_0011110_0 byte:y -> { "cmp al, " y "\n" }
+
     | . -> { "??\n" }
     ;
 
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 2305187..9a5314f 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -70,7 +70,7 @@ cmp al, [bx + si]
 cmp ax, bx
 cmp al, ah
 cmp ax, 1000
-cmp al, -30
+cmp al, 226
 cmp al, 9
 test_label0:
 jnz test_label1

commit cb51ef315cc127a93aada926f0d76699844a4b77
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:37:43 2025 +0100

    Decode sub immediate

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index aff6a8c..b98c97d 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -20,6 +20,8 @@ decodeInstruction =
 
     | 0b_100000_1_1 &0b_xx_101_xxx sizeWord:s modRmWord:x byte:y -> { "sub " s x ", " y "\n" }
     | 0b_100000_s_0 &0b_xx_101_xxx sizeByte:s modRmByte:x byte:y -> { "sub " s x ", " y "\n" }
+    | 0b_0010110_1 word:y -> { "sub ax, " y "\n" }
+    | 0b_0010110_0 byte:y -> { "sub al, " y "\n" }
 
     | . -> { "??\n" }
     ;
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 90f2e5f..2305187 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -46,7 +46,7 @@ sub al, [bx + si]
 sub ax, bx
 sub al, ah
 sub ax, 1000
-sub al, -30
+sub al, 226
 sub al, 9
 cmp bx, [bx+si]
 cmp bx, [bp + 0]

commit 8f966e19cdaf5c6be3330abbdd3a40cdbdc3bbf3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:36:31 2025 +0100

    Decode some more sub instructions

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 355836e..aff6a8c 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -18,6 +18,9 @@ decodeInstruction =
     | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
     | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
 
+    | 0b_100000_1_1 &0b_xx_101_xxx sizeWord:s modRmWord:x byte:y -> { "sub " s x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_101_xxx sizeByte:s modRmByte:x byte:y -> { "sub " s x ", " y "\n" }
+
     | . -> { "??\n" }
     ;
 
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 8718dd2..90f2e5f 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -41,7 +41,7 @@ sub [bp + si + 4], bh
 sub [bp + di + 6], di
 sub byte [bx], 34
 sub word [bx + di], 29
-sub ax, [bp]
+sub ax, [bp + 0]
 sub al, [bx + si]
 sub ax, bx
 sub al, ah

commit e03aa3ce80173bcc77ffc3288a7b9eb73180c4ee
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:35:03 2025 +0100

    Replace signed with unsigned in exmaple andd print correct add name

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index e576e51..355836e 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -14,7 +14,7 @@ decodeInstruction =
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
 
     | 0b_100000_1_1 &0b_xx_000_xxx sizeWord:s modRmWord:x byte:y -> { "add " s x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add3 " s x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add " s x ", " y "\n" }
     | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
     | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
 
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 444b650..8718dd2 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -22,7 +22,7 @@ add al, [bx + si]
 add ax, bx
 add al, ah
 add ax, 1000
-add al, -30
+add al, 226
 add al, 9
 sub bx, [bx+si]
 sub bx, [bp + 0]

commit a7b9bdaa57eb30605e1f2c08ddfa30ee0a10e99d
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:33:25 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index c61ddde..e576e51 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -131,33 +131,25 @@ displacementModZero =
     ;
 
 displacementModOne =
-    | 0b_000 displacementByte:x -> { "[bx + si" x "]" }
-    | 0b_001 displacementByte:x -> { "[bx + di" x "]" }
-    | 0b_010 displacementByte:x -> { "[bp + si" x "]" }
-    | 0b_011 displacementByte:x -> { "[bp + di" x "]" }
-    | 0b_100 displacementByte:x -> { "[si" x "]" }
-    | 0b_101 displacementByte:x -> { "[di" x "]" }
-    | 0b_110 displacementByte:x -> { "[bp" x "]" }
-    | 0b_111 displacementByte:x -> { "[bx" x "]" }
-    ;
-
-displacementByte =
-    | byte:x -> { " + " x }
+    | 0b_000 byte:x -> { "[bx + si + " x "]" }
+    | 0b_001 byte:x -> { "[bx + di + " x "]" }
+    | 0b_010 byte:x -> { "[bp + si + " x "]" }
+    | 0b_011 byte:x -> { "[bp + di + " x "]" }
+    | 0b_100 byte:x -> { "[si + " x "]" }
+    | 0b_101 byte:x -> { "[di + " x "]" }
+    | 0b_110 byte:x -> { "[bp + " x "]" }
+    | 0b_111 byte:x -> { "[bx + " x "]" }
     ;
 
 displacementModTwo =
-    | 0b_000 displacementWord:x -> { "[bx + si" x "]" }
-    | 0b_001 displacementWord:x -> { "[bx + di" x "]" }
-    | 0b_010 displacementWord:x -> { "[bp + si" x "]" }
-    | 0b_011 displacementWord:x -> { "[bp + di" x "]" }
-    | 0b_100 displacementWord:x -> { "[si" x "]" }
-    | 0b_101 displacementWord:x -> { "[di" x "]" }
-    | 0b_110 displacementWord:x -> { "[bp" x "]" }
-    | 0b_111 displacementWord:x -> { "[bx" x "]" }
-    ;
-
-displacementWord =
-    | word:x -> { " + " x }
+    | 0b_000 word:x -> { "[bx + si + " x "]" }
+    | 0b_001 word:x -> { "[bx + di + " x "]" }
+    | 0b_010 word:x -> { "[bp + si + " x "]" }
+    | 0b_011 word:x -> { "[bp + di + " x "]" }
+    | 0b_100 word:x -> { "[si + " x "]" }
+    | 0b_101 word:x -> { "[di + " x "]" }
+    | 0b_110 word:x -> { "[bp + " x "]" }
+    | 0b_111 word:x -> { "[bx + " x "]" }
     ;
 
 byte = .:l     -> { number(l)      };

commit a05fd855bb5bf282ac5b119251e2951c6518a831
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:31:16 2025 +0100

    Add zero displacements to example

diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 8f90156..444b650 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -1,7 +1,7 @@
 bits 16
 
 add bx, [bx+si]
-add bx, [bp]
+add bx, [bp + 0]
 add si, 2
 add bp, 2
 add cx, 8
@@ -10,14 +10,14 @@ add cx, [bx + 2]
 add bh, [bp + si + 4]
 add di, [bp + di + 6]
 add [bx+si], bx
-add [bp], bx
+add [bp + 0], bx
 add [bp + 0], bx
 add [bx + 2], cx
 add [bp + si + 4], bh
 add [bp + di + 6], di
 add byte [bx], 34
 add word [bp + si + 1000], 29
-add ax, [bp]
+add ax, [bp + 0]
 add al, [bx + si]
 add ax, bx
 add al, ah
@@ -25,7 +25,7 @@ add ax, 1000
 add al, -30
 add al, 9
 sub bx, [bx+si]
-sub bx, [bp]
+sub bx, [bp + 0]
 sub si, 2
 sub bp, 2
 sub cx, 8
@@ -34,7 +34,7 @@ sub cx, [bx + 2]
 sub bh, [bp + si + 4]
 sub di, [bp + di + 6]
 sub [bx+si], bx
-sub [bp], bx
+sub [bp + 0], bx
 sub [bp + 0], bx
 sub [bx + 2], cx
 sub [bp + si + 4], bh
@@ -49,7 +49,7 @@ sub ax, 1000
 sub al, -30
 sub al, 9
 cmp bx, [bx+si]
-cmp bx, [bp]
+cmp bx, [bp + 0]
 cmp si, 2
 cmp bp, 2
 cmp cx, 8
@@ -58,14 +58,14 @@ cmp cx, [bx + 2]
 cmp bh, [bp + si + 4]
 cmp di, [bp + di + 6]
 cmp [bx+si], bx
-cmp [bp], bx
+cmp [bp + 0], bx
 cmp [bp + 0], bx
 cmp [bx + 2], cx
 cmp [bp + si + 4], bh
 cmp [bp + di + 6], di
 cmp byte [bx], 34
 cmp word [4834], 29
-cmp ax, [bp]
+cmp ax, [bp + 0]
 cmp al, [bx + si]
 cmp ax, bx
 cmp al, ah

commit 8c4f9486017bdf3d00dc3cb53e7cabac1645f021
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:29:28 2025 +0100

    Print 0 displacements

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 7fe6e07..c61ddde 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -12,10 +12,12 @@ decodeInstruction =
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
-    | 0b_100000_s_1 &0b_xx_000_xxx sizeWord:s modRmWord:x word:y -> { "add " s x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add " s x ", " y "\n" }
+
+    | 0b_100000_1_1 &0b_xx_000_xxx sizeWord:s modRmWord:x byte:y -> { "add " s x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add3 " s x ", " y "\n" }
     | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
     | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
+
     | . -> { "??\n" }
     ;
 
@@ -140,8 +142,7 @@ displacementModOne =
     ;
 
 displacementByte =
-    | 0b_0000_0000 -> { "" }
-    | byte:x       -> { " + " x }
+    | byte:x -> { " + " x }
     ;
 
 displacementModTwo =
@@ -156,8 +157,7 @@ displacementModTwo =
     ;
 
 displacementWord =
-    | 0b_0000_0000 0b_0000_0000 -> { "" }
-    | word:x                    -> { " + " x }
+    | word:x -> { " + " x }
     ;
 
 byte = .:l     -> { number(l)      };
diff --git a/src/examples/computerenhance_decoder/listing_0039_more_movs.asm b/src/examples/computerenhance_decoder/listing_0039_more_movs.asm
index 9f0ddcb..3f42057 100644
--- a/src/examples/computerenhance_decoder/listing_0039_more_movs.asm
+++ b/src/examples/computerenhance_decoder/listing_0039_more_movs.asm
@@ -10,9 +10,9 @@ mov dx, 3948
 mov dx, 61588
 mov al, [bx + si]
 mov bx, [bp + di]
-mov dx, [bp]
+mov dx, [bp + 0]
 mov ah, [bx + si + 4]
 mov al, [bx + si + 4999]
 mov [bx + di], cx
 mov [bp + si], cl
-mov [bp], ch
+mov [bp + 0], ch

2025-11-15 18:20 Rickard pushed to rlworkbench

commit 2a13112e080a9645237e5a519e275ce78c1c2b09
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:20:25 2025 +0100

    Use size prefix

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 6f6930b..7fe6e07 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -12,13 +12,23 @@ decodeInstruction =
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
-    | 0b_100000_s_1 &0b_xx_000_xxx modRmWord:x word:y -> { "add " x ", " y "\n" }
-    | 0b_100000_s_0 &0b_xx_000_xxx modRmByte:x byte:y -> { "add " x ", " y "\n" }
+    | 0b_100000_s_1 &0b_xx_000_xxx sizeWord:s modRmWord:x word:y -> { "add " s x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_000_xxx sizeByte:s modRmByte:x byte:y -> { "add " s x ", " y "\n" }
     | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
     | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
     | . -> { "??\n" }
     ;
 
+sizeWord = 
+    | &0b_11_xxxxxx -> { "" }
+    |               -> { "word " }
+    ;
+
+sizeByte = 
+    | &0b_11_xxxxxx -> { "" }
+    |               -> { "byte " }
+    ;
+
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
 opFromWord = &0b_xxxxxx_0_1 opcode:x -> { x };
 opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };

commit a40366a0fdb374cc198abce700d706ba734417fd
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 18:12:13 2025 +0100

    Decode some more add instructions

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 215ca67..6f6930b 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -12,6 +12,10 @@ decodeInstruction =
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
+    | 0b_100000_s_1 &0b_xx_000_xxx modRmWord:x word:y -> { "add " x ", " y "\n" }
+    | 0b_100000_s_0 &0b_xx_000_xxx modRmByte:x byte:y -> { "add " x ", " y "\n" }
+    | 0b_0000010_1 word:y -> { "add ax, " y "\n" }
+    | 0b_0000010_0 byte:y -> { "add al, " y "\n" }
     | . -> { "??\n" }
     ;
 

commit ee9df7a718fd075d353ece4481988b941251d3cb
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 17:53:59 2025 +0100

    Add some instructions

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index f01e3d8..215ca67 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -5,6 +5,7 @@ main = decodeInstruction*:xs !. -> {
 };
 
 decodeInstruction =
+    | jump:x byte:y -> { x " " y "\n" }
     | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x       -> { "mov"  " " destination ", " x "\n" }
     | &0b_1011_1_rrr registerBottomThreeWord:destination word:x       -> { "mov"  " " destination ", " x "\n" }
     | opFromByte:opcode peekRegByte:source      modRmByte:destination -> { opcode " " destination ", " source "\n" }
@@ -21,6 +22,25 @@ opToWord   = &0b_xxxxxx_1_1 opcode:x -> { x };
 
 opcode =
     | 0b_100010_xx -> { "mov" }
+    | 0b_000000_xx -> { "add" }
+    | 0b_001010_xx -> { "sub" }
+    | 0b_001110_xx -> { "cmp" }
+    ;
+
+jump = 
+    | 0b_01110101 -> { "jnz" }
+    | 0b_01110100 -> { "je" }
+    | 0b_01111100 -> { "jl" }
+    | 0b_01111110 -> { "jle" }
+    | 0b_01110010 -> { "jb" }
+    | 0b_01110110 -> { "jbe" }
+    | 0b_01111010 -> { "jp" }
+    | 0b_01110000 -> { "jo" }
+    | 0b_01111000 -> { "js" }
+    | 0b_01110101 -> { "jne" }
+    | 0b_01111101 -> { "jnl" }
+    | 0b_01111111 -> { "jg" }
+    | 0b_01110011 -> { "jnb" }
     ;
 
 peekRegByte =

commit 973f5c6feee7692c4c7b695034be4ebe83f42b69
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 17:42:38 2025 +0100

    Fix formatting in example

diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
index 6b79cf0..8f90156 100644
--- a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -1,19 +1,3 @@
-; ========================================================================
-;
-; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
-;
-; This software is provided 'as-is', without any express or implied
-; warranty. In no event will the authors be held liable for any damages
-; arising from the use of this software.
-;
-; Please see https://computerenhance.com for further information
-;
-; ========================================================================
-
-; ========================================================================
-; LISTING 41
-; ========================================================================
-
 bits 16
 
 add bx, [bx+si]
@@ -40,7 +24,6 @@ add al, ah
 add ax, 1000
 add al, -30
 add al, 9
-
 sub bx, [bx+si]
 sub bx, [bp]
 sub si, 2
@@ -65,7 +48,6 @@ sub al, ah
 sub ax, 1000
 sub al, -30
 sub al, 9
-
 cmp bx, [bx+si]
 cmp bx, [bp]
 cmp si, 2
@@ -90,14 +72,12 @@ cmp al, ah
 cmp ax, 1000
 cmp al, -30
 cmp al, 9
-
 test_label0:
 jnz test_label1
 jnz test_label0
 test_label1:
 jnz test_label0
 jnz test_label1
-
 label:
 je label
 jl label

commit 3eba01228c7a72dfbb5d31dba83efe054273c178
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 17:42:27 2025 +0100

    Add catch all instruction

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 94916b6..f01e3d8 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -11,6 +11,7 @@ decodeInstruction =
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
+    | . -> { "??\n" }
     ;
 
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };

commit 5a09d0aa92e5f3767505c6a896a8f7e7e3782784
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 17:40:05 2025 +0100

    Add listing 41

diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz
new file mode 100644
index 0000000..6c71f1b
Binary files /dev/null and b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz differ
diff --git a/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
new file mode 100644
index 0000000..6b79cf0
--- /dev/null
+++ b/src/examples/computerenhance_decoder/listing_0041_add_sub_cmp_jnz.asm
@@ -0,0 +1,121 @@
+; ========================================================================
+;
+; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Please see https://computerenhance.com for further information
+;
+; ========================================================================
+
+; ========================================================================
+; LISTING 41
+; ========================================================================
+
+bits 16
+
+add bx, [bx+si]
+add bx, [bp]
+add si, 2
+add bp, 2
+add cx, 8
+add bx, [bp + 0]
+add cx, [bx + 2]
+add bh, [bp + si + 4]
+add di, [bp + di + 6]
+add [bx+si], bx
+add [bp], bx
+add [bp + 0], bx
+add [bx + 2], cx
+add [bp + si + 4], bh
+add [bp + di + 6], di
+add byte [bx], 34
+add word [bp + si + 1000], 29
+add ax, [bp]
+add al, [bx + si]
+add ax, bx
+add al, ah
+add ax, 1000
+add al, -30
+add al, 9
+
+sub bx, [bx+si]
+sub bx, [bp]
+sub si, 2
+sub bp, 2
+sub cx, 8
+sub bx, [bp + 0]
+sub cx, [bx + 2]
+sub bh, [bp + si + 4]
+sub di, [bp + di + 6]
+sub [bx+si], bx
+sub [bp], bx
+sub [bp + 0], bx
+sub [bx + 2], cx
+sub [bp + si + 4], bh
+sub [bp + di + 6], di
+sub byte [bx], 34
+sub word [bx + di], 29
+sub ax, [bp]
+sub al, [bx + si]
+sub ax, bx
+sub al, ah
+sub ax, 1000
+sub al, -30
+sub al, 9
+
+cmp bx, [bx+si]
+cmp bx, [bp]
+cmp si, 2
+cmp bp, 2
+cmp cx, 8
+cmp bx, [bp + 0]
+cmp cx, [bx + 2]
+cmp bh, [bp + si + 4]
+cmp di, [bp + di + 6]
+cmp [bx+si], bx
+cmp [bp], bx
+cmp [bp + 0], bx
+cmp [bx + 2], cx
+cmp [bp + si + 4], bh
+cmp [bp + di + 6], di
+cmp byte [bx], 34
+cmp word [4834], 29
+cmp ax, [bp]
+cmp al, [bx + si]
+cmp ax, bx
+cmp al, ah
+cmp ax, 1000
+cmp al, -30
+cmp al, 9
+
+test_label0:
+jnz test_label1
+jnz test_label0
+test_label1:
+jnz test_label0
+jnz test_label1
+
+label:
+je label
+jl label
+jle label
+jb label
+jbe label
+jp label
+jo label
+js label
+jne label
+jnl label
+jg label
+jnb label
+ja label
+jnp label
+jno label
+jns label
+loop label
+loopz label
+loopnz label
+jcxz label

commit 39dd1d1778f1deb86f9430b17a143c36c2fd787e
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 17:15:14 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index e04333e..94916b6 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -4,42 +4,44 @@ main = decodeInstruction*:xs !. -> {
     xs
 };
 
-instructionDoc = 0b_xxxxxx_d_w 0b_mm_rrr_mmm 0b_llllllll 0b_yyyyyyyy;
-
 decodeInstruction =
-    | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x -> {
-        "mov " destination ", " x "\n"
-    }
-    | &0b_1011_1_rrr registerBottomThreeWord:destination word:x -> {
-        "mov " destination ", " x "\n"
-    }
+    | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x       -> { "mov"  " " destination ", " x "\n" }
+    | &0b_1011_1_rrr registerBottomThreeWord:destination word:x       -> { "mov"  " " destination ", " x "\n" }
     | opFromByte:opcode peekRegByte:source      modRmByte:destination -> { opcode " " destination ", " source "\n" }
     | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
     | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
     | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
-    | . -> { "unknown\n" }
+    ;
+
+opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
+opFromWord = &0b_xxxxxx_0_1 opcode:x -> { x };
+opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };
+opToWord   = &0b_xxxxxx_1_1 opcode:x -> { x };
+
+opcode =
+    | 0b_100010_xx -> { "mov" }
     ;
 
 peekRegByte =
-    | &0b_xx_000_xxx -> { "al" }
-    | &0b_xx_001_xxx -> { "cl" }
-    | &0b_xx_010_xxx -> { "dl" }
-    | &0b_xx_011_xxx -> { "bl" }
-    | &0b_xx_100_xxx -> { "ah" }
-    | &0b_xx_101_xxx -> { "ch" }
-    | &0b_xx_110_xxx -> { "dh" }
-    | &0b_xx_111_xxx -> { "bh" }
+    | &0b_000_xxx -> { "al" }
+    | &0b_001_xxx -> { "cl" }
+    | &0b_010_xxx -> { "dl" }
+    | &0b_011_xxx -> { "bl" }
+    | &0b_100_xxx -> { "ah" }
+    | &0b_101_xxx -> { "ch" }
+    | &0b_110_xxx -> { "dh" }
+    | &0b_111_xxx -> { "bh" }
     ;
 
 peekRegWord =
-    | &0b_xx_000_xxx -> { "ax" }
-    | &0b_xx_001_xxx -> { "cx" }
-    | &0b_xx_010_xxx -> { "dx" }
-    | &0b_xx_011_xxx -> { "bx" }
-    | &0b_xx_100_xxx -> { "sp" }
-    | &0b_xx_101_xxx -> { "bp" }
-    | &0b_xx_110_xxx -> { "si" }
-    | &0b_xx_111_xxx -> { "di" }
+    | &0b_000_xxx -> { "ax" }
+    | &0b_001_xxx -> { "cx" }
+    | &0b_010_xxx -> { "dx" }
+    | &0b_011_xxx -> { "bx" }
+    | &0b_100_xxx -> { "sp" }
+    | &0b_101_xxx -> { "bp" }
+    | &0b_110_xxx -> { "si" }
+    | &0b_111_xxx -> { "di" }
     ;
 
 modRmByte =
@@ -53,54 +55,53 @@ modRmWord =
     ;
 
 registerBottomThreeByte =
-    | 0b_xxxxx_000 -> { "al" }
-    | 0b_xxxxx_001 -> { "cl" }
-    | 0b_xxxxx_010 -> { "dl" }
-    | 0b_xxxxx_011 -> { "bl" }
-    | 0b_xxxxx_100 -> { "ah" }
-    | 0b_xxxxx_101 -> { "ch" }
-    | 0b_xxxxx_110 -> { "dh" }
-    | 0b_xxxxx_111 -> { "bh" }
+    | 0b_000 -> { "al" }
+    | 0b_001 -> { "cl" }
+    | 0b_010 -> { "dl" }
+    | 0b_011 -> { "bl" }
+    | 0b_100 -> { "ah" }
+    | 0b_101 -> { "ch" }
+    | 0b_110 -> { "dh" }
+    | 0b_111 -> { "bh" }
     ;
 
 registerBottomThreeWord =
-    | 0b_xxxxx_000 -> { "ax" }
-    | 0b_xxxxx_001 -> { "cx" }
-    | 0b_xxxxx_010 -> { "dx" }
-    | 0b_xxxxx_011 -> { "bx" }
-    | 0b_xxxxx_100 -> { "sp" }
-    | 0b_xxxxx_101 -> { "bp" }
-    | 0b_xxxxx_110 -> { "si" }
-    | 0b_xxxxx_111 -> { "di" }
+    | 0b_000 -> { "ax" }
+    | 0b_001 -> { "cx" }
+    | 0b_010 -> { "dx" }
+    | 0b_011 -> { "bx" }
+    | 0b_100 -> { "sp" }
+    | 0b_101 -> { "bp" }
+    | 0b_110 -> { "si" }
+    | 0b_111 -> { "di" }
     ;
 
 displacement = 
-    | 0b_00_xxx_000 -> { "[bx + si]" }
-    | 0b_00_xxx_001 -> { "[bx + di]" }
-    | 0b_00_xxx_010 -> { "[bp + si]" }
-    | 0b_00_xxx_011 -> { "[bp + di]" }
-    | 0b_00_xxx_100 -> { "[si]" }
-    | 0b_00_xxx_101 -> { "[di]" }
-    | 0b_00_xxx_110 word:x -> { "[" x "]" }
-    | 0b_00_xxx_111 -> { "[bx]" }
-
-    | 0b_01_xxx_000 displacementByte:x -> { "[bx + si" x "]" }
-    | 0b_01_xxx_001 displacementByte:x -> { "[bx + di" x "]" }
-    | 0b_01_xxx_010 displacementByte:x -> { "[bp + si" x "]" }
-    | 0b_01_xxx_011 displacementByte:x -> { "[bp + di" x "]" }
-    | 0b_01_xxx_100 displacementByte:x -> { "[si" x "]" }
-    | 0b_01_xxx_101 displacementByte:x -> { "[di" x "]" }
-    | 0b_01_xxx_110 displacementByte:x -> { "[bp" x "]" }
-    | 0b_01_xxx_111 displacementByte:x -> { "[bx" x "]" }
-
-    | 0b_10_xxx_000 displacementWord:x -> { "[bx + si" x "]" }
-    | 0b_10_xxx_001 displacementWord:x -> { "[bx + di" x "]" }
-    | 0b_10_xxx_010 displacementWord:x -> { "[bp + si" x "]" }
-    | 0b_10_xxx_011 displacementWord:x -> { "[bp + di" x "]" }
-    | 0b_10_xxx_100 displacementWord:x -> { "[si" x "]" }
-    | 0b_10_xxx_101 displacementWord:x -> { "[di" x "]" }
-    | 0b_10_xxx_110 displacementWord:x -> { "[bp" x "]" }
-    | 0b_10_xxx_111 displacementWord:x -> { "[bx" x "]" }
+    | &0b_00_xxxxxx displacementModZero:x -> { x }
+    | &0b_01_xxxxxx displacementModOne:x  -> { x }
+    | &0b_10_xxxxxx displacementModTwo:x  -> { x }
+    ;
+
+displacementModZero = 
+    | 0b_000        -> { "[bx + si]" }
+    | 0b_001        -> { "[bx + di]" }
+    | 0b_010        -> { "[bp + si]" }
+    | 0b_011        -> { "[bp + di]" }
+    | 0b_100        -> { "[si]" }
+    | 0b_101        -> { "[di]" }
+    | 0b_110 word:x -> { "[" x "]" }
+    | 0b_111        -> { "[bx]" }
+    ;
+
+displacementModOne =
+    | 0b_000 displacementByte:x -> { "[bx + si" x "]" }
+    | 0b_001 displacementByte:x -> { "[bx + di" x "]" }
+    | 0b_010 displacementByte:x -> { "[bp + si" x "]" }
+    | 0b_011 displacementByte:x -> { "[bp + di" x "]" }
+    | 0b_100 displacementByte:x -> { "[si" x "]" }
+    | 0b_101 displacementByte:x -> { "[di" x "]" }
+    | 0b_110 displacementByte:x -> { "[bp" x "]" }
+    | 0b_111 displacementByte:x -> { "[bx" x "]" }
     ;
 
 displacementByte =
@@ -108,19 +109,21 @@ displacementByte =
     | byte:x       -> { " + " x }
     ;
 
+displacementModTwo =
+    | 0b_000 displacementWord:x -> { "[bx + si" x "]" }
+    | 0b_001 displacementWord:x -> { "[bx + di" x "]" }
+    | 0b_010 displacementWord:x -> { "[bp + si" x "]" }
+    | 0b_011 displacementWord:x -> { "[bp + di" x "]" }
+    | 0b_100 displacementWord:x -> { "[si" x "]" }
+    | 0b_101 displacementWord:x -> { "[di" x "]" }
+    | 0b_110 displacementWord:x -> { "[bp" x "]" }
+    | 0b_111 displacementWord:x -> { "[bx" x "]" }
+    ;
+
 displacementWord =
     | 0b_0000_0000 0b_0000_0000 -> { "" }
     | word:x                    -> { " + " x }
     ;
 
-byte = .:l -> { number(l) };
+byte = .:l     -> { number(l)      };
 word = .:l .:h -> { number(l h<<8) };
-
-opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
-opFromWord = &0b_xxxxxx_0_1 opcode:x -> { x };
-opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };
-opToWord   = &0b_xxxxxx_1_1 opcode:x -> { x };
-
-opcode =
-    | 0b_100010_d_w -> { "mov" }
-    ;

commit 177dc6926d17a7060feaa4b94768e084b6159cc3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 16:54:09 2025 +0100

    Parse listing 39 completely

diff --git a/make.sh b/make.sh
index 34a97f2..8e0b2f2 100755
--- a/make.sh
+++ b/make.sh
@@ -29,6 +29,7 @@ examples() {
     example computerenhance_decoder
     test_example computerenhance_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
     test_example computerenhance_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
+    test_example computerenhance_decoder listing_0039_more_movs listing_0039_more_movs.asm
 }
 
 example() {
diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 7dd9bba..e04333e 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -75,32 +75,42 @@ registerBottomThreeWord =
     ;
 
 displacement = 
-    | 0b_00_000_xxx -> { "[bx + si]" }
-    | 0b_00_001_xxx -> { "[bx + di]" }
-    | 0b_00_010_xxx -> { "[bp + si]" }
-    | 0b_00_011_xxx -> { "[bp + di]" }
-    | 0b_00_100_xxx -> { "[si]" }
-    | 0b_00_101_xxx -> { "[di]" }
-    | 0b_00_110_xxx -> { "???" }
-    | 0b_00_111_xxx -> { "[bx]" }
-
-    | 0b_01_000_xxx byte:x -> { "[bx + si + " x "]" }
-    | 0b_01_001_xxx byte:x -> { "[bx + di + " x "]" }
-    | 0b_01_010_xxx byte:x -> { "[bp + si + " x "]" }
-    | 0b_01_011_xxx byte:x -> { "[bp + di + " x "]" }
-    | 0b_01_100_xxx byte:x -> { "[si + " x "]" }
-    | 0b_01_101_xxx byte:x -> { "[di + " x "]" }
-    | 0b_01_110_xxx byte:x -> { "[bp + " x "]" }
-    | 0b_01_111_xxx byte:x -> { "[bx + " x "]" }
-
-    | 0b_10_000_xxx word:x -> { "[bx + si + " x "]" }
-    | 0b_10_001_xxx word:x -> { "[bx + di + " x "]" }
-    | 0b_10_010_xxx word:x -> { "[bp + si + " x "]" }
-    | 0b_10_011_xxx word:x -> { "[bp + di + " x "]" }
-    | 0b_10_100_xxx word:x -> { "[si + " x "]" }
-    | 0b_10_101_xxx word:x -> { "[di + " x "]" }
-    | 0b_10_110_xxx word:x -> { "[bp + " x "]" }
-    | 0b_10_111_xxx word:x -> { "[bx + " x "]" }
+    | 0b_00_xxx_000 -> { "[bx + si]" }
+    | 0b_00_xxx_001 -> { "[bx + di]" }
+    | 0b_00_xxx_010 -> { "[bp + si]" }
+    | 0b_00_xxx_011 -> { "[bp + di]" }
+    | 0b_00_xxx_100 -> { "[si]" }
+    | 0b_00_xxx_101 -> { "[di]" }
+    | 0b_00_xxx_110 word:x -> { "[" x "]" }
+    | 0b_00_xxx_111 -> { "[bx]" }
+
+    | 0b_01_xxx_000 displacementByte:x -> { "[bx + si" x "]" }
+    | 0b_01_xxx_001 displacementByte:x -> { "[bx + di" x "]" }
+    | 0b_01_xxx_010 displacementByte:x -> { "[bp + si" x "]" }
+    | 0b_01_xxx_011 displacementByte:x -> { "[bp + di" x "]" }
+    | 0b_01_xxx_100 displacementByte:x -> { "[si" x "]" }
+    | 0b_01_xxx_101 displacementByte:x -> { "[di" x "]" }
+    | 0b_01_xxx_110 displacementByte:x -> { "[bp" x "]" }
+    | 0b_01_xxx_111 displacementByte:x -> { "[bx" x "]" }
+
+    | 0b_10_xxx_000 displacementWord:x -> { "[bx + si" x "]" }
+    | 0b_10_xxx_001 displacementWord:x -> { "[bx + di" x "]" }
+    | 0b_10_xxx_010 displacementWord:x -> { "[bp + si" x "]" }
+    | 0b_10_xxx_011 displacementWord:x -> { "[bp + di" x "]" }
+    | 0b_10_xxx_100 displacementWord:x -> { "[si" x "]" }
+    | 0b_10_xxx_101 displacementWord:x -> { "[di" x "]" }
+    | 0b_10_xxx_110 displacementWord:x -> { "[bp" x "]" }
+    | 0b_10_xxx_111 displacementWord:x -> { "[bx" x "]" }
+    ;
+
+displacementByte =
+    | 0b_0000_0000 -> { "" }
+    | byte:x       -> { " + " x }
+    ;
+
+displacementWord =
+    | 0b_0000_0000 0b_0000_0000 -> { "" }
+    | word:x                    -> { " + " x }
     ;
 
 byte = .:l -> { number(l) };

commit 2c5a616bf77c64ee497e6e8e91fca9581071a3d2
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 10:05:26 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 5ea9aad..7dd9bba 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -20,9 +20,6 @@ decodeInstruction =
     | . -> { "unknown\n" }
     ;
 
-byte = .:l -> { number(l) };
-word = .:l .:h -> { number(l h<<8) };
-
 peekRegByte =
     | &0b_xx_000_xxx -> { "al" }
     | &0b_xx_001_xxx -> { "cl" }
@@ -106,6 +103,9 @@ displacement =
     | 0b_10_111_xxx word:x -> { "[bx + " x "]" }
     ;
 
+byte = .:l -> { number(l) };
+word = .:l .:h -> { number(l h<<8) };
+
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
 opFromWord = &0b_xxxxxx_0_1 opcode:x -> { x };
 opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };

commit 717c5c9ec778b79a02a1cb19dcae714fff7eb415
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 09:49:36 2025 +0100

    Clean up

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index bc67af2..5ea9aad 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -113,5 +113,4 @@ opToWord   = &0b_xxxxxx_1_1 opcode:x -> { x };
 
 opcode =
     | 0b_100010_d_w -> { "mov" }
-    | 0b_1011___d_w -> { "mov" }
     ;

commit d51999845c202f0b005ce389065cbac6091eda09
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 09:46:55 2025 +0100

    Get more displacements right

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 26ac0ac..bc67af2 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -87,23 +87,23 @@ displacement =
     | 0b_00_110_xxx -> { "???" }
     | 0b_00_111_xxx -> { "[bx]" }
 
-    | 0b_01_000_xxx .:l -> { "[bx + si + ?]" }
-    | 0b_01_001_xxx .:l -> { "[bx + di + ?]" }
-    | 0b_01_010_xxx .:l -> { "[bp + si + ?]" }
-    | 0b_01_011_xxx .:l -> { "[bp + di + ?]" }
-    | 0b_01_100_xxx .:l -> { "[si + ?]" }
-    | 0b_01_101_xxx .:l -> { "[di + ?]" }
-    | 0b_01_110_xxx .:l -> { "[bp + ?]" }
-    | 0b_01_111_xxx .:l -> { "[bx + ?]" }
+    | 0b_01_000_xxx byte:x -> { "[bx + si + " x "]" }
+    | 0b_01_001_xxx byte:x -> { "[bx + di + " x "]" }
+    | 0b_01_010_xxx byte:x -> { "[bp + si + " x "]" }
+    | 0b_01_011_xxx byte:x -> { "[bp + di + " x "]" }
+    | 0b_01_100_xxx byte:x -> { "[si + " x "]" }
+    | 0b_01_101_xxx byte:x -> { "[di + " x "]" }
+    | 0b_01_110_xxx byte:x -> { "[bp + " x "]" }
+    | 0b_01_111_xxx byte:x -> { "[bx + " x "]" }
 
-    | 0b_10_000_xxx .:l .:h -> { "[bx + si + ??]" }
-    | 0b_10_001_xxx .:l .:h -> { "[bx + di + ??]" }
-    | 0b_10_010_xxx .:l .:h -> { "[bp + si + ??]" }
-    | 0b_10_011_xxx .:l .:h -> { "[bp + di + ??]" }
-    | 0b_10_100_xxx .:l .:h -> { "[si + ??]" }
-    | 0b_10_101_xxx .:l .:h -> { "[di + ??]" }
-    | 0b_10_110_xxx .:l .:h -> { "[bp + ??]" }
-    | 0b_10_111_xxx .:l .:h -> { "[bx + ??]" }
+    | 0b_10_000_xxx word:x -> { "[bx + si + " x "]" }
+    | 0b_10_001_xxx word:x -> { "[bx + di + " x "]" }
+    | 0b_10_010_xxx word:x -> { "[bp + si + " x "]" }
+    | 0b_10_011_xxx word:x -> { "[bp + di + " x "]" }
+    | 0b_10_100_xxx word:x -> { "[si + " x "]" }
+    | 0b_10_101_xxx word:x -> { "[di + " x "]" }
+    | 0b_10_110_xxx word:x -> { "[bp + " x "]" }
+    | 0b_10_111_xxx word:x -> { "[bx + " x "]" }
     ;
 
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };

commit c1808fa469dc6cf5b62c6b6df64253d9a753b2bf
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 09:43:58 2025 +0100

    Get source destination correct (I think)

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 5be67d8..26ac0ac 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -7,90 +7,109 @@ main = decodeInstruction*:xs !. -> {
 instructionDoc = 0b_xxxxxx_d_w 0b_mm_rrr_mmm 0b_llllllll 0b_yyyyyyyy;
 
 decodeInstruction =
-    | &0b_1011_0_rrr rmByte:destination .:l -> {
-        "mov" " " destination ", " number(l) "\n"
+    | &0b_1011_0_rrr registerBottomThreeByte:destination byte:x -> {
+        "mov " destination ", " x "\n"
     }
-    | &0b_1011_1_rrr rmWide:destination .:l .:h -> {
-        "mov" " " destination ", " number(l h<<8) "\n"
+    | &0b_1011_1_rrr registerBottomThreeWord:destination word:x -> {
+        "mov " destination ", " x "\n"
     }
-    | opFromByte:opcode peekRegByte:source rmByte:destination -> { opcode " " destination ", " source "\n" }
-    | opFromWide:opcode peekRegWide:source rmWide:destination -> { opcode " " destination ", " source "\n" }
-
-    | opToByte:opcode   peekRegByte:source rmByte:destination -> { opcode " " destination ", " source "\n" }
-    | opToWide:opcode   peekRegWide:source rmWide:destination -> { opcode " " destination ", " source "\n" }
+    | opFromByte:opcode peekRegByte:source      modRmByte:destination -> { opcode " " destination ", " source "\n" }
+    | opFromWord:opcode peekRegWord:source      modRmWord:destination -> { opcode " " destination ", " source "\n" }
+    | opToByte:opcode   peekRegByte:destination modRmByte:source      -> { opcode " " destination ", " source "\n" }
+    | opToWord:opcode   peekRegWord:destination modRmWord:source      -> { opcode " " destination ", " source "\n" }
     | . -> { "unknown\n" }
     ;
 
+byte = .:l -> { number(l) };
+word = .:l .:h -> { number(l h<<8) };
+
 peekRegByte =
-    | &0b_11_000_xxx -> { "al" }
-    | &0b_11_001_xxx -> { "cl" }
-    | &0b_11_010_xxx -> { "dl" }
-    | &0b_11_011_xxx -> { "bl" }
-    | &0b_11_100_xxx -> { "ah" }
-    | &0b_11_101_xxx -> { "ch" }
-    | &0b_11_110_xxx -> { "dh" }
-    | &0b_11_111_xxx -> { "bh" }
-    | peekDisplacement:x -> { x }
+    | &0b_xx_000_xxx -> { "al" }
+    | &0b_xx_001_xxx -> { "cl" }
+    | &0b_xx_010_xxx -> { "dl" }
+    | &0b_xx_011_xxx -> { "bl" }
+    | &0b_xx_100_xxx -> { "ah" }
+    | &0b_xx_101_xxx -> { "ch" }
+    | &0b_xx_110_xxx -> { "dh" }
+    | &0b_xx_111_xxx -> { "bh" }
     ;
 
-peekRegWide =
-    | &0b_11_000_xxx -> { "ax" }
-    | &0b_11_001_xxx -> { "cx" }
-    | &0b_11_010_xxx -> { "dx" }
-    | &0b_11_011_xxx -> { "bx" }
-    | &0b_11_100_xxx -> { "sp" }
-    | &0b_11_101_xxx -> { "bp" }
-    | &0b_11_110_xxx -> { "si" }
-    | &0b_11_111_xxx -> { "di" }
-    | peekDisplacement:x -> { x }
+peekRegWord =
+    | &0b_xx_000_xxx -> { "ax" }
+    | &0b_xx_001_xxx -> { "cx" }
+    | &0b_xx_010_xxx -> { "dx" }
+    | &0b_xx_011_xxx -> { "bx" }
+    | &0b_xx_100_xxx -> { "sp" }
+    | &0b_xx_101_xxx -> { "bp" }
+    | &0b_xx_110_xxx -> { "si" }
+    | &0b_xx_111_xxx -> { "di" }
     ;
 
-peekDisplacement = 
-    | &0b_00_000_xxx -> { "[bx + si]" }
-    | &0b_00_001_xxx -> { "[bx + di]" }
-    | &0b_00_010_xxx -> { "[bp + si]" }
-    | &0b_00_011_xxx -> { "[bp + di]" }
-    | &0b_00_100_xxx -> { "[si]" }
-    | &0b_00_101_xxx -> { "[di]" }
-    | &0b_00_110_xxx -> { "???" }
-    | &0b_00_111_xxx -> { "[bx]" }
+modRmByte =
+    | &0b_11_xxxxxx registerBottomThreeByte:x -> { x }
+    | displacement:x -> { x }
+    ;
 
-    | &0b_01_000_xxx -> { "[bx + si + ?]" }
-    | &0b_01_001_xxx -> { "[bx + di + ?]" }
-    | &0b_01_010_xxx -> { "[bp + si + ?]" }
-    | &0b_01_011_xxx -> { "[bp + di + ?]" }
-    | &0b_01_100_xxx -> { "[si + ?]" }
-    | &0b_01_101_xxx -> { "[di + ?]" }
-    | &0b_01_110_xxx -> { "[bp + ?]" }
-    | &0b_01_111_xxx -> { "[bx + ?]" }
+modRmWord =
+    | &0b_11_xxxxxx registerBottomThreeWord:x -> { x }
+    | displacement:x -> { x }
     ;
 
-rmByte =
-    | 0b_xx_xxx_000 -> { "al" }
-    | 0b_xx_xxx_001 -> { "cl" }
-    | 0b_xx_xxx_010 -> { "dl" }
-    | 0b_xx_xxx_011 -> { "bl" }
-    | 0b_xx_xxx_100 -> { "ah" }
-    | 0b_xx_xxx_101 -> { "ch" }
-    | 0b_xx_xxx_110 -> { "dh" }
-    | 0b_xx_xxx_111 -> { "bh" }
+registerBottomThreeByte =
+    | 0b_xxxxx_000 -> { "al" }
+    | 0b_xxxxx_001 -> { "cl" }
+    | 0b_xxxxx_010 -> { "dl" }
+    | 0b_xxxxx_011 -> { "bl" }
+    | 0b_xxxxx_100 -> { "ah" }
+    | 0b_xxxxx_101 -> { "ch" }
+    | 0b_xxxxx_110 -> { "dh" }
+    | 0b_xxxxx_111 -> { "bh" }
     ;
 
-rmWide =
-    | 0b_xx_xxx_000 -> { "ax" }
-    | 0b_xx_xxx_001 -> { "cx" }
-    | 0b_xx_xxx_010 -> { "dx" }
-    | 0b_xx_xxx_011 -> { "bx" }
-    | 0b_xx_xxx_100 -> { "sp" }
-    | 0b_xx_xxx_101 -> { "bp" }
-    | 0b_xx_xxx_110 -> { "si" }
-    | 0b_xx_xxx_111 -> { "di" }
+registerBottomThreeWord =
+    | 0b_xxxxx_000 -> { "ax" }
+    | 0b_xxxxx_001 -> { "cx" }
+    | 0b_xxxxx_010 -> { "dx" }
+    | 0b_xxxxx_011 -> { "bx" }
+    | 0b_xxxxx_100 -> { "sp" }
+    | 0b_xxxxx_101 -> { "bp" }
+    | 0b_xxxxx_110 -> { "si" }
+    | 0b_xxxxx_111 -> { "di" }
+    ;
+
+displacement = 
+    | 0b_00_000_xxx -> { "[bx + si]" }
+    | 0b_00_001_xxx -> { "[bx + di]" }
+    | 0b_00_010_xxx -> { "[bp + si]" }
+    | 0b_00_011_xxx -> { "[bp + di]" }
+    | 0b_00_100_xxx -> { "[si]" }
+    | 0b_00_101_xxx -> { "[di]" }
+    | 0b_00_110_xxx -> { "???" }
+    | 0b_00_111_xxx -> { "[bx]" }
+
+    | 0b_01_000_xxx .:l -> { "[bx + si + ?]" }
+    | 0b_01_001_xxx .:l -> { "[bx + di + ?]" }
+    | 0b_01_010_xxx .:l -> { "[bp + si + ?]" }
+    | 0b_01_011_xxx .:l -> { "[bp + di + ?]" }
+    | 0b_01_100_xxx .:l -> { "[si + ?]" }
+    | 0b_01_101_xxx .:l -> { "[di + ?]" }
+    | 0b_01_110_xxx .:l -> { "[bp + ?]" }
+    | 0b_01_111_xxx .:l -> { "[bx + ?]" }
+
+    | 0b_10_000_xxx .:l .:h -> { "[bx + si + ??]" }
+    | 0b_10_001_xxx .:l .:h -> { "[bx + di + ??]" }
+    | 0b_10_010_xxx .:l .:h -> { "[bp + si + ??]" }
+    | 0b_10_011_xxx .:l .:h -> { "[bp + di + ??]" }
+    | 0b_10_100_xxx .:l .:h -> { "[si + ??]" }
+    | 0b_10_101_xxx .:l .:h -> { "[di + ??]" }
+    | 0b_10_110_xxx .:l .:h -> { "[bp + ??]" }
+    | 0b_10_111_xxx .:l .:h -> { "[bx + ??]" }
     ;
 
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
-opFromWide = &0b_xxxxxx_0_1 opcode:x -> { x };
+opFromWord = &0b_xxxxxx_0_1 opcode:x -> { x };
 opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };
-opToWide   = &0b_xxxxxx_1_1 opcode:x -> { x };
+opToWord   = &0b_xxxxxx_1_1 opcode:x -> { x };
 
 opcode =
     | 0b_100010_d_w -> { "mov" }

commit 2570ae09da48588cffb983051e8381347cfb5ecf
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 09:07:49 2025 +0100

    WIP

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index 2220472..5be67d8 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -13,18 +13,11 @@ decodeInstruction =
     | &0b_1011_1_rrr rmWide:destination .:l .:h -> {
         "mov" " " destination ", " number(l h<<8) "\n"
     }
-    | opFromByte:opcode peekRegByte:source rmByte:destination -> {
-        opcode " " destination ", " source "\n"
-    }
-    | opToByte:opcode peekRegByte:source rmByte:destination -> {
-        opcode " " destination ", " source "\n"
-    }
-    | opFromWide:opcode peekRegWide:source rmWide:destination -> {
-        opcode " " destination ", " source "\n"
-    }
-    | opToWide:opcode peekRegWide:source rmWide:destination -> {
-        opcode " " destination ", " source "\n"
-    }
+    | opFromByte:opcode peekRegByte:source rmByte:destination -> { opcode " " destination ", " source "\n" }
+    | opFromWide:opcode peekRegWide:source rmWide:destination -> { opcode " " destination ", " source "\n" }
+
+    | opToByte:opcode   peekRegByte:source rmByte:destination -> { opcode " " destination ", " source "\n" }
+    | opToWide:opcode   peekRegWide:source rmWide:destination -> { opcode " " destination ", " source "\n" }
     | . -> { "unknown\n" }
     ;
 
@@ -37,15 +30,7 @@ peekRegByte =
     | &0b_11_101_xxx -> { "ch" }
     | &0b_11_110_xxx -> { "dh" }
     | &0b_11_111_xxx -> { "bh" }
-
-    | &0b_00_000_xxx -> { "[bx + si]" }
-    | &0b_00_001_xxx -> { "[bx + di]" }
-    | &0b_00_010_xxx -> { "[bp + si]" }
-    | &0b_00_011_xxx -> { "[bp + di]" }
-    | &0b_00_100_xxx -> { "[si]" }
-    | &0b_00_101_xxx -> { "[di]" }
-    | &0b_00_110_xxx -> { "???" }
-    | &0b_00_111_xxx -> { "[bx]" }
+    | peekDisplacement:x -> { x }
     ;
 
 peekRegWide =
@@ -57,7 +42,10 @@ peekRegWide =
     | &0b_11_101_xxx -> { "bp" }
     | &0b_11_110_xxx -> { "si" }
     | &0b_11_111_xxx -> { "di" }
+    | peekDisplacement:x -> { x }
+    ;
 
+peekDisplacement = 
     | &0b_00_000_xxx -> { "[bx + si]" }
     | &0b_00_001_xxx -> { "[bx + di]" }
     | &0b_00_010_xxx -> { "[bp + si]" }
@@ -66,6 +54,15 @@ peekRegWide =
     | &0b_00_101_xxx -> { "[di]" }
     | &0b_00_110_xxx -> { "???" }
     | &0b_00_111_xxx -> { "[bx]" }
+
+    | &0b_01_000_xxx -> { "[bx + si + ?]" }
+    | &0b_01_001_xxx -> { "[bx + di + ?]" }
+    | &0b_01_010_xxx -> { "[bp + si + ?]" }
+    | &0b_01_011_xxx -> { "[bp + di + ?]" }
+    | &0b_01_100_xxx -> { "[si + ?]" }
+    | &0b_01_101_xxx -> { "[di + ?]" }
+    | &0b_01_110_xxx -> { "[bp + ?]" }
+    | &0b_01_111_xxx -> { "[bx + ?]" }
     ;
 
 rmByte =

commit ffada9f19cdd29ea8878218f6c695006a40f9db7
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 15 08:50:15 2025 +0100

    Parse some more

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index aa02cbf..2220472 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -16,32 +16,56 @@ decodeInstruction =
     | opFromByte:opcode peekRegByte:source rmByte:destination -> {
         opcode " " destination ", " source "\n"
     }
+    | opToByte:opcode peekRegByte:source rmByte:destination -> {
+        opcode " " destination ", " source "\n"
+    }
     | opFromWide:opcode peekRegWide:source rmWide:destination -> {
         opcode " " destination ", " source "\n"
     }
+    | opToWide:opcode peekRegWide:source rmWide:destination -> {
+        opcode " " destination ", " source "\n"
+    }
     | . -> { "unknown\n" }
     ;
 
 peekRegByte =
-    | &0b_xx_000_xxx -> { "al" }
-    | &0b_xx_001_xxx -> { "cl" }
-    | &0b_xx_010_xxx -> { "dl" }
-    | &0b_xx_011_xxx -> { "bl" }
-    | &0b_xx_100_xxx -> { "ah" }
-    | &0b_xx_101_xxx -> { "ch" }
-    | &0b_xx_110_xxx -> { "dh" }
-    | &0b_xx_111_xxx -> { "bh" }
+    | &0b_11_000_xxx -> { "al" }
+    | &0b_11_001_xxx -> { "cl" }
+    | &0b_11_010_xxx -> { "dl" }
+    | &0b_11_011_xxx -> { "bl" }
+    | &0b_11_100_xxx -> { "ah" }
+    | &0b_11_101_xxx -> { "ch" }
+    | &0b_11_110_xxx -> { "dh" }
+    | &0b_11_111_xxx -> { "bh" }
+
+    | &0b_00_000_xxx -> { "[bx + si]" }
+    | &0b_00_001_xxx -> { "[bx + di]" }
+    | &0b_00_010_xxx -> { "[bp + si]" }
+    | &0b_00_011_xxx -> { "[bp + di]" }
+    | &0b_00_100_xxx -> { "[si]" }
+    | &0b_00_101_xxx -> { "[di]" }
+    | &0b_00_110_xxx -> { "???" }
+    | &0b_00_111_xxx -> { "[bx]" }
     ;
 
 peekRegWide =
-    | &0b_xx_000_xxx -> { "ax" }
-    | &0b_xx_001_xxx -> { "cx" }
-    | &0b_xx_010_xxx -> { "dx" }
-    | &0b_xx_011_xxx -> { "bx" }
-    | &0b_xx_100_xxx -> { "sp" }
-    | &0b_xx_101_xxx -> { "bp" }
-    | &0b_xx_110_xxx -> { "si" }
-    | &0b_xx_111_xxx -> { "di" }
+    | &0b_11_000_xxx -> { "ax" }
+    | &0b_11_001_xxx -> { "cx" }
+    | &0b_11_010_xxx -> { "dx" }
+    | &0b_11_011_xxx -> { "bx" }
+    | &0b_11_100_xxx -> { "sp" }
+    | &0b_11_101_xxx -> { "bp" }
+    | &0b_11_110_xxx -> { "si" }
+    | &0b_11_111_xxx -> { "di" }
+
+    | &0b_00_000_xxx -> { "[bx + si]" }
+    | &0b_00_001_xxx -> { "[bx + di]" }
+    | &0b_00_010_xxx -> { "[bp + si]" }
+    | &0b_00_011_xxx -> { "[bp + di]" }
+    | &0b_00_100_xxx -> { "[si]" }
+    | &0b_00_101_xxx -> { "[di]" }
+    | &0b_00_110_xxx -> { "???" }
+    | &0b_00_111_xxx -> { "[bx]" }
     ;
 
 rmByte =
@@ -68,6 +92,8 @@ rmWide =
 
 opFromByte = &0b_xxxxxx_0_0 opcode:x -> { x };
 opFromWide = &0b_xxxxxx_0_1 opcode:x -> { x };
+opToByte   = &0b_xxxxxx_1_0 opcode:x -> { x };
+opToWide   = &0b_xxxxxx_1_1 opcode:x -> { x };
 
 opcode =
     | 0b_100010_d_w -> { "mov" }

2025-11-12 07:51 Rickard pushed to rlworkbench

commit b439dd9ad121084bc14389a458021ff386999161
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 12 07:50:33 2025 +0100

    Homework 2 can handle immediate to register

diff --git a/src/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
index e475c28..aa02cbf 100644
--- a/src/examples/computerenhance_decoder/computerenhance_decoder.meta
+++ b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
@@ -4,13 +4,22 @@ main = decodeInstruction*:xs !. -> {
     xs
 };
 
+instructionDoc = 0b_xxxxxx_d_w 0b_mm_rrr_mmm 0b_llllllll 0b_yyyyyyyy;
+
 decodeInstruction =
+    | &0b_1011_0_rrr rmByte:destination .:l -> {
+        "mov" " " destination ", " number(l) "\n"
+    }
+    | &0b_1011_1_rrr rmWide:destination .:l .:h -> {
+        "mov" " " destination ", " number(l h<<8) "\n"
+    }
     | opFromByte:opcode peekRegByte:source rmByte:destination -> {
         opcode " " destination ", " source "\n"
     }
     | opFromWide:opcode peekRegWide:source rmWide:destination -> {
         opcode " " destination ", " source "\n"
     }
+    | . -> { "unknown\n" }
     ;
 
 peekRegByte =
@@ -62,4 +71,5 @@ opFromWide = &0b_xxxxxx_0_1 opcode:x -> { x };
 
 opcode =
     | 0b_100010_d_w -> { "mov" }
+    | 0b_1011___d_w -> { "mov" }
     ;
diff --git a/src/examples/computerenhance_decoder/listing_0039_more_movs b/src/examples/computerenhance_decoder/listing_0039_more_movs
new file mode 100644
index 0000000..405b804
Binary files /dev/null and b/src/examples/computerenhance_decoder/listing_0039_more_movs differ
diff --git a/src/examples/computerenhance_decoder/listing_0039_more_movs.asm b/src/examples/computerenhance_decoder/listing_0039_more_movs.asm
new file mode 100644
index 0000000..9f0ddcb
--- /dev/null
+++ b/src/examples/computerenhance_decoder/listing_0039_more_movs.asm
@@ -0,0 +1,18 @@
+bits 16
+
+mov si, bx
+mov dh, al
+mov cl, 12
+mov ch, 244
+mov cx, 12
+mov cx, 65524
+mov dx, 3948
+mov dx, 61588
+mov al, [bx + si]
+mov bx, [bp + di]
+mov dx, [bp]
+mov ah, [bx + si + 4]
+mov al, [bx + si + 4999]
+mov [bx + di], cx
+mov [bp + si], cl
+mov [bp], ch

commit 9b0751d95a1eb53ed450d2287c92d7a099e5ad1d
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 12 07:39:59 2025 +0100

    Support treating matches as bytes that can be assembled (with shifts) using 'number'

diff --git a/src/meta/meta.c b/src/meta/meta.c
index a087168..369e625 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -211,6 +211,10 @@ unsigned int action_len(struct Action* action) {
     return action->end-action->start;
 }
 
+unsigned char first_byte(struct Action* action) {
+    return (unsigned char)action->input_buffer->buffer[action->start];
+}
+
 int seen(struct Chunks* chunks, struct Buffer* data) {
     struct Chunk* chunk = chunks->pre_first->next;
     while (chunk) {
@@ -488,525 +492,543 @@ static char symbol_201[] = "unsigned int action_len(struct Action* action) {\n";
 static char symbol_202[] = "return action->end-action->start;\n";
 static char symbol_203[] = "}\n";
 static char symbol_204[] = "\n";
-static char symbol_205[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
-static char symbol_206[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_207[] = "while (chunk) {\n";
-static char symbol_208[] = "if (compare_buffers(chunk->data, data)) {\n";
-static char symbol_209[] = "return 1;\n";
-static char symbol_210[] = "}\n";
-static char symbol_211[] = "chunk = chunk->next;\n";
-static char symbol_212[] = "}\n";
-static char symbol_213[] = "return 0;\n";
+static char symbol_205[] = "unsigned char first_byte(struct Action* action) {\n";
+static char symbol_206[] = "return (unsigned char)action->input_buffer->buffer[action->start];\n";
+static char symbol_207[] = "}\n";
+static char symbol_208[] = "\n";
+static char symbol_209[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
+static char symbol_210[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_211[] = "while (chunk) {\n";
+static char symbol_212[] = "if (compare_buffers(chunk->data, data)) {\n";
+static char symbol_213[] = "return 1;\n";
 static char symbol_214[] = "}\n";
-static char symbol_215[] = "\n";
-static char symbol_216[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
-static char symbol_217[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
-static char symbol_218[] = "next_variable->next = NULL;\n";
-static char symbol_219[] = "next_variable->name = name;\n";
-static char symbol_220[] = "next_variable->action = action;\n";
-static char symbol_221[] = "variables->last->next = next_variable;\n";
-static char symbol_222[] = "variables->last = next_variable;\n";
-static char symbol_223[] = "}\n";
-static char symbol_224[] = "\n";
-static char symbol_225[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
-static char symbol_226[] = "struct Variable* variable = variables->pre_first->next;\n";
-static char symbol_227[] = "while (variable) {\n";
-static char symbol_228[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
-static char symbol_229[] = "return variable->action;\n";
-static char symbol_230[] = "} else {\n";
-static char symbol_231[] = "variable = variable->next;\n";
-static char symbol_232[] = "}\n";
-static char symbol_233[] = "}\n";
-static char symbol_234[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
-static char symbol_235[] = "exit(1);\n";
+static char symbol_215[] = "chunk = chunk->next;\n";
+static char symbol_216[] = "}\n";
+static char symbol_217[] = "return 0;\n";
+static char symbol_218[] = "}\n";
+static char symbol_219[] = "\n";
+static char symbol_220[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
+static char symbol_221[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
+static char symbol_222[] = "next_variable->next = NULL;\n";
+static char symbol_223[] = "next_variable->name = name;\n";
+static char symbol_224[] = "next_variable->action = action;\n";
+static char symbol_225[] = "variables->last->next = next_variable;\n";
+static char symbol_226[] = "variables->last = next_variable;\n";
+static char symbol_227[] = "}\n";
+static char symbol_228[] = "\n";
+static char symbol_229[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
+static char symbol_230[] = "struct Variable* variable = variables->pre_first->next;\n";
+static char symbol_231[] = "while (variable) {\n";
+static char symbol_232[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
+static char symbol_233[] = "return variable->action;\n";
+static char symbol_234[] = "} else {\n";
+static char symbol_235[] = "variable = variable->next;\n";
 static char symbol_236[] = "}\n";
-static char symbol_237[] = "\n";
-static char symbol_238[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
-static char symbol_239[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
-static char symbol_240[] = "next_placeholder->next = NULL;\n";
-static char symbol_241[] = "next_placeholder->chunks = chunks;\n";
-static char symbol_242[] = "next_placeholder->action = action;\n";
-static char symbol_243[] = "placeholders->last->next = next_placeholder;\n";
-static char symbol_244[] = "placeholders->last = next_placeholder;\n";
-static char symbol_245[] = "}\n";
-static char symbol_246[] = "\n";
-static char symbol_247[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
-static char symbol_248[] = "return value + amount;\n";
+static char symbol_237[] = "}\n";
+static char symbol_238[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
+static char symbol_239[] = "exit(1);\n";
+static char symbol_240[] = "}\n";
+static char symbol_241[] = "\n";
+static char symbol_242[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
+static char symbol_243[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
+static char symbol_244[] = "next_placeholder->next = NULL;\n";
+static char symbol_245[] = "next_placeholder->chunks = chunks;\n";
+static char symbol_246[] = "next_placeholder->action = action;\n";
+static char symbol_247[] = "placeholders->last->next = next_placeholder;\n";
+static char symbol_248[] = "placeholders->last = next_placeholder;\n";
 static char symbol_249[] = "}\n";
 static char symbol_250[] = "\n";
-static char symbol_251[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
-static char symbol_252[] = "return a > b ? a : b;\n";
+static char symbol_251[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
+static char symbol_252[] = "return value + amount;\n";
 static char symbol_253[] = "}\n";
 static char symbol_254[] = "\n";
-static char symbol_255[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
-static char symbol_256[] = "int i, j;\n";
-static char symbol_257[] = "if (chunks) {\n";
-static char symbol_258[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_259[] = "while (chunk) {\n";
-static char symbol_260[] = "*indent += chunk->indentation_delta;\n";
-static char symbol_261[] = "if (chunk->data) {\n";
-static char symbol_262[] = "for (i=0; i<chunk->data->size; i++) {\n";
-static char symbol_263[] = "if (*last_char == '\\n') {\n";
-static char symbol_264[] = "for (j=0; j<*indent; j++) {\n";
-static char symbol_265[] = "printf(\"    \");\n";
-static char symbol_266[] = "}\n";
-static char symbol_267[] = "}\n";
-static char symbol_268[] = "*last_char = chunk->data->buffer[i];\n";
-static char symbol_269[] = "putchar(*last_char);\n";
+static char symbol_255[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
+static char symbol_256[] = "return a > b ? a : b;\n";
+static char symbol_257[] = "}\n";
+static char symbol_258[] = "\n";
+static char symbol_259[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
+static char symbol_260[] = "int i, j;\n";
+static char symbol_261[] = "if (chunks) {\n";
+static char symbol_262[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_263[] = "while (chunk) {\n";
+static char symbol_264[] = "*indent += chunk->indentation_delta;\n";
+static char symbol_265[] = "if (chunk->data) {\n";
+static char symbol_266[] = "for (i=0; i<chunk->data->size; i++) {\n";
+static char symbol_267[] = "if (*last_char == '\\n') {\n";
+static char symbol_268[] = "for (j=0; j<*indent; j++) {\n";
+static char symbol_269[] = "printf(\"    \");\n";
 static char symbol_270[] = "}\n";
 static char symbol_271[] = "}\n";
-static char symbol_272[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_273[] = "chunk = chunk->next;\n";
+static char symbol_272[] = "*last_char = chunk->data->buffer[i];\n";
+static char symbol_273[] = "putchar(*last_char);\n";
 static char symbol_274[] = "}\n";
 static char symbol_275[] = "}\n";
-static char symbol_276[] = "}\n";
-static char symbol_277[] = "\n";
-static char symbol_278[] = "\n";
-static char symbol_279[] = "xs";
-static char symbol_280[] = "int main(void) {\n";
-static char symbol_281[] = "arena_limit = 2<<25;\n";
-static char symbol_282[] = "arena_pos = 0;\n";
-static char symbol_283[] = "arena = malloc(arena_limit);\n";
-static char symbol_284[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_285[] = "unsigned int input_pos = arena_pos;\n";
-static char symbol_286[] = "char last_char = '\\n';\n";
-static char symbol_287[] = "int indent = 0;\n";
-static char symbol_288[] = "unsigned int parse_pos;\n";
-static char symbol_289[] = "unsigned int parse_size;\n";
-static char symbol_290[] = "unsigned int codegen_size;\n";
-static char symbol_291[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_292[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_293[] = "struct Placeholder* placeholder;\n";
-static char symbol_294[] = "if (action == NULL) {\n";
-static char symbol_295[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_296[] = "exit(1);\n";
-static char symbol_297[] = "}\n";
-static char symbol_298[] = "parse_size = arena_pos - input_pos;\n";
-static char symbol_299[] = "parse_pos = arena_pos;\n";
-static char symbol_300[] = "run_action(action, runtime);\n";
-static char symbol_301[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_302[] = "while (placeholder) {\n";
-static char symbol_303[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_304[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_305[] = "placeholder = placeholder->next;\n";
-static char symbol_306[] = "}\n";
-static char symbol_307[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_308[] = "codegen_size = arena_pos - parse_pos;\n";
-static char symbol_309[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
-static char symbol_310[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
-static char symbol_311[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
-static char symbol_312[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
-static char symbol_313[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
-static char symbol_314[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n";
-static char symbol_315[] = "return 0;\n";
-static char symbol_316[] = "}\n";
-static char symbol_317[] = "x";
-static char symbol_318[] = "=";
-static char symbol_319[] = "y";
-static char symbol_320[] = ";";
-static char symbol_321[] = "struct Action* rule_";
-static char symbol_322[] = "x";
-static char symbol_323[] = "(struct ParseState* parse_state);\n";
-static char symbol_324[] = "struct Action* rule_";
-static char symbol_325[] = "x";
-static char symbol_326[] = "(struct ParseState* parse_state) {\n";
-static char symbol_327[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_328[] = "unsigned int action_start_pos;\n";
-static char symbol_329[] = "struct Action* _;\n";
-static char symbol_330[] = "y";
-static char symbol_331[] = "return NULL;\n";
-static char symbol_332[] = "}\n";
-static char symbol_333[] = "\n";
-static char symbol_334[] = "x";
-static char symbol_335[] = "xs";
-static char symbol_336[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_337[] = "x";
-static char symbol_338[] = "xs";
-static char symbol_339[] = "x";
-static char symbol_340[] = "x";
-static char symbol_341[] = "|";
-static char symbol_342[] = "x";
-static char symbol_343[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_344[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_345[] = "x";
+static char symbol_276[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_277[] = "chunk = chunk->next;\n";
+static char symbol_278[] = "}\n";
+static char symbol_279[] = "}\n";
+static char symbol_280[] = "}\n";
+static char symbol_281[] = "\n";
+static char symbol_282[] = "\n";
+static char symbol_283[] = "xs";
+static char symbol_284[] = "int main(void) {\n";
+static char symbol_285[] = "arena_limit = 2<<25;\n";
+static char symbol_286[] = "arena_pos = 0;\n";
+static char symbol_287[] = "arena = malloc(arena_limit);\n";
+static char symbol_288[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_289[] = "unsigned int input_pos = arena_pos;\n";
+static char symbol_290[] = "char last_char = '\\n';\n";
+static char symbol_291[] = "int indent = 0;\n";
+static char symbol_292[] = "unsigned int parse_pos;\n";
+static char symbol_293[] = "unsigned int parse_size;\n";
+static char symbol_294[] = "unsigned int codegen_size;\n";
+static char symbol_295[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_296[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_297[] = "struct Placeholder* placeholder;\n";
+static char symbol_298[] = "if (action == NULL) {\n";
+static char symbol_299[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_300[] = "exit(1);\n";
+static char symbol_301[] = "}\n";
+static char symbol_302[] = "parse_size = arena_pos - input_pos;\n";
+static char symbol_303[] = "parse_pos = arena_pos;\n";
+static char symbol_304[] = "run_action(action, runtime);\n";
+static char symbol_305[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_306[] = "while (placeholder) {\n";
+static char symbol_307[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_308[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_309[] = "placeholder = placeholder->next;\n";
+static char symbol_310[] = "}\n";
+static char symbol_311[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_312[] = "codegen_size = arena_pos - parse_pos;\n";
+static char symbol_313[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
+static char symbol_314[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
+static char symbol_315[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
+static char symbol_316[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
+static char symbol_317[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
+static char symbol_318[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n";
+static char symbol_319[] = "return 0;\n";
+static char symbol_320[] = "}\n";
+static char symbol_321[] = "x";
+static char symbol_322[] = "=";
+static char symbol_323[] = "y";
+static char symbol_324[] = ";";
+static char symbol_325[] = "struct Action* rule_";
+static char symbol_326[] = "x";
+static char symbol_327[] = "(struct ParseState* parse_state);\n";
+static char symbol_328[] = "struct Action* rule_";
+static char symbol_329[] = "x";
+static char symbol_330[] = "(struct ParseState* parse_state) {\n";
+static char symbol_331[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_332[] = "unsigned int action_start_pos;\n";
+static char symbol_333[] = "struct Action* _;\n";
+static char symbol_334[] = "y";
+static char symbol_335[] = "return NULL;\n";
+static char symbol_336[] = "}\n";
+static char symbol_337[] = "\n";
+static char symbol_338[] = "x";
+static char symbol_339[] = "xs";
+static char symbol_340[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_341[] = "x";
+static char symbol_342[] = "xs";
+static char symbol_343[] = "x";
+static char symbol_344[] = "x";
+static char symbol_345[] = "|";
 static char symbol_346[] = "x";
-static char symbol_347[] = "y";
-static char symbol_348[] = "x";
-static char symbol_349[] = "if (_) {\n";
-static char symbol_350[] = "y";
-static char symbol_351[] = "}\n";
-static char symbol_352[] = "y";
-static char symbol_353[] = "y";
-static char symbol_354[] = "!";
-static char symbol_355[] = "x";
-static char symbol_356[] = "unsigned int nlookahead_pos;\n";
-static char symbol_357[] = "unsigned int nlookahead_pos;\n";
-static char symbol_358[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_347[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_348[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_349[] = "x";
+static char symbol_350[] = "x";
+static char symbol_351[] = "y";
+static char symbol_352[] = "x";
+static char symbol_353[] = "if (_) {\n";
+static char symbol_354[] = "y";
+static char symbol_355[] = "}\n";
+static char symbol_356[] = "y";
+static char symbol_357[] = "y";
+static char symbol_358[] = "!";
 static char symbol_359[] = "x";
-static char symbol_360[] = "if (_ == NULL) {\n";
-static char symbol_361[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_362[] = "} else {\n";
-static char symbol_363[] = "_ = NULL;\n";
-static char symbol_364[] = "}\n";
-static char symbol_365[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_366[] = "&";
-static char symbol_367[] = "x";
-static char symbol_368[] = "unsigned int lookahead_pos;\n";
-static char symbol_369[] = "unsigned int lookahead_pos;\n";
-static char symbol_370[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_360[] = "unsigned int nlookahead_pos;\n";
+static char symbol_361[] = "unsigned int nlookahead_pos;\n";
+static char symbol_362[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_363[] = "x";
+static char symbol_364[] = "if (_ == NULL) {\n";
+static char symbol_365[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_366[] = "} else {\n";
+static char symbol_367[] = "_ = NULL;\n";
+static char symbol_368[] = "}\n";
+static char symbol_369[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_370[] = "&";
 static char symbol_371[] = "x";
-static char symbol_372[] = "if (_ == NULL) {\n";
-static char symbol_373[] = "_ = NULL;\n";
-static char symbol_374[] = "} else {\n";
-static char symbol_375[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_376[] = "}\n";
-static char symbol_377[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_378[] = "x";
-static char symbol_379[] = "y";
-static char symbol_380[] = "x";
-static char symbol_381[] = "y";
-static char symbol_382[] = ":";
-static char symbol_383[] = "x";
-static char symbol_384[] = "append_named_action(variables, ";
-static char symbol_385[] = "x";
-static char symbol_386[] = ", _);\n";
+static char symbol_372[] = "unsigned int lookahead_pos;\n";
+static char symbol_373[] = "unsigned int lookahead_pos;\n";
+static char symbol_374[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_375[] = "x";
+static char symbol_376[] = "if (_ == NULL) {\n";
+static char symbol_377[] = "_ = NULL;\n";
+static char symbol_378[] = "} else {\n";
+static char symbol_379[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_380[] = "}\n";
+static char symbol_381[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_382[] = "x";
+static char symbol_383[] = "y";
+static char symbol_384[] = "x";
+static char symbol_385[] = "y";
+static char symbol_386[] = ":";
 static char symbol_387[] = "x";
-static char symbol_388[] = "*";
-static char symbol_389[] = "struct Variables* star_variables;\n";
-static char symbol_390[] = "struct Variables* star_variables;\n";
-static char symbol_391[] = "unsigned int star_pos;\n";
-static char symbol_392[] = "unsigned int star_pos;\n";
-static char symbol_393[] = "unsigned int star_start_pos;\n";
-static char symbol_394[] = "unsigned int star_start_pos;\n";
-static char symbol_395[] = "star_variables = create_variables();\n";
-static char symbol_396[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_397[] = "while (1) {\n";
-static char symbol_398[] = "star_pos = parse_state->pos;\n";
-static char symbol_399[] = "x";
-static char symbol_400[] = "if (_ == NULL) {\n";
-static char symbol_401[] = "parse_state->pos = star_pos;\n";
-static char symbol_402[] = "break;\n";
-static char symbol_403[] = "}\n";
-static char symbol_404[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_405[] = "}\n";
-static char symbol_406[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_407[] = "x";
-static char symbol_408[] = "x";
-static char symbol_409[] = "_";
-static char symbol_410[] = "x";
-static char symbol_411[] = "bitpattern <<= 1;\n";
-static char symbol_412[] = "bitmask <<= 1;\n";
-static char symbol_413[] = "x";
+static char symbol_388[] = "append_named_action(variables, ";
+static char symbol_389[] = "x";
+static char symbol_390[] = ", _);\n";
+static char symbol_391[] = "x";
+static char symbol_392[] = "*";
+static char symbol_393[] = "struct Variables* star_variables;\n";
+static char symbol_394[] = "struct Variables* star_variables;\n";
+static char symbol_395[] = "unsigned int star_pos;\n";
+static char symbol_396[] = "unsigned int star_pos;\n";
+static char symbol_397[] = "unsigned int star_start_pos;\n";
+static char symbol_398[] = "unsigned int star_start_pos;\n";
+static char symbol_399[] = "star_variables = create_variables();\n";
+static char symbol_400[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_401[] = "while (1) {\n";
+static char symbol_402[] = "star_pos = parse_state->pos;\n";
+static char symbol_403[] = "x";
+static char symbol_404[] = "if (_ == NULL) {\n";
+static char symbol_405[] = "parse_state->pos = star_pos;\n";
+static char symbol_406[] = "break;\n";
+static char symbol_407[] = "}\n";
+static char symbol_408[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_409[] = "}\n";
+static char symbol_410[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_411[] = "x";
+static char symbol_412[] = "x";
+static char symbol_413[] = "_";
 static char symbol_414[] = "x";
-static char symbol_415[] = "x";
-static char symbol_416[] = "bitmask |= 1;\n";
-static char symbol_417[] = "0";
-static char symbol_418[] = "1";
-static char symbol_419[] = "bitpattern |= 1;\n";
-static char symbol_420[] = "x";
-static char symbol_421[] = "_ = rule_";
-static char symbol_422[] = "x";
-static char symbol_423[] = "(parse_state);\n";
-static char symbol_424[] = "0b";
-static char symbol_425[] = "xs";
-static char symbol_426[] = "unsigned char bitpattern;\n";
-static char symbol_427[] = "unsigned char bitpattern;\n";
-static char symbol_428[] = "unsigned char bitmask;\n";
-static char symbol_429[] = "unsigned char bitmask;\n";
-static char symbol_430[] = "bitpattern = 0;\n";
-static char symbol_431[] = "bitmask = 0;\n";
-static char symbol_432[] = "xs";
-static char symbol_433[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_434[] = "parse_state->pos += 1;\n";
-static char symbol_435[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_436[] = "} else {\n";
-static char symbol_437[] = "_ = NULL;\n";
-static char symbol_438[] = "}\n";
-static char symbol_439[] = ".";
-static char symbol_440[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_441[] = "parse_state->pos += 1;\n";
-static char symbol_442[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_443[] = "} else {\n";
-static char symbol_444[] = "_ = NULL;\n";
-static char symbol_445[] = "}\n";
-static char symbol_446[] = "x";
-static char symbol_447[] = "struct Buffer* data;\n";
-static char symbol_448[] = "struct Buffer* data;\n";
-static char symbol_449[] = "data = ";
+static char symbol_415[] = "bitpattern <<= 1;\n";
+static char symbol_416[] = "bitmask <<= 1;\n";
+static char symbol_417[] = "x";
+static char symbol_418[] = "x";
+static char symbol_419[] = "x";
+static char symbol_420[] = "bitmask |= 1;\n";
+static char symbol_421[] = "0";
+static char symbol_422[] = "1";
+static char symbol_423[] = "bitpattern |= 1;\n";
+static char symbol_424[] = "x";
+static char symbol_425[] = "_ = rule_";
+static char symbol_426[] = "x";
+static char symbol_427[] = "(parse_state);\n";
+static char symbol_428[] = "0b";
+static char symbol_429[] = "xs";
+static char symbol_430[] = "unsigned char bitpattern;\n";
+static char symbol_431[] = "unsigned char bitpattern;\n";
+static char symbol_432[] = "unsigned char bitmask;\n";
+static char symbol_433[] = "unsigned char bitmask;\n";
+static char symbol_434[] = "bitpattern = 0;\n";
+static char symbol_435[] = "bitmask = 0;\n";
+static char symbol_436[] = "xs";
+static char symbol_437[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_438[] = "parse_state->pos += 1;\n";
+static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_440[] = "} else {\n";
+static char symbol_441[] = "_ = NULL;\n";
+static char symbol_442[] = "}\n";
+static char symbol_443[] = ".";
+static char symbol_444[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_445[] = "parse_state->pos += 1;\n";
+static char symbol_446[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_447[] = "} else {\n";
+static char symbol_448[] = "_ = NULL;\n";
+static char symbol_449[] = "}\n";
 static char symbol_450[] = "x";
-static char symbol_451[] = ";\n";
-static char symbol_452[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_453[] = "parse_state->pos += data->size;\n";
-static char symbol_454[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_455[] = "} else {\n";
-static char symbol_456[] = "_ = NULL;\n";
-static char symbol_457[] = "}\n";
-static char symbol_458[] = "->";
-static char symbol_459[] = "{";
-static char symbol_460[] = "xs";
-static char symbol_461[] = "}";
-static char symbol_462[] = "void action_";
-static char symbol_463[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_451[] = "struct Buffer* data;\n";
+static char symbol_452[] = "struct Buffer* data;\n";
+static char symbol_453[] = "data = ";
+static char symbol_454[] = "x";
+static char symbol_455[] = ";\n";
+static char symbol_456[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_457[] = "parse_state->pos += data->size;\n";
+static char symbol_458[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_459[] = "} else {\n";
+static char symbol_460[] = "_ = NULL;\n";
+static char symbol_461[] = "}\n";
+static char symbol_462[] = "->";
+static char symbol_463[] = "{";
 static char symbol_464[] = "xs";
-static char symbol_465[] = "}\n";
-static char symbol_466[] = "\n";
-static char symbol_467[] = "struct Variables* variables;\n";
-static char symbol_468[] = "struct Variables* variables;\n";
-static char symbol_469[] = "variables = create_variables();\n";
-static char symbol_470[] = "variables = create_variables();\n";
-static char symbol_471[] = "return create_action(action_";
-static char symbol_472[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_473[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_474[] = "unseen(";
-static char symbol_475[] = "x";
-static char symbol_476[] = ") -> {";
-static char symbol_477[] = "ys";
-static char symbol_478[] = "}";
-static char symbol_479[] = "struct Action* action;\n";
-static char symbol_480[] = "struct Action* action;\n";
-static char symbol_481[] = "action = lookup_action(variables, ";
-static char symbol_482[] = "x";
-static char symbol_483[] = ");\n";
-static char symbol_484[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_485[] = "ys";
-static char symbol_486[] = "}\n";
-static char symbol_487[] = "unique(";
-static char symbol_488[] = "x";
-static char symbol_489[] = ")";
-static char symbol_490[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_491[] = "x";
-static char symbol_492[] = ")) {\n";
-static char symbol_493[] = "append_data(runtime->current_chunks, ";
-static char symbol_494[] = "x";
-static char symbol_495[] = ", 0, NULL);\n";
-static char symbol_496[] = "}\n";
-static char symbol_497[] = ">";
+static char symbol_465[] = "}";
+static char symbol_466[] = "void action_";
+static char symbol_467[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_468[] = "xs";
+static char symbol_469[] = "}\n";
+static char symbol_470[] = "\n";
+static char symbol_471[] = "struct Variables* variables;\n";
+static char symbol_472[] = "struct Variables* variables;\n";
+static char symbol_473[] = "variables = create_variables();\n";
+static char symbol_474[] = "variables = create_variables();\n";
+static char symbol_475[] = "return create_action(action_";
+static char symbol_476[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_477[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_478[] = "unseen(";
+static char symbol_479[] = "x";
+static char symbol_480[] = ") -> {";
+static char symbol_481[] = "ys";
+static char symbol_482[] = "}";
+static char symbol_483[] = "struct Action* action;\n";
+static char symbol_484[] = "struct Action* action;\n";
+static char symbol_485[] = "action = lookup_action(variables, ";
+static char symbol_486[] = "x";
+static char symbol_487[] = ");\n";
+static char symbol_488[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_489[] = "ys";
+static char symbol_490[] = "}\n";
+static char symbol_491[] = "unique(";
+static char symbol_492[] = "x";
+static char symbol_493[] = ")";
+static char symbol_494[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_495[] = "x";
+static char symbol_496[] = ")) {\n";
+static char symbol_497[] = "append_data(runtime->current_chunks, ";
 static char symbol_498[] = "x";
-static char symbol_499[] = "{";
-static char symbol_500[] = "ys";
-static char symbol_501[] = "}";
-static char symbol_502[] = "struct Chunks* last_chunks;\n";
-static char symbol_503[] = "struct Chunks* last_chunks;\n";
-static char symbol_504[] = "struct Chunks* chunks;\n";
-static char symbol_505[] = "struct Chunks* chunks;\n";
-static char symbol_506[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_507[] = "chunks = runtime->named_chunks_";
-static char symbol_508[] = "x";
-static char symbol_509[] = ";\n";
-static char symbol_510[] = "runtime->current_chunks = chunks;\n";
-static char symbol_511[] = "ys";
-static char symbol_512[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_513[] = "<";
-static char symbol_514[] = "x";
-static char symbol_515[] = "struct Chunks* chunks;\n";
-static char symbol_516[] = "struct Chunks* chunks;\n";
-static char symbol_517[] = "chunks = create_chunks();\n";
-static char symbol_518[] = "runtime->named_chunks_";
-static char symbol_519[] = "x";
-static char symbol_520[] = " = chunks;\n";
-static char symbol_521[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_522[] = "x";
-static char symbol_523[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_524[] = "x";
-static char symbol_525[] = "), 0, NULL);\n";
+static char symbol_499[] = ", 0, NULL);\n";
+static char symbol_500[] = "}\n";
+static char symbol_501[] = ">";
+static char symbol_502[] = "x";
+static char symbol_503[] = "{";
+static char symbol_504[] = "ys";
+static char symbol_505[] = "}";
+static char symbol_506[] = "struct Chunks* last_chunks;\n";
+static char symbol_507[] = "struct Chunks* last_chunks;\n";
+static char symbol_508[] = "struct Chunks* chunks;\n";
+static char symbol_509[] = "struct Chunks* chunks;\n";
+static char symbol_510[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_511[] = "chunks = runtime->named_chunks_";
+static char symbol_512[] = "x";
+static char symbol_513[] = ";\n";
+static char symbol_514[] = "runtime->current_chunks = chunks;\n";
+static char symbol_515[] = "ys";
+static char symbol_516[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_517[] = "<";
+static char symbol_518[] = "x";
+static char symbol_519[] = "struct Chunks* chunks;\n";
+static char symbol_520[] = "struct Chunks* chunks;\n";
+static char symbol_521[] = "chunks = create_chunks();\n";
+static char symbol_522[] = "runtime->named_chunks_";
+static char symbol_523[] = "x";
+static char symbol_524[] = " = chunks;\n";
+static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_526[] = "x";
-static char symbol_527[] = "run_action(lookup_action(variables, ";
+static char symbol_527[] = "append_data(runtime->current_chunks, buffer_from_integer(";
 static char symbol_528[] = "x";
-static char symbol_529[] = "), runtime);\n";
+static char symbol_529[] = "), 0, NULL);\n";
 static char symbol_530[] = "x";
-static char symbol_531[] = "void placeholder_";
-static char symbol_532[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_533[] = "void placeholder_";
-static char symbol_534[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_535[] = "x";
-static char symbol_536[] = "}\n";
-static char symbol_537[] = "\n";
-static char symbol_538[] = "struct Chunks* chunks;\n";
-static char symbol_539[] = "struct Chunks* chunks;\n";
-static char symbol_540[] = "chunks = create_chunks();\n";
-static char symbol_541[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_542[] = ", variables, NULL, 0, 0));\n";
-static char symbol_543[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_544[] = "x";
-static char symbol_545[] = "append_data(runtime->current_chunks, ";
-static char symbol_546[] = "x";
-static char symbol_547[] = ", 0, NULL);\n";
-static char symbol_548[] = "#";
-static char symbol_549[] = "x";
-static char symbol_550[] = "(";
-static char symbol_551[] = "y";
-static char symbol_552[] = " ";
-static char symbol_553[] = "z";
-static char symbol_554[] = ")";
-static char symbol_555[] = "runtime->W_";
-static char symbol_556[] = "y";
-static char symbol_557[] = " = ";
-static char symbol_558[] = "x";
-static char symbol_559[] = "(runtime->W_";
+static char symbol_531[] = "run_action(lookup_action(variables, ";
+static char symbol_532[] = "x";
+static char symbol_533[] = "), runtime);\n";
+static char symbol_534[] = "x";
+static char symbol_535[] = "void placeholder_";
+static char symbol_536[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_537[] = "void placeholder_";
+static char symbol_538[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_539[] = "x";
+static char symbol_540[] = "}\n";
+static char symbol_541[] = "\n";
+static char symbol_542[] = "struct Chunks* chunks;\n";
+static char symbol_543[] = "struct Chunks* chunks;\n";
+static char symbol_544[] = "chunks = create_chunks();\n";
+static char symbol_545[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_546[] = ", variables, NULL, 0, 0));\n";
+static char symbol_547[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_548[] = "x";
+static char symbol_549[] = "append_data(runtime->current_chunks, ";
+static char symbol_550[] = "x";
+static char symbol_551[] = ", 0, NULL);\n";
+static char symbol_552[] = "#";
+static char symbol_553[] = "x";
+static char symbol_554[] = "(";
+static char symbol_555[] = "y";
+static char symbol_556[] = " ";
+static char symbol_557[] = "z";
+static char symbol_558[] = ")";
+static char symbol_559[] = "runtime->W_";
 static char symbol_560[] = "y";
-static char symbol_561[] = " ? runtime->W_";
-static char symbol_562[] = "y";
-static char symbol_563[] = " : 0, ";
-static char symbol_564[] = "z";
-static char symbol_565[] = ");\n";
-static char symbol_566[] = ">";
-static char symbol_567[] = "xs";
-static char symbol_568[] = "<";
-static char symbol_569[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_570[] = "xs";
-static char symbol_571[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_572[] = "x";
-static char symbol_573[] = "x";
-static char symbol_574[] = "struct Chunks* named_chunks_";
-static char symbol_575[] = "x";
-static char symbol_576[] = ";\n";
+static char symbol_561[] = " = ";
+static char symbol_562[] = "x";
+static char symbol_563[] = "(runtime->W_";
+static char symbol_564[] = "y";
+static char symbol_565[] = " ? runtime->W_";
+static char symbol_566[] = "y";
+static char symbol_567[] = " : 0, ";
+static char symbol_568[] = "z";
+static char symbol_569[] = ");\n";
+static char symbol_570[] = ">";
+static char symbol_571[] = "xs";
+static char symbol_572[] = "<";
+static char symbol_573[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_574[] = "xs";
+static char symbol_575[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_576[] = "x";
 static char symbol_577[] = "x";
-static char symbol_578[] = "x";
+static char symbol_578[] = "struct Chunks* named_chunks_";
 static char symbol_579[] = "x";
-static char symbol_580[] = "0";
-static char symbol_581[] = "1";
-static char symbol_582[] = "2";
-static char symbol_583[] = "3";
-static char symbol_584[] = "4";
-static char symbol_585[] = "5";
-static char symbol_586[] = "6";
-static char symbol_587[] = "7";
-static char symbol_588[] = "8";
-static char symbol_589[] = "9";
-static char symbol_590[] = "{";
-static char symbol_591[] = "x";
-static char symbol_592[] = "*";
-static char symbol_593[] = "y";
-static char symbol_594[] = "}";
-static char symbol_595[] = "int i;\n";
-static char symbol_596[] = "int i;\n";
-static char symbol_597[] = "for (i=0; i < ";
-static char symbol_598[] = "y";
-static char symbol_599[] = "; i++) {\n";
-static char symbol_600[] = "append_data(runtime->current_chunks, ";
-static char symbol_601[] = "x";
-static char symbol_602[] = ", 0, NULL);\n";
-static char symbol_603[] = "}\n";
-static char symbol_604[] = "x";
-static char symbol_605[] = "(runtime->W_";
-static char symbol_606[] = "x";
-static char symbol_607[] = " ? runtime->W_";
+static char symbol_580[] = ";\n";
+static char symbol_581[] = "x";
+static char symbol_582[] = "x";
+static char symbol_583[] = "x";
+static char symbol_584[] = "0";
+static char symbol_585[] = "1";
+static char symbol_586[] = "2";
+static char symbol_587[] = "3";
+static char symbol_588[] = "4";
+static char symbol_589[] = "5";
+static char symbol_590[] = "6";
+static char symbol_591[] = "7";
+static char symbol_592[] = "8";
+static char symbol_593[] = "9";
+static char symbol_594[] = "{";
+static char symbol_595[] = "x";
+static char symbol_596[] = "*";
+static char symbol_597[] = "y";
+static char symbol_598[] = "}";
+static char symbol_599[] = "int i;\n";
+static char symbol_600[] = "int i;\n";
+static char symbol_601[] = "for (i=0; i < ";
+static char symbol_602[] = "y";
+static char symbol_603[] = "; i++) {\n";
+static char symbol_604[] = "append_data(runtime->current_chunks, ";
+static char symbol_605[] = "x";
+static char symbol_606[] = ", 0, NULL);\n";
+static char symbol_607[] = "}\n";
 static char symbol_608[] = "x";
-static char symbol_609[] = " : 0)";
-static char symbol_610[] = "(";
-static char symbol_611[] = "x";
-static char symbol_612[] = "-";
-static char symbol_613[] = "y";
-static char symbol_614[] = ")";
-static char symbol_615[] = "((runtime->W_";
-static char symbol_616[] = "x";
-static char symbol_617[] = " ? runtime->W_";
-static char symbol_618[] = "x";
-static char symbol_619[] = " : 0)-";
-static char symbol_620[] = "y";
-static char symbol_621[] = ")";
-static char symbol_622[] = "\"";
-static char symbol_623[] = "xs";
-static char symbol_624[] = "\"";
-static char symbol_625[] = "static char symbol_";
-static char symbol_626[] = "[] = \"";
+static char symbol_609[] = "(runtime->W_";
+static char symbol_610[] = "x";
+static char symbol_611[] = " ? runtime->W_";
+static char symbol_612[] = "x";
+static char symbol_613[] = " : 0)";
+static char symbol_614[] = "(";
+static char symbol_615[] = "x";
+static char symbol_616[] = "-";
+static char symbol_617[] = "y";
+static char symbol_618[] = ")";
+static char symbol_619[] = "((runtime->W_";
+static char symbol_620[] = "x";
+static char symbol_621[] = " ? runtime->W_";
+static char symbol_622[] = "x";
+static char symbol_623[] = " : 0)-";
+static char symbol_624[] = "y";
+static char symbol_625[] = ")";
+static char symbol_626[] = "number(";
 static char symbol_627[] = "xs";
-static char symbol_628[] = "\";\n";
-static char symbol_629[] = "buffer_from_cstring(symbol_";
-static char symbol_630[] = ", sizeof(symbol_";
-static char symbol_631[] = ")-1)";
+static char symbol_628[] = ")";
+static char symbol_629[] = "(0";
+static char symbol_630[] = "xs";
+static char symbol_631[] = ")";
 static char symbol_632[] = "x";
 static char symbol_633[] = "y";
-static char symbol_634[] = "y";
-static char symbol_635[] = "(lookup_action(variables, ";
-static char symbol_636[] = "x";
-static char symbol_637[] = "))";
-static char symbol_638[] = ".len";
-static char symbol_639[] = "action_len";
-static char symbol_640[] = "W[";
-static char symbol_641[] = "x";
-static char symbol_642[] = "]";
-static char symbol_643[] = "x";
-static char symbol_644[] = "unsigned int W_";
-static char symbol_645[] = "x";
-static char symbol_646[] = ";\n";
-static char symbol_647[] = "x";
-static char symbol_648[] = "\\\"";
-static char symbol_649[] = "\"";
-static char symbol_650[] = "xs";
-static char symbol_651[] = "static char symbol_";
-static char symbol_652[] = "[] = \"";
-static char symbol_653[] = "xs";
-static char symbol_654[] = "\";\n";
-static char symbol_655[] = "buffer_from_cstring(symbol_";
-static char symbol_656[] = ", sizeof(symbol_";
-static char symbol_657[] = ")-1)";
-static char symbol_658[] = "\'";
-static char symbol_659[] = "\\\'";
-static char symbol_660[] = "\"";
-static char symbol_661[] = "\\\"";
-static char symbol_662[] = "x";
-static char symbol_663[] = "static char symbol_";
-static char symbol_664[] = "[] = \"";
+static char symbol_634[] = "+(first_byte(lookup_action(variables, ";
+static char symbol_635[] = "x";
+static char symbol_636[] = "))";
+static char symbol_637[] = "y";
+static char symbol_638[] = ")";
+static char symbol_639[] = "<<";
+static char symbol_640[] = "\"";
+static char symbol_641[] = "xs";
+static char symbol_642[] = "\"";
+static char symbol_643[] = "static char symbol_";
+static char symbol_644[] = "[] = \"";
+static char symbol_645[] = "xs";
+static char symbol_646[] = "\";\n";
+static char symbol_647[] = "buffer_from_cstring(symbol_";
+static char symbol_648[] = ", sizeof(symbol_";
+static char symbol_649[] = ")-1)";
+static char symbol_650[] = "x";
+static char symbol_651[] = "y";
+static char symbol_652[] = "y";
+static char symbol_653[] = "(lookup_action(variables, ";
+static char symbol_654[] = "x";
+static char symbol_655[] = "))";
+static char symbol_656[] = ".len";
+static char symbol_657[] = "action_len";
+static char symbol_658[] = "W[";
+static char symbol_659[] = "x";
+static char symbol_660[] = "]";
+static char symbol_661[] = "x";
+static char symbol_662[] = "unsigned int W_";
+static char symbol_663[] = "x";
+static char symbol_664[] = ";\n";
 static char symbol_665[] = "x";
-static char symbol_666[] = "\";\n";
-static char symbol_667[] = "buffer_from_cstring(symbol_";
-static char symbol_668[] = ", sizeof(symbol_";
-static char symbol_669[] = ")-1)";
-static char symbol_670[] = "a";
-static char symbol_671[] = "b";
-static char symbol_672[] = "c";
-static char symbol_673[] = "d";
-static char symbol_674[] = "e";
-static char symbol_675[] = "f";
-static char symbol_676[] = "g";
-static char symbol_677[] = "h";
-static char symbol_678[] = "i";
-static char symbol_679[] = "j";
-static char symbol_680[] = "k";
-static char symbol_681[] = "l";
-static char symbol_682[] = "m";
-static char symbol_683[] = "n";
-static char symbol_684[] = "o";
-static char symbol_685[] = "p";
-static char symbol_686[] = "q";
-static char symbol_687[] = "r";
-static char symbol_688[] = "s";
-static char symbol_689[] = "t";
-static char symbol_690[] = "u";
-static char symbol_691[] = "v";
-static char symbol_692[] = "w";
-static char symbol_693[] = "x";
-static char symbol_694[] = "y";
-static char symbol_695[] = "z";
-static char symbol_696[] = "A";
-static char symbol_697[] = "B";
-static char symbol_698[] = "C";
-static char symbol_699[] = "D";
-static char symbol_700[] = "E";
-static char symbol_701[] = "F";
-static char symbol_702[] = "G";
-static char symbol_703[] = "H";
-static char symbol_704[] = "I";
-static char symbol_705[] = "J";
-static char symbol_706[] = "K";
-static char symbol_707[] = "L";
-static char symbol_708[] = "M";
-static char symbol_709[] = "N";
-static char symbol_710[] = "O";
-static char symbol_711[] = "P";
-static char symbol_712[] = "Q";
-static char symbol_713[] = "R";
-static char symbol_714[] = "S";
-static char symbol_715[] = "T";
-static char symbol_716[] = "U";
-static char symbol_717[] = "V";
-static char symbol_718[] = "W";
-static char symbol_719[] = "X";
-static char symbol_720[] = "Y";
-static char symbol_721[] = "Z";
-static char symbol_722[] = " ";
-static char symbol_723[] = "\n";
+static char symbol_666[] = "\\\"";
+static char symbol_667[] = "\"";
+static char symbol_668[] = "xs";
+static char symbol_669[] = "static char symbol_";
+static char symbol_670[] = "[] = \"";
+static char symbol_671[] = "xs";
+static char symbol_672[] = "\";\n";
+static char symbol_673[] = "buffer_from_cstring(symbol_";
+static char symbol_674[] = ", sizeof(symbol_";
+static char symbol_675[] = ")-1)";
+static char symbol_676[] = "\'";
+static char symbol_677[] = "\\\'";
+static char symbol_678[] = "\"";
+static char symbol_679[] = "\\\"";
+static char symbol_680[] = "x";
+static char symbol_681[] = "static char symbol_";
+static char symbol_682[] = "[] = \"";
+static char symbol_683[] = "x";
+static char symbol_684[] = "\";\n";
+static char symbol_685[] = "buffer_from_cstring(symbol_";
+static char symbol_686[] = ", sizeof(symbol_";
+static char symbol_687[] = ")-1)";
+static char symbol_688[] = "a";
+static char symbol_689[] = "b";
+static char symbol_690[] = "c";
+static char symbol_691[] = "d";
+static char symbol_692[] = "e";
+static char symbol_693[] = "f";
+static char symbol_694[] = "g";
+static char symbol_695[] = "h";
+static char symbol_696[] = "i";
+static char symbol_697[] = "j";
+static char symbol_698[] = "k";
+static char symbol_699[] = "l";
+static char symbol_700[] = "m";
+static char symbol_701[] = "n";
+static char symbol_702[] = "o";
+static char symbol_703[] = "p";
+static char symbol_704[] = "q";
+static char symbol_705[] = "r";
+static char symbol_706[] = "s";
+static char symbol_707[] = "t";
+static char symbol_708[] = "u";
+static char symbol_709[] = "v";
+static char symbol_710[] = "w";
+static char symbol_711[] = "x";
+static char symbol_712[] = "y";
+static char symbol_713[] = "z";
+static char symbol_714[] = "A";
+static char symbol_715[] = "B";
+static char symbol_716[] = "C";
+static char symbol_717[] = "D";
+static char symbol_718[] = "E";
+static char symbol_719[] = "F";
+static char symbol_720[] = "G";
+static char symbol_721[] = "H";
+static char symbol_722[] = "I";
+static char symbol_723[] = "J";
+static char symbol_724[] = "K";
+static char symbol_725[] = "L";
+static char symbol_726[] = "M";
+static char symbol_727[] = "N";
+static char symbol_728[] = "O";
+static char symbol_729[] = "P";
+static char symbol_730[] = "Q";
+static char symbol_731[] = "R";
+static char symbol_732[] = "S";
+static char symbol_733[] = "T";
+static char symbol_734[] = "U";
+static char symbol_735[] = "V";
+static char symbol_736[] = "W";
+static char symbol_737[] = "X";
+static char symbol_738[] = "Y";
+static char symbol_739[] = "Z";
+static char symbol_740[] = " ";
+static char symbol_741[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1030,6 +1052,8 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state);
 struct Action* rule_digit(struct ParseState* parse_state);
 struct Action* rule_placeholder(struct ParseState* parse_state);
 struct Action* rule_expr(struct ParseState* parse_state);
+struct Action* rule_numberPart(struct ParseState* parse_state);
+struct Action* rule_maybeShift(struct ParseState* parse_state);
 struct Action* rule_string(struct ParseState* parse_state);
 struct Action* rule_dotname(struct ParseState* parse_state);
 struct Action* rule_nextname(struct ParseState* parse_state);
@@ -1043,6 +1067,7 @@ struct Action* rule_name(struct ParseState* parse_state);
 struct Action* rule_char(struct ParseState* parse_state);
 struct Action* rule_lower(struct ParseState* parse_state);
 struct Action* rule_upper(struct ParseState* parse_state);
+struct Action* rule_number(struct ParseState* parse_state);
 struct Action* rule_space(struct ParseState* parse_state);
 struct Action* rule_spacechar(struct ParseState* parse_state);
 
@@ -1330,65 +1355,65 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_205, sizeof(symbol_205)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_206, sizeof(symbol_206)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_207, sizeof(symbol_207)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_209, sizeof(symbol_209)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_211, sizeof(symbol_211)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_212, sizeof(symbol_212)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_213, sizeof(symbol_213)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_214, sizeof(symbol_214)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_215, sizeof(symbol_215)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_216, sizeof(symbol_216)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_217, sizeof(symbol_217)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_218, sizeof(symbol_218)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_219, sizeof(symbol_219)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_220, sizeof(symbol_220)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_221, sizeof(symbol_221)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_222, sizeof(symbol_222)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_223, sizeof(symbol_223)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_225, sizeof(symbol_225)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_226, sizeof(symbol_226)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_229, sizeof(symbol_229)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_230, sizeof(symbol_230)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_230, sizeof(symbol_230)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_231, sizeof(symbol_231)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_232, sizeof(symbol_232)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_233, sizeof(symbol_233)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_234, sizeof(symbol_234)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_235, sizeof(symbol_235)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_236, sizeof(symbol_236)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_237, sizeof(symbol_237)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_238, sizeof(symbol_238)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_239, sizeof(symbol_239)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_240, sizeof(symbol_240)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_241, sizeof(symbol_241)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_242, sizeof(symbol_242)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_243, sizeof(symbol_243)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_244, sizeof(symbol_244)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_245, sizeof(symbol_245)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_246, sizeof(symbol_246)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_247, sizeof(symbol_247)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_248, sizeof(symbol_248)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_249, sizeof(symbol_249)-1), 0, NULL);
@@ -1402,8 +1427,8 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_255, sizeof(symbol_255)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_256, sizeof(symbol_256)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_257, sizeof(symbol_257)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_258, sizeof(symbol_258)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_259, sizeof(symbol_259)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
@@ -1411,17 +1436,17 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_261, sizeof(symbol_261)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_262, sizeof(symbol_262)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
@@ -1433,29 +1458,31 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_281, sizeof(symbol_281)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_282, sizeof(symbol_282)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_281, sizeof(symbol_281)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_282, sizeof(symbol_282)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_283, sizeof(symbol_283)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_283, sizeof(symbol_283)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_284, sizeof(symbol_284)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_285, sizeof(symbol_285)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
@@ -1466,33 +1493,37 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1501,35 +1532,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1537,25 +1568,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1564,22 +1595,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1588,33 +1619,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1626,51 +1657,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1680,13 +1711,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1695,39 +1726,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1736,23 +1767,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1762,39 +1793,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1803,30 +1834,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1835,20 +1866,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1857,29 +1888,29 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-}
-
-void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
 }
 
-void action_33(struct Runtime* runtime, struct Variables* variables) {
+void action_32(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
 }
 
+void action_33(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+}
+
 void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
@@ -1887,50 +1918,46 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_placeholderVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
@@ -1938,12 +1965,16 @@ void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1953,18 +1984,18 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
@@ -1973,129 +2004,146 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholderVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+}
+
+void action_44(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+}
+
+void action_45(struct Runtime* runtime, struct Variables* variables) {
+}
+
+void action_46(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
 }
 
-void action_44(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+void action_47(struct Runtime* runtime, struct Variables* variables) {
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
 }
 
-void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+void action_48(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
 }
 
-void action_46(struct Runtime* runtime, struct Variables* variables) {
+void action_49(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_50(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_670, sizeof(symbol_670)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_671, sizeof(symbol_671)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1), 0, NULL);
+void action_51(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
 }
 
-void action_49(struct Runtime* runtime, struct Variables* variables) {
+void action_52(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_681, sizeof(symbol_681)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_682, sizeof(symbol_682)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_683, sizeof(symbol_683)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_684, sizeof(symbol_684)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_685, sizeof(symbol_685)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_686, sizeof(symbol_686)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_687, sizeof(symbol_687)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2178,11 +2226,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_318, sizeof(symbol_318)-1);
+                data = buffer_from_cstring(symbol_322, sizeof(symbol_322)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2193,11 +2241,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_320, sizeof(symbol_320)-1);
+                                data = buffer_from_cstring(symbol_324, sizeof(symbol_324)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2232,7 +2280,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2246,7 +2294,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2267,7 +2315,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2304,7 +2352,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_341, sizeof(symbol_341)-1);
+        data = buffer_from_cstring(symbol_345, sizeof(symbol_345)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2328,7 +2376,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2347,10 +2395,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2360,7 +2408,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2377,7 +2425,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_354, sizeof(symbol_354)-1);
+    data = buffer_from_cstring(symbol_358, sizeof(symbol_358)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2386,7 +2434,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2394,7 +2442,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_366, sizeof(symbol_366)-1);
+    data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2403,7 +2451,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2412,10 +2460,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2433,7 +2481,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_382, sizeof(symbol_382)-1);
+    data = buffer_from_cstring(symbol_386, sizeof(symbol_386)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2442,7 +2490,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2465,9 +2513,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_388, sizeof(symbol_388)-1);
+        data = buffer_from_cstring(symbol_392, sizeof(symbol_392)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2482,7 +2530,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2506,7 +2554,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
+        data = buffer_from_cstring(symbol_413, sizeof(symbol_413)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2522,7 +2570,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2540,7 +2588,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2564,7 +2612,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
+    data = buffer_from_cstring(symbol_421, sizeof(symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2577,7 +2625,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_418, sizeof(symbol_418)-1);
+    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2604,14 +2652,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
+    data = buffer_from_cstring(symbol_428, sizeof(symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2631,7 +2679,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2639,7 +2687,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_439, sizeof(symbol_439)-1);
+    data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2653,7 +2701,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2675,7 +2723,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
+        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2685,7 +2733,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2705,11 +2753,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2747,7 +2795,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+        data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2756,9 +2804,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+                data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,11 +2826,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
+                            data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2803,7 +2851,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
+        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2812,9 +2860,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
+                data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2832,7 +2880,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_497, sizeof(symbol_497)-1);
+        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2841,11 +2889,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
+                    data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2865,11 +2913,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
+                                data = buffer_from_cstring(symbol_505, sizeof(symbol_505)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2891,7 +2939,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
+        data = buffer_from_cstring(symbol_517, sizeof(symbol_517)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2900,7 +2948,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2912,7 +2960,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2923,7 +2971,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2934,7 +2982,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2945,7 +2993,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2955,7 +3003,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+        data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2964,9 +3012,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+                data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2975,9 +3023,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
+                        data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2986,9 +3034,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
+                                data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3010,7 +3058,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+        data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3030,11 +3078,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+                    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3061,7 +3109,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3078,7 +3126,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3099,7 +3147,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+    data = buffer_from_cstring(symbol_584, sizeof(symbol_584)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3111,7 +3159,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
+    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3123,7 +3171,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
+    data = buffer_from_cstring(symbol_586, sizeof(symbol_586)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3135,7 +3183,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
+    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3147,7 +3195,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_584, sizeof(symbol_584)-1);
+    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3159,7 +3207,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
+    data = buffer_from_cstring(symbol_589, sizeof(symbol_589)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3171,7 +3219,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_586, sizeof(symbol_586)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3183,7 +3231,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
+    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3195,7 +3243,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3207,7 +3255,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_589, sizeof(symbol_589)-1);
+    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3230,7 +3278,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3241,9 +3289,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+                data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3252,11 +3300,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+                            data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3281,19 +3329,22 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     struct Action* _;
     struct Variables* variables;
     struct Buffer* data;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+    data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3302,9 +3353,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
+            data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3313,9 +3364,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
+                    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3329,6 +3380,96 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
         }
     }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        star_variables = create_variables();
+        star_start_pos = parse_state->pos;
+        while (1) {
+            star_pos = parse_state->pos;
+            _ = rule_numberPart(parse_state);
+            if (_ == NULL) {
+                parse_state->pos = star_pos;
+                break;
+            }
+            append_named_action(star_variables, NULL, _);
+        }
+        _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        append_named_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), _);
+        if (_) {
+            data = buffer_from_cstring(symbol_628, sizeof(symbol_628)-1);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                parse_state->pos += data->size;
+                _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            } else {
+                _ = NULL;
+            }
+            if (_) {
+                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            }
+        }
+    }
+    return NULL;
+}
+
+struct Action* rule_numberPart(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Variables* variables;
+    or_backtrack_pos = parse_state->pos;
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    _ = rule_space(parse_state);
+    if (_) {
+        _ = rule_nameAsSymbol(parse_state);
+        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
+        if (_) {
+            _ = rule_maybeShift(parse_state);
+            append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+            if (_) {
+                return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            }
+        }
+    }
+    return NULL;
+}
+
+struct Action* rule_maybeShift(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    struct Variables* variables;
+    or_backtrack_pos = parse_state->pos;
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        _ = rule_number(parse_state);
+        if (_) {
+            return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        }
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return NULL;
 }
 
@@ -3345,7 +3486,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3365,9 +3506,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+            data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3375,7 +3516,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3392,12 +3533,12 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), _);
     if (_) {
         _ = rule_nextname(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), _);
         if (_) {
-            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3414,7 +3555,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3431,7 +3572,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
         }
         parse_state->pos = nlookahead_pos;
         if (_) {
-            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3447,7 +3588,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3461,9 +3602,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+            data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3471,7 +3612,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3487,7 +3628,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3500,7 +3641,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3553,11 +3694,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_50, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3572,7 +3713,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3595,7 +3736,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3608,7 +3749,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3616,7 +3757,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_51, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3652,9 +3793,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_680, sizeof(symbol_680)-1), _);
     if (_) {
-        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_52, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3718,7 +3859,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3730,7 +3871,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3742,7 +3883,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3754,7 +3895,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3766,7 +3907,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3778,7 +3919,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3790,7 +3931,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3802,7 +3943,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3814,7 +3955,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3826,7 +3967,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3838,7 +3979,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3850,7 +3991,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3862,7 +4003,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3874,7 +4015,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3886,7 +4027,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3898,7 +4039,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3910,7 +4051,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3922,7 +4063,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3934,7 +4075,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3946,7 +4087,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3958,7 +4099,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3970,7 +4111,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3982,7 +4123,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3994,7 +4135,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4006,7 +4147,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4018,7 +4159,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4039,7 +4180,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4051,7 +4192,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4063,7 +4204,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4075,7 +4216,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4087,7 +4228,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4099,7 +4240,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4111,7 +4252,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4123,7 +4264,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4135,7 +4276,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4147,7 +4288,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4159,7 +4300,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4171,7 +4312,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4183,7 +4324,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4195,7 +4336,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4207,7 +4348,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4219,7 +4360,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4231,7 +4372,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4243,7 +4384,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4255,7 +4396,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
+    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4267,7 +4408,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
+    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4279,7 +4420,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
+    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4291,7 +4432,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
+    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4303,7 +4444,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
+    data = buffer_from_cstring(symbol_736, sizeof(symbol_736)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4315,7 +4456,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
+    data = buffer_from_cstring(symbol_737, sizeof(symbol_737)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4327,7 +4468,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
+    data = buffer_from_cstring(symbol_738, sizeof(symbol_738)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4339,7 +4480,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
+    data = buffer_from_cstring(symbol_739, sizeof(symbol_739)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4352,6 +4493,37 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     return NULL;
 }
 
+struct Action* rule_number(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
+    or_backtrack_pos = parse_state->pos;
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    _ = rule_digit(parse_state);
+    if (_) {
+        star_variables = create_variables();
+        star_start_pos = parse_state->pos;
+        while (1) {
+            star_pos = parse_state->pos;
+            _ = rule_digit(parse_state);
+            if (_ == NULL) {
+                parse_state->pos = star_pos;
+                break;
+            }
+            append_named_action(star_variables, NULL, _);
+        }
+        _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        if (_) {
+            return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        }
+    }
+    return NULL;
+}
+
 struct Action* rule_space(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
@@ -4388,7 +4560,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
+    data = buffer_from_cstring(symbol_740, sizeof(symbol_740)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4400,7 +4572,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
+    data = buffer_from_cstring(symbol_741, sizeof(symbol_741)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 964bfff..cd45539 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -204,6 +204,10 @@ file = rule*:xs space !. -> {
         "return action->end-action->start;\n"
     < "}\n"
     "\n"
+    "unsigned char first_byte(struct Action* action) {\n" >
+        "return (unsigned char)action->input_buffer->buffer[action->start];\n"
+    < "}\n"
+    "\n"
     "int seen(struct Chunks* chunks, struct Buffer* data) {\n" >
         "struct Chunk* chunk = chunks->pre_first->next;\n"
         "while (chunk) {\n" >
@@ -625,8 +629,17 @@ expr =
     | '(' wvar:x '-' dotname:y ')' -> {
         "((runtime->W_" x " ? runtime->W_" x " : 0)-"  y ")"
     }
+    | 'number(' numberPart*:xs ')' -> {
+        "(0" xs ")"
+    }
     ;
 
+numberPart = space nameAsSymbol:x maybeShift:y -> {
+    "+(first_byte(lookup_action(variables, " x "))" y ")"
+};
+
+maybeShift = '<<' number | -> {};
+
 string = '"' stringinner*:xs '"' -> {
     #inc(W[2] 1)
     >symbols {
@@ -685,6 +698,8 @@ char = lower | upper;
 lower = 'a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'i'|'j'|'k'|'l'|'m'|'n'|'o'|'p'|'q'|'r'|'s'|'t'|'u'|'v'|'w'|'x'|'y'|'z';
 upper = 'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'I'|'J'|'K'|'L'|'M'|'N'|'O'|'P'|'Q'|'R'|'S'|'T'|'U'|'V'|'W'|'X'|'Y'|'Z';
 
+number = digit digit*;
+
 space = spacechar*;
 
 spacechar = ' ' | '\n';

2025-11-11 07:17 Rickard pushed to rlworkbench

commit 3eec45e5b47584c3b6728fffe97465ce9cabc6f9
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 11 07:16:37 2025 +0100

    Reduce memory usage by parser by not storing action.len

diff --git a/src/meta/meta.c b/src/meta/meta.c
index dbbadd1..a087168 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -49,7 +49,6 @@ struct Action {
     struct Buffer* input_buffer;
     unsigned int start;
     unsigned int end;
-    unsigned int len;
 };
 
 struct Chunks {
@@ -136,7 +135,6 @@ struct Action* create_action(void (*function)(struct Runtime*, struct Variables*
     action->input_buffer = input_buffer;
     action->start = start;
     action->end = end;
-    action->len = end-start;
     return action;
 }
 
@@ -209,6 +207,10 @@ int compare_buffers(struct Buffer* b1, struct Buffer* b2) {
     }
     return 1;}
 
+unsigned int action_len(struct Action* action) {
+    return action->end-action->start;
+}
+
 int seen(struct Chunks* chunks, struct Buffer* data) {
     struct Chunk* chunk = chunks->pre_first->next;
     while (chunk) {
@@ -323,604 +325,604 @@ static char symbol_38[] = "struct Variables* variables;\n";
 static char symbol_39[] = "struct Buffer* input_buffer;\n";
 static char symbol_40[] = "unsigned int start;\n";
 static char symbol_41[] = "unsigned int end;\n";
-static char symbol_42[] = "unsigned int len;\n";
-static char symbol_43[] = "};\n";
-static char symbol_44[] = "\n";
-static char symbol_45[] = "struct Chunks {\n";
-static char symbol_46[] = "struct Chunk* pre_first;\n";
-static char symbol_47[] = "struct Chunk* last;\n";
-static char symbol_48[] = "};\n";
-static char symbol_49[] = "\n";
-static char symbol_50[] = "struct Chunk {\n";
-static char symbol_51[] = "struct Chunk* next;\n";
-static char symbol_52[] = "struct Buffer* data;\n";
-static char symbol_53[] = "struct Chunks* chunks;\n";
-static char symbol_54[] = "int indentation_delta;\n";
-static char symbol_55[] = "};\n";
-static char symbol_56[] = "\n";
-static char symbol_57[] = "struct Placeholders {\n";
-static char symbol_58[] = "struct Placeholder* pre_first;\n";
-static char symbol_59[] = "struct Placeholder* last;\n";
-static char symbol_60[] = "};\n";
-static char symbol_61[] = "\n";
-static char symbol_62[] = "struct Placeholder {\n";
-static char symbol_63[] = "struct Placeholder* next;\n";
-static char symbol_64[] = "struct Chunks* chunks;\n";
-static char symbol_65[] = "struct Action* action;\n";
-static char symbol_66[] = "};\n";
-static char symbol_67[] = "\n";
-static char symbol_68[] = "static char* arena;\n";
-static char symbol_69[] = "static unsigned int arena_limit;\n";
-static char symbol_70[] = "static unsigned int arena_pos;\n";
-static char symbol_71[] = "\n";
-static char symbol_72[] = "void* allocate(size_t size) {\n";
-static char symbol_73[] = "void* pointer = arena + arena_pos;\n";
-static char symbol_74[] = "arena_pos += size;\n";
-static char symbol_75[] = "if (arena_pos >= arena_limit) {\n";
-static char symbol_76[] = "fprintf(stderr, \"ERROR: out of memory\");\n";
-static char symbol_77[] = "exit(1);\n";
-static char symbol_78[] = "}\n";
-static char symbol_79[] = "return pointer;\n";
-static char symbol_80[] = "}\n";
-static char symbol_81[] = "\n";
-static char symbol_82[] = "struct ParseState* create_parse_state_from_stdin() {\n";
-static char symbol_83[] = "char* pos;\n";
-static char symbol_84[] = "struct ParseState* parse_state = allocate(sizeof(struct ParseState));\n";
-static char symbol_85[] = "parse_state->input_buffer = allocate(sizeof(struct Buffer));\n";
-static char symbol_86[] = "parse_state->input_buffer->buffer = allocate(1);\n";
-static char symbol_87[] = "parse_state->input_buffer->size = 1;\n";
-static char symbol_88[] = "parse_state->pos = 0;\n";
-static char symbol_89[] = "pos = parse_state->input_buffer->buffer;\n";
-static char symbol_90[] = "while (fgets(pos, 2, stdin)) {\n";
-static char symbol_91[] = "pos = allocate(1);\n";
-static char symbol_92[] = "parse_state->input_buffer->size++;\n";
-static char symbol_93[] = "}\n";
-static char symbol_94[] = "parse_state->input_buffer->size--;\n";
-static char symbol_95[] = "return parse_state;\n";
-static char symbol_96[] = "}\n";
-static char symbol_97[] = "\n";
-static char symbol_98[] = "struct Chunks* create_chunks() {\n";
-static char symbol_99[] = "struct Chunks* chunks = allocate(sizeof(struct Chunks));\n";
-static char symbol_100[] = "chunks->pre_first = allocate(sizeof(struct Chunk));\n";
-static char symbol_101[] = "chunks->pre_first->next = NULL;\n";
-static char symbol_102[] = "chunks->last = chunks->pre_first;\n";
-static char symbol_103[] = "return chunks;\n";
-static char symbol_104[] = "}\n";
-static char symbol_105[] = "\n";
-static char symbol_106[] = "struct Placeholders* create_placeholders() {\n";
-static char symbol_107[] = "struct Placeholders* placeholders = allocate(sizeof(struct Placeholders));\n";
-static char symbol_108[] = "placeholders->pre_first = allocate(sizeof(struct Placeholder));\n";
-static char symbol_109[] = "placeholders->pre_first->next = NULL;\n";
-static char symbol_110[] = "placeholders->last = placeholders->pre_first;\n";
-static char symbol_111[] = "return placeholders;\n";
-static char symbol_112[] = "}\n";
-static char symbol_113[] = "\n";
-static char symbol_114[] = "struct Runtime* create_runtime() {\n";
-static char symbol_115[] = "struct Runtime* runtime = allocate(sizeof(struct Runtime));\n";
-static char symbol_116[] = "runtime->main_chunks = create_chunks();\n";
-static char symbol_117[] = "runtime->current_chunks = runtime->main_chunks;\n";
-static char symbol_118[] = "runtime->placeholders = create_placeholders();\n";
-static char symbol_119[] = "return runtime;\n";
-static char symbol_120[] = "}\n";
-static char symbol_121[] = "\n";
-static char symbol_122[] = "struct Action* create_action(void (*function)(struct Runtime*, struct Variables*), struct Variables* variables, struct Buffer* input_buffer, unsigned int start, unsigned int end) {\n";
-static char symbol_123[] = "struct Action* action = allocate(sizeof(struct Action));\n";
-static char symbol_124[] = "action->function = function;\n";
-static char symbol_125[] = "action->variables = variables;\n";
-static char symbol_126[] = "action->input_buffer = input_buffer;\n";
-static char symbol_127[] = "action->start = start;\n";
-static char symbol_128[] = "action->end = end;\n";
-static char symbol_129[] = "action->len = end-start;\n";
-static char symbol_130[] = "return action;\n";
-static char symbol_131[] = "}\n";
-static char symbol_132[] = "\n";
-static char symbol_133[] = "struct Variables* create_variables() {\n";
-static char symbol_134[] = "struct Variables* variables = allocate(sizeof(struct Variables));\n";
-static char symbol_135[] = "variables->pre_first = allocate(sizeof(struct Variable));\n";
-static char symbol_136[] = "variables->pre_first->next = NULL;\n";
-static char symbol_137[] = "variables->last = variables->pre_first;\n";
-static char symbol_138[] = "return variables;\n";
-static char symbol_139[] = "}\n";
-static char symbol_140[] = "\n";
-static char symbol_141[] = "void append_data(struct Chunks* chunks, struct Buffer* data, int indentation_delta, struct Chunks* sub_chunks) {\n";
-static char symbol_142[] = "struct Chunk* chunk = allocate(sizeof(struct Chunk));\n";
-static char symbol_143[] = "chunk->next = NULL;\n";
-static char symbol_144[] = "chunk->data = data;\n";
-static char symbol_145[] = "chunk->chunks = sub_chunks;\n";
-static char symbol_146[] = "chunk->indentation_delta = indentation_delta;\n";
-static char symbol_147[] = "chunks->last->next = chunk;\n";
-static char symbol_148[] = "chunks->last = chunk;\n";
-static char symbol_149[] = "}\n";
-static char symbol_150[] = "\n";
-static char symbol_151[] = "struct Buffer* create_slice(struct Buffer* data, unsigned int start, unsigned int end) {\n";
-static char symbol_152[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
-static char symbol_153[] = "buffer->buffer = data->buffer;\n";
-static char symbol_154[] = "buffer->size = end-start;\n";
-static char symbol_155[] = "buffer->buffer += start;\n";
-static char symbol_156[] = "return buffer;\n";
-static char symbol_157[] = "}\n";
-static char symbol_158[] = "\n";
-static char symbol_159[] = "struct Buffer* buffer_from_cstring(char* data, unsigned int size) {\n";
-static char symbol_160[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
-static char symbol_161[] = "buffer->buffer = data;\n";
-static char symbol_162[] = "buffer->size = size;\n";
-static char symbol_163[] = "return buffer;\n";
-static char symbol_164[] = "}\n";
-static char symbol_165[] = "\n";
-static char symbol_166[] = "struct Buffer* buffer_from_integer(unsigned int value) {\n";
-static char symbol_167[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
-static char symbol_168[] = "buffer->buffer = allocate(20);\n";
-static char symbol_169[] = "sprintf(buffer->buffer, \"%d\", value);\n";
-static char symbol_170[] = "buffer->size = strlen(buffer->buffer);\n";
-static char symbol_171[] = "return buffer;\n";
-static char symbol_172[] = "}\n";
-static char symbol_173[] = "\n";
-static char symbol_174[] = "void run_action(struct Action* action, struct Runtime* runtime) {\n";
-static char symbol_175[] = "if (action->function) {\n";
-static char symbol_176[] = "action->function(runtime, action->variables);\n";
-static char symbol_177[] = "} else {\n";
-static char symbol_178[] = "if (action->variables) {\n";
-static char symbol_179[] = "struct Variable* variable = action->variables->pre_first->next;\n";
-static char symbol_180[] = "while (variable) {\n";
-static char symbol_181[] = "run_action(variable->action, runtime);\n";
-static char symbol_182[] = "variable = variable->next;\n";
-static char symbol_183[] = "}\n";
-static char symbol_184[] = "} else {\n";
-static char symbol_185[] = "append_data(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end), 0, NULL);\n";
+static char symbol_42[] = "};\n";
+static char symbol_43[] = "\n";
+static char symbol_44[] = "struct Chunks {\n";
+static char symbol_45[] = "struct Chunk* pre_first;\n";
+static char symbol_46[] = "struct Chunk* last;\n";
+static char symbol_47[] = "};\n";
+static char symbol_48[] = "\n";
+static char symbol_49[] = "struct Chunk {\n";
+static char symbol_50[] = "struct Chunk* next;\n";
+static char symbol_51[] = "struct Buffer* data;\n";
+static char symbol_52[] = "struct Chunks* chunks;\n";
+static char symbol_53[] = "int indentation_delta;\n";
+static char symbol_54[] = "};\n";
+static char symbol_55[] = "\n";
+static char symbol_56[] = "struct Placeholders {\n";
+static char symbol_57[] = "struct Placeholder* pre_first;\n";
+static char symbol_58[] = "struct Placeholder* last;\n";
+static char symbol_59[] = "};\n";
+static char symbol_60[] = "\n";
+static char symbol_61[] = "struct Placeholder {\n";
+static char symbol_62[] = "struct Placeholder* next;\n";
+static char symbol_63[] = "struct Chunks* chunks;\n";
+static char symbol_64[] = "struct Action* action;\n";
+static char symbol_65[] = "};\n";
+static char symbol_66[] = "\n";
+static char symbol_67[] = "static char* arena;\n";
+static char symbol_68[] = "static unsigned int arena_limit;\n";
+static char symbol_69[] = "static unsigned int arena_pos;\n";
+static char symbol_70[] = "\n";
+static char symbol_71[] = "void* allocate(size_t size) {\n";
+static char symbol_72[] = "void* pointer = arena + arena_pos;\n";
+static char symbol_73[] = "arena_pos += size;\n";
+static char symbol_74[] = "if (arena_pos >= arena_limit) {\n";
+static char symbol_75[] = "fprintf(stderr, \"ERROR: out of memory\");\n";
+static char symbol_76[] = "exit(1);\n";
+static char symbol_77[] = "}\n";
+static char symbol_78[] = "return pointer;\n";
+static char symbol_79[] = "}\n";
+static char symbol_80[] = "\n";
+static char symbol_81[] = "struct ParseState* create_parse_state_from_stdin() {\n";
+static char symbol_82[] = "char* pos;\n";
+static char symbol_83[] = "struct ParseState* parse_state = allocate(sizeof(struct ParseState));\n";
+static char symbol_84[] = "parse_state->input_buffer = allocate(sizeof(struct Buffer));\n";
+static char symbol_85[] = "parse_state->input_buffer->buffer = allocate(1);\n";
+static char symbol_86[] = "parse_state->input_buffer->size = 1;\n";
+static char symbol_87[] = "parse_state->pos = 0;\n";
+static char symbol_88[] = "pos = parse_state->input_buffer->buffer;\n";
+static char symbol_89[] = "while (fgets(pos, 2, stdin)) {\n";
+static char symbol_90[] = "pos = allocate(1);\n";
+static char symbol_91[] = "parse_state->input_buffer->size++;\n";
+static char symbol_92[] = "}\n";
+static char symbol_93[] = "parse_state->input_buffer->size--;\n";
+static char symbol_94[] = "return parse_state;\n";
+static char symbol_95[] = "}\n";
+static char symbol_96[] = "\n";
+static char symbol_97[] = "struct Chunks* create_chunks() {\n";
+static char symbol_98[] = "struct Chunks* chunks = allocate(sizeof(struct Chunks));\n";
+static char symbol_99[] = "chunks->pre_first = allocate(sizeof(struct Chunk));\n";
+static char symbol_100[] = "chunks->pre_first->next = NULL;\n";
+static char symbol_101[] = "chunks->last = chunks->pre_first;\n";
+static char symbol_102[] = "return chunks;\n";
+static char symbol_103[] = "}\n";
+static char symbol_104[] = "\n";
+static char symbol_105[] = "struct Placeholders* create_placeholders() {\n";
+static char symbol_106[] = "struct Placeholders* placeholders = allocate(sizeof(struct Placeholders));\n";
+static char symbol_107[] = "placeholders->pre_first = allocate(sizeof(struct Placeholder));\n";
+static char symbol_108[] = "placeholders->pre_first->next = NULL;\n";
+static char symbol_109[] = "placeholders->last = placeholders->pre_first;\n";
+static char symbol_110[] = "return placeholders;\n";
+static char symbol_111[] = "}\n";
+static char symbol_112[] = "\n";
+static char symbol_113[] = "struct Runtime* create_runtime() {\n";
+static char symbol_114[] = "struct Runtime* runtime = allocate(sizeof(struct Runtime));\n";
+static char symbol_115[] = "runtime->main_chunks = create_chunks();\n";
+static char symbol_116[] = "runtime->current_chunks = runtime->main_chunks;\n";
+static char symbol_117[] = "runtime->placeholders = create_placeholders();\n";
+static char symbol_118[] = "return runtime;\n";
+static char symbol_119[] = "}\n";
+static char symbol_120[] = "\n";
+static char symbol_121[] = "struct Action* create_action(void (*function)(struct Runtime*, struct Variables*), struct Variables* variables, struct Buffer* input_buffer, unsigned int start, unsigned int end) {\n";
+static char symbol_122[] = "struct Action* action = allocate(sizeof(struct Action));\n";
+static char symbol_123[] = "action->function = function;\n";
+static char symbol_124[] = "action->variables = variables;\n";
+static char symbol_125[] = "action->input_buffer = input_buffer;\n";
+static char symbol_126[] = "action->start = start;\n";
+static char symbol_127[] = "action->end = end;\n";
+static char symbol_128[] = "return action;\n";
+static char symbol_129[] = "}\n";
+static char symbol_130[] = "\n";
+static char symbol_131[] = "struct Variables* create_variables() {\n";
+static char symbol_132[] = "struct Variables* variables = allocate(sizeof(struct Variables));\n";
+static char symbol_133[] = "variables->pre_first = allocate(sizeof(struct Variable));\n";
+static char symbol_134[] = "variables->pre_first->next = NULL;\n";
+static char symbol_135[] = "variables->last = variables->pre_first;\n";
+static char symbol_136[] = "return variables;\n";
+static char symbol_137[] = "}\n";
+static char symbol_138[] = "\n";
+static char symbol_139[] = "void append_data(struct Chunks* chunks, struct Buffer* data, int indentation_delta, struct Chunks* sub_chunks) {\n";
+static char symbol_140[] = "struct Chunk* chunk = allocate(sizeof(struct Chunk));\n";
+static char symbol_141[] = "chunk->next = NULL;\n";
+static char symbol_142[] = "chunk->data = data;\n";
+static char symbol_143[] = "chunk->chunks = sub_chunks;\n";
+static char symbol_144[] = "chunk->indentation_delta = indentation_delta;\n";
+static char symbol_145[] = "chunks->last->next = chunk;\n";
+static char symbol_146[] = "chunks->last = chunk;\n";
+static char symbol_147[] = "}\n";
+static char symbol_148[] = "\n";
+static char symbol_149[] = "struct Buffer* create_slice(struct Buffer* data, unsigned int start, unsigned int end) {\n";
+static char symbol_150[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
+static char symbol_151[] = "buffer->buffer = data->buffer;\n";
+static char symbol_152[] = "buffer->size = end-start;\n";
+static char symbol_153[] = "buffer->buffer += start;\n";
+static char symbol_154[] = "return buffer;\n";
+static char symbol_155[] = "}\n";
+static char symbol_156[] = "\n";
+static char symbol_157[] = "struct Buffer* buffer_from_cstring(char* data, unsigned int size) {\n";
+static char symbol_158[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
+static char symbol_159[] = "buffer->buffer = data;\n";
+static char symbol_160[] = "buffer->size = size;\n";
+static char symbol_161[] = "return buffer;\n";
+static char symbol_162[] = "}\n";
+static char symbol_163[] = "\n";
+static char symbol_164[] = "struct Buffer* buffer_from_integer(unsigned int value) {\n";
+static char symbol_165[] = "struct Buffer* buffer = allocate(sizeof(struct Buffer));\n";
+static char symbol_166[] = "buffer->buffer = allocate(20);\n";
+static char symbol_167[] = "sprintf(buffer->buffer, \"%d\", value);\n";
+static char symbol_168[] = "buffer->size = strlen(buffer->buffer);\n";
+static char symbol_169[] = "return buffer;\n";
+static char symbol_170[] = "}\n";
+static char symbol_171[] = "\n";
+static char symbol_172[] = "void run_action(struct Action* action, struct Runtime* runtime) {\n";
+static char symbol_173[] = "if (action->function) {\n";
+static char symbol_174[] = "action->function(runtime, action->variables);\n";
+static char symbol_175[] = "} else {\n";
+static char symbol_176[] = "if (action->variables) {\n";
+static char symbol_177[] = "struct Variable* variable = action->variables->pre_first->next;\n";
+static char symbol_178[] = "while (variable) {\n";
+static char symbol_179[] = "run_action(variable->action, runtime);\n";
+static char symbol_180[] = "variable = variable->next;\n";
+static char symbol_181[] = "}\n";
+static char symbol_182[] = "} else {\n";
+static char symbol_183[] = "append_data(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end), 0, NULL);\n";
+static char symbol_184[] = "}\n";
+static char symbol_185[] = "}\n";
 static char symbol_186[] = "}\n";
-static char symbol_187[] = "}\n";
-static char symbol_188[] = "}\n";
-static char symbol_189[] = "\n";
-static char symbol_190[] = "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n";
-static char symbol_191[] = "int i;\n";
-static char symbol_192[] = "if (b1->size != b2->size) {\n";
-static char symbol_193[] = "return 0;\n";
-static char symbol_194[] = "}\n";
-static char symbol_195[] = "for (i=0; i<b1->size; i++) {\n";
-static char symbol_196[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
-static char symbol_197[] = "return 0;\n";
-static char symbol_198[] = "}\n";
+static char symbol_187[] = "\n";
+static char symbol_188[] = "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n";
+static char symbol_189[] = "int i;\n";
+static char symbol_190[] = "if (b1->size != b2->size) {\n";
+static char symbol_191[] = "return 0;\n";
+static char symbol_192[] = "}\n";
+static char symbol_193[] = "for (i=0; i<b1->size; i++) {\n";
+static char symbol_194[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
+static char symbol_195[] = "return 0;\n";
+static char symbol_196[] = "}\n";
+static char symbol_197[] = "}\n";
+static char symbol_198[] = "return 1;";
 static char symbol_199[] = "}\n";
-static char symbol_200[] = "return 1;";
-static char symbol_201[] = "}\n";
-static char symbol_202[] = "\n";
-static char symbol_203[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
-static char symbol_204[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_205[] = "while (chunk) {\n";
-static char symbol_206[] = "if (compare_buffers(chunk->data, data)) {\n";
-static char symbol_207[] = "return 1;\n";
-static char symbol_208[] = "}\n";
-static char symbol_209[] = "chunk = chunk->next;\n";
+static char symbol_200[] = "\n";
+static char symbol_201[] = "unsigned int action_len(struct Action* action) {\n";
+static char symbol_202[] = "return action->end-action->start;\n";
+static char symbol_203[] = "}\n";
+static char symbol_204[] = "\n";
+static char symbol_205[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
+static char symbol_206[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_207[] = "while (chunk) {\n";
+static char symbol_208[] = "if (compare_buffers(chunk->data, data)) {\n";
+static char symbol_209[] = "return 1;\n";
 static char symbol_210[] = "}\n";
-static char symbol_211[] = "return 0;\n";
+static char symbol_211[] = "chunk = chunk->next;\n";
 static char symbol_212[] = "}\n";
-static char symbol_213[] = "\n";
-static char symbol_214[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
-static char symbol_215[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
-static char symbol_216[] = "next_variable->next = NULL;\n";
-static char symbol_217[] = "next_variable->name = name;\n";
-static char symbol_218[] = "next_variable->action = action;\n";
-static char symbol_219[] = "variables->last->next = next_variable;\n";
-static char symbol_220[] = "variables->last = next_variable;\n";
-static char symbol_221[] = "}\n";
-static char symbol_222[] = "\n";
-static char symbol_223[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
-static char symbol_224[] = "struct Variable* variable = variables->pre_first->next;\n";
-static char symbol_225[] = "while (variable) {\n";
-static char symbol_226[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
-static char symbol_227[] = "return variable->action;\n";
-static char symbol_228[] = "} else {\n";
-static char symbol_229[] = "variable = variable->next;\n";
-static char symbol_230[] = "}\n";
-static char symbol_231[] = "}\n";
-static char symbol_232[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
-static char symbol_233[] = "exit(1);\n";
-static char symbol_234[] = "}\n";
-static char symbol_235[] = "\n";
-static char symbol_236[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
-static char symbol_237[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
-static char symbol_238[] = "next_placeholder->next = NULL;\n";
-static char symbol_239[] = "next_placeholder->chunks = chunks;\n";
-static char symbol_240[] = "next_placeholder->action = action;\n";
-static char symbol_241[] = "placeholders->last->next = next_placeholder;\n";
-static char symbol_242[] = "placeholders->last = next_placeholder;\n";
-static char symbol_243[] = "}\n";
-static char symbol_244[] = "\n";
-static char symbol_245[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
-static char symbol_246[] = "return value + amount;\n";
-static char symbol_247[] = "}\n";
-static char symbol_248[] = "\n";
-static char symbol_249[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
-static char symbol_250[] = "return a > b ? a : b;\n";
-static char symbol_251[] = "}\n";
-static char symbol_252[] = "\n";
-static char symbol_253[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
-static char symbol_254[] = "int i, j;\n";
-static char symbol_255[] = "if (chunks) {\n";
-static char symbol_256[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_257[] = "while (chunk) {\n";
-static char symbol_258[] = "*indent += chunk->indentation_delta;\n";
-static char symbol_259[] = "if (chunk->data) {\n";
-static char symbol_260[] = "for (i=0; i<chunk->data->size; i++) {\n";
-static char symbol_261[] = "if (*last_char == '\\n') {\n";
-static char symbol_262[] = "for (j=0; j<*indent; j++) {\n";
-static char symbol_263[] = "printf(\"    \");\n";
-static char symbol_264[] = "}\n";
-static char symbol_265[] = "}\n";
-static char symbol_266[] = "*last_char = chunk->data->buffer[i];\n";
-static char symbol_267[] = "putchar(*last_char);\n";
-static char symbol_268[] = "}\n";
-static char symbol_269[] = "}\n";
-static char symbol_270[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_271[] = "chunk = chunk->next;\n";
-static char symbol_272[] = "}\n";
-static char symbol_273[] = "}\n";
+static char symbol_213[] = "return 0;\n";
+static char symbol_214[] = "}\n";
+static char symbol_215[] = "\n";
+static char symbol_216[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
+static char symbol_217[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
+static char symbol_218[] = "next_variable->next = NULL;\n";
+static char symbol_219[] = "next_variable->name = name;\n";
+static char symbol_220[] = "next_variable->action = action;\n";
+static char symbol_221[] = "variables->last->next = next_variable;\n";
+static char symbol_222[] = "variables->last = next_variable;\n";
+static char symbol_223[] = "}\n";
+static char symbol_224[] = "\n";
+static char symbol_225[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
+static char symbol_226[] = "struct Variable* variable = variables->pre_first->next;\n";
+static char symbol_227[] = "while (variable) {\n";
+static char symbol_228[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
+static char symbol_229[] = "return variable->action;\n";
+static char symbol_230[] = "} else {\n";
+static char symbol_231[] = "variable = variable->next;\n";
+static char symbol_232[] = "}\n";
+static char symbol_233[] = "}\n";
+static char symbol_234[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
+static char symbol_235[] = "exit(1);\n";
+static char symbol_236[] = "}\n";
+static char symbol_237[] = "\n";
+static char symbol_238[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
+static char symbol_239[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
+static char symbol_240[] = "next_placeholder->next = NULL;\n";
+static char symbol_241[] = "next_placeholder->chunks = chunks;\n";
+static char symbol_242[] = "next_placeholder->action = action;\n";
+static char symbol_243[] = "placeholders->last->next = next_placeholder;\n";
+static char symbol_244[] = "placeholders->last = next_placeholder;\n";
+static char symbol_245[] = "}\n";
+static char symbol_246[] = "\n";
+static char symbol_247[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
+static char symbol_248[] = "return value + amount;\n";
+static char symbol_249[] = "}\n";
+static char symbol_250[] = "\n";
+static char symbol_251[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
+static char symbol_252[] = "return a > b ? a : b;\n";
+static char symbol_253[] = "}\n";
+static char symbol_254[] = "\n";
+static char symbol_255[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
+static char symbol_256[] = "int i, j;\n";
+static char symbol_257[] = "if (chunks) {\n";
+static char symbol_258[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_259[] = "while (chunk) {\n";
+static char symbol_260[] = "*indent += chunk->indentation_delta;\n";
+static char symbol_261[] = "if (chunk->data) {\n";
+static char symbol_262[] = "for (i=0; i<chunk->data->size; i++) {\n";
+static char symbol_263[] = "if (*last_char == '\\n') {\n";
+static char symbol_264[] = "for (j=0; j<*indent; j++) {\n";
+static char symbol_265[] = "printf(\"    \");\n";
+static char symbol_266[] = "}\n";
+static char symbol_267[] = "}\n";
+static char symbol_268[] = "*last_char = chunk->data->buffer[i];\n";
+static char symbol_269[] = "putchar(*last_char);\n";
+static char symbol_270[] = "}\n";
+static char symbol_271[] = "}\n";
+static char symbol_272[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_273[] = "chunk = chunk->next;\n";
 static char symbol_274[] = "}\n";
-static char symbol_275[] = "\n";
-static char symbol_276[] = "\n";
-static char symbol_277[] = "xs";
-static char symbol_278[] = "int main(void) {\n";
-static char symbol_279[] = "arena_limit = 2<<25;\n";
-static char symbol_280[] = "arena_pos = 0;\n";
-static char symbol_281[] = "arena = malloc(arena_limit);\n";
-static char symbol_282[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_283[] = "unsigned int input_pos = arena_pos;\n";
-static char symbol_284[] = "char last_char = '\\n';\n";
-static char symbol_285[] = "int indent = 0;\n";
-static char symbol_286[] = "unsigned int parse_pos;\n";
-static char symbol_287[] = "unsigned int parse_size;\n";
-static char symbol_288[] = "unsigned int codegen_size;\n";
-static char symbol_289[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_290[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_291[] = "struct Placeholder* placeholder;\n";
-static char symbol_292[] = "if (action == NULL) {\n";
-static char symbol_293[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_294[] = "exit(1);\n";
-static char symbol_295[] = "}\n";
-static char symbol_296[] = "parse_size = arena_pos - input_pos;\n";
-static char symbol_297[] = "parse_pos = arena_pos;\n";
-static char symbol_298[] = "run_action(action, runtime);\n";
-static char symbol_299[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_300[] = "while (placeholder) {\n";
-static char symbol_301[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_302[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_303[] = "placeholder = placeholder->next;\n";
-static char symbol_304[] = "}\n";
-static char symbol_305[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_306[] = "codegen_size = arena_pos - parse_pos;\n";
-static char symbol_307[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
-static char symbol_308[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
-static char symbol_309[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
-static char symbol_310[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
-static char symbol_311[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
-static char symbol_312[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n";
-static char symbol_313[] = "return 0;\n";
-static char symbol_314[] = "}\n";
-static char symbol_315[] = "x";
-static char symbol_316[] = "=";
-static char symbol_317[] = "y";
-static char symbol_318[] = ";";
-static char symbol_319[] = "struct Action* rule_";
-static char symbol_320[] = "x";
-static char symbol_321[] = "(struct ParseState* parse_state);\n";
-static char symbol_322[] = "struct Action* rule_";
-static char symbol_323[] = "x";
-static char symbol_324[] = "(struct ParseState* parse_state) {\n";
-static char symbol_325[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_326[] = "unsigned int action_start_pos;\n";
-static char symbol_327[] = "struct Action* _;\n";
-static char symbol_328[] = "y";
-static char symbol_329[] = "return NULL;\n";
-static char symbol_330[] = "}\n";
-static char symbol_331[] = "\n";
-static char symbol_332[] = "x";
-static char symbol_333[] = "xs";
-static char symbol_334[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_335[] = "x";
-static char symbol_336[] = "xs";
+static char symbol_275[] = "}\n";
+static char symbol_276[] = "}\n";
+static char symbol_277[] = "\n";
+static char symbol_278[] = "\n";
+static char symbol_279[] = "xs";
+static char symbol_280[] = "int main(void) {\n";
+static char symbol_281[] = "arena_limit = 2<<25;\n";
+static char symbol_282[] = "arena_pos = 0;\n";
+static char symbol_283[] = "arena = malloc(arena_limit);\n";
+static char symbol_284[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_285[] = "unsigned int input_pos = arena_pos;\n";
+static char symbol_286[] = "char last_char = '\\n';\n";
+static char symbol_287[] = "int indent = 0;\n";
+static char symbol_288[] = "unsigned int parse_pos;\n";
+static char symbol_289[] = "unsigned int parse_size;\n";
+static char symbol_290[] = "unsigned int codegen_size;\n";
+static char symbol_291[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_292[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_293[] = "struct Placeholder* placeholder;\n";
+static char symbol_294[] = "if (action == NULL) {\n";
+static char symbol_295[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_296[] = "exit(1);\n";
+static char symbol_297[] = "}\n";
+static char symbol_298[] = "parse_size = arena_pos - input_pos;\n";
+static char symbol_299[] = "parse_pos = arena_pos;\n";
+static char symbol_300[] = "run_action(action, runtime);\n";
+static char symbol_301[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_302[] = "while (placeholder) {\n";
+static char symbol_303[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_304[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_305[] = "placeholder = placeholder->next;\n";
+static char symbol_306[] = "}\n";
+static char symbol_307[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_308[] = "codegen_size = arena_pos - parse_pos;\n";
+static char symbol_309[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
+static char symbol_310[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
+static char symbol_311[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
+static char symbol_312[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
+static char symbol_313[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
+static char symbol_314[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n";
+static char symbol_315[] = "return 0;\n";
+static char symbol_316[] = "}\n";
+static char symbol_317[] = "x";
+static char symbol_318[] = "=";
+static char symbol_319[] = "y";
+static char symbol_320[] = ";";
+static char symbol_321[] = "struct Action* rule_";
+static char symbol_322[] = "x";
+static char symbol_323[] = "(struct ParseState* parse_state);\n";
+static char symbol_324[] = "struct Action* rule_";
+static char symbol_325[] = "x";
+static char symbol_326[] = "(struct ParseState* parse_state) {\n";
+static char symbol_327[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_328[] = "unsigned int action_start_pos;\n";
+static char symbol_329[] = "struct Action* _;\n";
+static char symbol_330[] = "y";
+static char symbol_331[] = "return NULL;\n";
+static char symbol_332[] = "}\n";
+static char symbol_333[] = "\n";
+static char symbol_334[] = "x";
+static char symbol_335[] = "xs";
+static char symbol_336[] = "or_backtrack_pos = parse_state->pos;\n";
 static char symbol_337[] = "x";
-static char symbol_338[] = "x";
-static char symbol_339[] = "|";
+static char symbol_338[] = "xs";
+static char symbol_339[] = "x";
 static char symbol_340[] = "x";
-static char symbol_341[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_342[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_343[] = "x";
-static char symbol_344[] = "x";
-static char symbol_345[] = "y";
+static char symbol_341[] = "|";
+static char symbol_342[] = "x";
+static char symbol_343[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_344[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_345[] = "x";
 static char symbol_346[] = "x";
-static char symbol_347[] = "if (_) {\n";
-static char symbol_348[] = "y";
-static char symbol_349[] = "}\n";
+static char symbol_347[] = "y";
+static char symbol_348[] = "x";
+static char symbol_349[] = "if (_) {\n";
 static char symbol_350[] = "y";
-static char symbol_351[] = "y";
-static char symbol_352[] = "!";
-static char symbol_353[] = "x";
-static char symbol_354[] = "unsigned int nlookahead_pos;\n";
-static char symbol_355[] = "unsigned int nlookahead_pos;\n";
-static char symbol_356[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_357[] = "x";
-static char symbol_358[] = "if (_ == NULL) {\n";
-static char symbol_359[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_360[] = "} else {\n";
-static char symbol_361[] = "_ = NULL;\n";
-static char symbol_362[] = "}\n";
-static char symbol_363[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_364[] = "&";
-static char symbol_365[] = "x";
-static char symbol_366[] = "unsigned int lookahead_pos;\n";
-static char symbol_367[] = "unsigned int lookahead_pos;\n";
-static char symbol_368[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_369[] = "x";
-static char symbol_370[] = "if (_ == NULL) {\n";
-static char symbol_371[] = "_ = NULL;\n";
-static char symbol_372[] = "} else {\n";
-static char symbol_373[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_374[] = "}\n";
-static char symbol_375[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_376[] = "x";
-static char symbol_377[] = "y";
+static char symbol_351[] = "}\n";
+static char symbol_352[] = "y";
+static char symbol_353[] = "y";
+static char symbol_354[] = "!";
+static char symbol_355[] = "x";
+static char symbol_356[] = "unsigned int nlookahead_pos;\n";
+static char symbol_357[] = "unsigned int nlookahead_pos;\n";
+static char symbol_358[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_359[] = "x";
+static char symbol_360[] = "if (_ == NULL) {\n";
+static char symbol_361[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_362[] = "} else {\n";
+static char symbol_363[] = "_ = NULL;\n";
+static char symbol_364[] = "}\n";
+static char symbol_365[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_366[] = "&";
+static char symbol_367[] = "x";
+static char symbol_368[] = "unsigned int lookahead_pos;\n";
+static char symbol_369[] = "unsigned int lookahead_pos;\n";
+static char symbol_370[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_371[] = "x";
+static char symbol_372[] = "if (_ == NULL) {\n";
+static char symbol_373[] = "_ = NULL;\n";
+static char symbol_374[] = "} else {\n";
+static char symbol_375[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_376[] = "}\n";
+static char symbol_377[] = "parse_state->pos = lookahead_pos;\n";
 static char symbol_378[] = "x";
 static char symbol_379[] = "y";
-static char symbol_380[] = ":";
-static char symbol_381[] = "x";
-static char symbol_382[] = "append_named_action(variables, ";
+static char symbol_380[] = "x";
+static char symbol_381[] = "y";
+static char symbol_382[] = ":";
 static char symbol_383[] = "x";
-static char symbol_384[] = ", _);\n";
+static char symbol_384[] = "append_named_action(variables, ";
 static char symbol_385[] = "x";
-static char symbol_386[] = "*";
-static char symbol_387[] = "struct Variables* star_variables;\n";
-static char symbol_388[] = "struct Variables* star_variables;\n";
-static char symbol_389[] = "unsigned int star_pos;\n";
-static char symbol_390[] = "unsigned int star_pos;\n";
-static char symbol_391[] = "unsigned int star_start_pos;\n";
-static char symbol_392[] = "unsigned int star_start_pos;\n";
-static char symbol_393[] = "star_variables = create_variables();\n";
-static char symbol_394[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_395[] = "while (1) {\n";
-static char symbol_396[] = "star_pos = parse_state->pos;\n";
-static char symbol_397[] = "x";
-static char symbol_398[] = "if (_ == NULL) {\n";
-static char symbol_399[] = "parse_state->pos = star_pos;\n";
-static char symbol_400[] = "break;\n";
-static char symbol_401[] = "}\n";
-static char symbol_402[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_386[] = ", _);\n";
+static char symbol_387[] = "x";
+static char symbol_388[] = "*";
+static char symbol_389[] = "struct Variables* star_variables;\n";
+static char symbol_390[] = "struct Variables* star_variables;\n";
+static char symbol_391[] = "unsigned int star_pos;\n";
+static char symbol_392[] = "unsigned int star_pos;\n";
+static char symbol_393[] = "unsigned int star_start_pos;\n";
+static char symbol_394[] = "unsigned int star_start_pos;\n";
+static char symbol_395[] = "star_variables = create_variables();\n";
+static char symbol_396[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_397[] = "while (1) {\n";
+static char symbol_398[] = "star_pos = parse_state->pos;\n";
+static char symbol_399[] = "x";
+static char symbol_400[] = "if (_ == NULL) {\n";
+static char symbol_401[] = "parse_state->pos = star_pos;\n";
+static char symbol_402[] = "break;\n";
 static char symbol_403[] = "}\n";
-static char symbol_404[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_405[] = "x";
-static char symbol_406[] = "x";
-static char symbol_407[] = "_";
+static char symbol_404[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_405[] = "}\n";
+static char symbol_406[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_407[] = "x";
 static char symbol_408[] = "x";
-static char symbol_409[] = "bitpattern <<= 1;\n";
-static char symbol_410[] = "bitmask <<= 1;\n";
-static char symbol_411[] = "x";
-static char symbol_412[] = "x";
+static char symbol_409[] = "_";
+static char symbol_410[] = "x";
+static char symbol_411[] = "bitpattern <<= 1;\n";
+static char symbol_412[] = "bitmask <<= 1;\n";
 static char symbol_413[] = "x";
-static char symbol_414[] = "bitmask |= 1;\n";
-static char symbol_415[] = "0";
-static char symbol_416[] = "1";
-static char symbol_417[] = "bitpattern |= 1;\n";
-static char symbol_418[] = "x";
-static char symbol_419[] = "_ = rule_";
+static char symbol_414[] = "x";
+static char symbol_415[] = "x";
+static char symbol_416[] = "bitmask |= 1;\n";
+static char symbol_417[] = "0";
+static char symbol_418[] = "1";
+static char symbol_419[] = "bitpattern |= 1;\n";
 static char symbol_420[] = "x";
-static char symbol_421[] = "(parse_state);\n";
-static char symbol_422[] = "0b";
-static char symbol_423[] = "xs";
-static char symbol_424[] = "unsigned char bitpattern;\n";
-static char symbol_425[] = "unsigned char bitpattern;\n";
-static char symbol_426[] = "unsigned char bitmask;\n";
-static char symbol_427[] = "unsigned char bitmask;\n";
-static char symbol_428[] = "bitpattern = 0;\n";
-static char symbol_429[] = "bitmask = 0;\n";
-static char symbol_430[] = "xs";
-static char symbol_431[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_432[] = "parse_state->pos += 1;\n";
-static char symbol_433[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_434[] = "} else {\n";
-static char symbol_435[] = "_ = NULL;\n";
-static char symbol_436[] = "}\n";
-static char symbol_437[] = ".";
-static char symbol_438[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_439[] = "parse_state->pos += 1;\n";
-static char symbol_440[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_441[] = "} else {\n";
-static char symbol_442[] = "_ = NULL;\n";
-static char symbol_443[] = "}\n";
-static char symbol_444[] = "x";
-static char symbol_445[] = "struct Buffer* data;\n";
-static char symbol_446[] = "struct Buffer* data;\n";
-static char symbol_447[] = "data = ";
-static char symbol_448[] = "x";
-static char symbol_449[] = ";\n";
-static char symbol_450[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_451[] = "parse_state->pos += data->size;\n";
-static char symbol_452[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_453[] = "} else {\n";
-static char symbol_454[] = "_ = NULL;\n";
-static char symbol_455[] = "}\n";
-static char symbol_456[] = "->";
-static char symbol_457[] = "{";
-static char symbol_458[] = "xs";
-static char symbol_459[] = "}";
-static char symbol_460[] = "void action_";
-static char symbol_461[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_462[] = "xs";
-static char symbol_463[] = "}\n";
-static char symbol_464[] = "\n";
-static char symbol_465[] = "struct Variables* variables;\n";
-static char symbol_466[] = "struct Variables* variables;\n";
-static char symbol_467[] = "variables = create_variables();\n";
-static char symbol_468[] = "variables = create_variables();\n";
-static char symbol_469[] = "return create_action(action_";
-static char symbol_470[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_471[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_472[] = "unseen(";
-static char symbol_473[] = "x";
-static char symbol_474[] = ") -> {";
-static char symbol_475[] = "ys";
-static char symbol_476[] = "}";
-static char symbol_477[] = "struct Action* action;\n";
-static char symbol_478[] = "struct Action* action;\n";
-static char symbol_479[] = "action = lookup_action(variables, ";
-static char symbol_480[] = "x";
-static char symbol_481[] = ");\n";
-static char symbol_482[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_483[] = "ys";
-static char symbol_484[] = "}\n";
-static char symbol_485[] = "unique(";
-static char symbol_486[] = "x";
-static char symbol_487[] = ")";
-static char symbol_488[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_489[] = "x";
-static char symbol_490[] = ")) {\n";
-static char symbol_491[] = "append_data(runtime->current_chunks, ";
-static char symbol_492[] = "x";
-static char symbol_493[] = ", 0, NULL);\n";
-static char symbol_494[] = "}\n";
-static char symbol_495[] = ">";
-static char symbol_496[] = "x";
-static char symbol_497[] = "{";
-static char symbol_498[] = "ys";
-static char symbol_499[] = "}";
-static char symbol_500[] = "struct Chunks* last_chunks;\n";
-static char symbol_501[] = "struct Chunks* last_chunks;\n";
-static char symbol_502[] = "struct Chunks* chunks;\n";
-static char symbol_503[] = "struct Chunks* chunks;\n";
-static char symbol_504[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_505[] = "chunks = runtime->named_chunks_";
-static char symbol_506[] = "x";
-static char symbol_507[] = ";\n";
-static char symbol_508[] = "runtime->current_chunks = chunks;\n";
-static char symbol_509[] = "ys";
-static char symbol_510[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_511[] = "<";
-static char symbol_512[] = "x";
-static char symbol_513[] = "struct Chunks* chunks;\n";
-static char symbol_514[] = "struct Chunks* chunks;\n";
-static char symbol_515[] = "chunks = create_chunks();\n";
-static char symbol_516[] = "runtime->named_chunks_";
-static char symbol_517[] = "x";
-static char symbol_518[] = " = chunks;\n";
-static char symbol_519[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_520[] = "x";
-static char symbol_521[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_421[] = "_ = rule_";
+static char symbol_422[] = "x";
+static char symbol_423[] = "(parse_state);\n";
+static char symbol_424[] = "0b";
+static char symbol_425[] = "xs";
+static char symbol_426[] = "unsigned char bitpattern;\n";
+static char symbol_427[] = "unsigned char bitpattern;\n";
+static char symbol_428[] = "unsigned char bitmask;\n";
+static char symbol_429[] = "unsigned char bitmask;\n";
+static char symbol_430[] = "bitpattern = 0;\n";
+static char symbol_431[] = "bitmask = 0;\n";
+static char symbol_432[] = "xs";
+static char symbol_433[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_434[] = "parse_state->pos += 1;\n";
+static char symbol_435[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_436[] = "} else {\n";
+static char symbol_437[] = "_ = NULL;\n";
+static char symbol_438[] = "}\n";
+static char symbol_439[] = ".";
+static char symbol_440[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_441[] = "parse_state->pos += 1;\n";
+static char symbol_442[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_443[] = "} else {\n";
+static char symbol_444[] = "_ = NULL;\n";
+static char symbol_445[] = "}\n";
+static char symbol_446[] = "x";
+static char symbol_447[] = "struct Buffer* data;\n";
+static char symbol_448[] = "struct Buffer* data;\n";
+static char symbol_449[] = "data = ";
+static char symbol_450[] = "x";
+static char symbol_451[] = ";\n";
+static char symbol_452[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_453[] = "parse_state->pos += data->size;\n";
+static char symbol_454[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_455[] = "} else {\n";
+static char symbol_456[] = "_ = NULL;\n";
+static char symbol_457[] = "}\n";
+static char symbol_458[] = "->";
+static char symbol_459[] = "{";
+static char symbol_460[] = "xs";
+static char symbol_461[] = "}";
+static char symbol_462[] = "void action_";
+static char symbol_463[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_464[] = "xs";
+static char symbol_465[] = "}\n";
+static char symbol_466[] = "\n";
+static char symbol_467[] = "struct Variables* variables;\n";
+static char symbol_468[] = "struct Variables* variables;\n";
+static char symbol_469[] = "variables = create_variables();\n";
+static char symbol_470[] = "variables = create_variables();\n";
+static char symbol_471[] = "return create_action(action_";
+static char symbol_472[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_473[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_474[] = "unseen(";
+static char symbol_475[] = "x";
+static char symbol_476[] = ") -> {";
+static char symbol_477[] = "ys";
+static char symbol_478[] = "}";
+static char symbol_479[] = "struct Action* action;\n";
+static char symbol_480[] = "struct Action* action;\n";
+static char symbol_481[] = "action = lookup_action(variables, ";
+static char symbol_482[] = "x";
+static char symbol_483[] = ");\n";
+static char symbol_484[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_485[] = "ys";
+static char symbol_486[] = "}\n";
+static char symbol_487[] = "unique(";
+static char symbol_488[] = "x";
+static char symbol_489[] = ")";
+static char symbol_490[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_491[] = "x";
+static char symbol_492[] = ")) {\n";
+static char symbol_493[] = "append_data(runtime->current_chunks, ";
+static char symbol_494[] = "x";
+static char symbol_495[] = ", 0, NULL);\n";
+static char symbol_496[] = "}\n";
+static char symbol_497[] = ">";
+static char symbol_498[] = "x";
+static char symbol_499[] = "{";
+static char symbol_500[] = "ys";
+static char symbol_501[] = "}";
+static char symbol_502[] = "struct Chunks* last_chunks;\n";
+static char symbol_503[] = "struct Chunks* last_chunks;\n";
+static char symbol_504[] = "struct Chunks* chunks;\n";
+static char symbol_505[] = "struct Chunks* chunks;\n";
+static char symbol_506[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_507[] = "chunks = runtime->named_chunks_";
+static char symbol_508[] = "x";
+static char symbol_509[] = ";\n";
+static char symbol_510[] = "runtime->current_chunks = chunks;\n";
+static char symbol_511[] = "ys";
+static char symbol_512[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_513[] = "<";
+static char symbol_514[] = "x";
+static char symbol_515[] = "struct Chunks* chunks;\n";
+static char symbol_516[] = "struct Chunks* chunks;\n";
+static char symbol_517[] = "chunks = create_chunks();\n";
+static char symbol_518[] = "runtime->named_chunks_";
+static char symbol_519[] = "x";
+static char symbol_520[] = " = chunks;\n";
+static char symbol_521[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_522[] = "x";
-static char symbol_523[] = "), 0, NULL);\n";
+static char symbol_523[] = "append_data(runtime->current_chunks, buffer_from_integer(";
 static char symbol_524[] = "x";
-static char symbol_525[] = "run_action(lookup_action(variables, ";
+static char symbol_525[] = "), 0, NULL);\n";
 static char symbol_526[] = "x";
-static char symbol_527[] = "), runtime);\n";
+static char symbol_527[] = "run_action(lookup_action(variables, ";
 static char symbol_528[] = "x";
-static char symbol_529[] = "void placeholder_";
-static char symbol_530[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_529[] = "), runtime);\n";
+static char symbol_530[] = "x";
 static char symbol_531[] = "void placeholder_";
-static char symbol_532[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_533[] = "x";
-static char symbol_534[] = "}\n";
-static char symbol_535[] = "\n";
-static char symbol_536[] = "struct Chunks* chunks;\n";
-static char symbol_537[] = "struct Chunks* chunks;\n";
-static char symbol_538[] = "chunks = create_chunks();\n";
-static char symbol_539[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_540[] = ", variables, NULL, 0, 0));\n";
-static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_542[] = "x";
-static char symbol_543[] = "append_data(runtime->current_chunks, ";
+static char symbol_532[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_533[] = "void placeholder_";
+static char symbol_534[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_535[] = "x";
+static char symbol_536[] = "}\n";
+static char symbol_537[] = "\n";
+static char symbol_538[] = "struct Chunks* chunks;\n";
+static char symbol_539[] = "struct Chunks* chunks;\n";
+static char symbol_540[] = "chunks = create_chunks();\n";
+static char symbol_541[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_542[] = ", variables, NULL, 0, 0));\n";
+static char symbol_543[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_544[] = "x";
-static char symbol_545[] = ", 0, NULL);\n";
-static char symbol_546[] = "#";
-static char symbol_547[] = "x";
-static char symbol_548[] = "(";
-static char symbol_549[] = "y";
-static char symbol_550[] = " ";
-static char symbol_551[] = "z";
-static char symbol_552[] = ")";
-static char symbol_553[] = "runtime->W_";
-static char symbol_554[] = "y";
-static char symbol_555[] = " = ";
-static char symbol_556[] = "x";
-static char symbol_557[] = "(runtime->W_";
-static char symbol_558[] = "y";
-static char symbol_559[] = " ? runtime->W_";
+static char symbol_545[] = "append_data(runtime->current_chunks, ";
+static char symbol_546[] = "x";
+static char symbol_547[] = ", 0, NULL);\n";
+static char symbol_548[] = "#";
+static char symbol_549[] = "x";
+static char symbol_550[] = "(";
+static char symbol_551[] = "y";
+static char symbol_552[] = " ";
+static char symbol_553[] = "z";
+static char symbol_554[] = ")";
+static char symbol_555[] = "runtime->W_";
+static char symbol_556[] = "y";
+static char symbol_557[] = " = ";
+static char symbol_558[] = "x";
+static char symbol_559[] = "(runtime->W_";
 static char symbol_560[] = "y";
-static char symbol_561[] = " : 0, ";
-static char symbol_562[] = "z";
-static char symbol_563[] = ");\n";
-static char symbol_564[] = ">";
-static char symbol_565[] = "xs";
-static char symbol_566[] = "<";
-static char symbol_567[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_568[] = "xs";
-static char symbol_569[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_570[] = "x";
-static char symbol_571[] = "x";
-static char symbol_572[] = "struct Chunks* named_chunks_";
+static char symbol_561[] = " ? runtime->W_";
+static char symbol_562[] = "y";
+static char symbol_563[] = " : 0, ";
+static char symbol_564[] = "z";
+static char symbol_565[] = ");\n";
+static char symbol_566[] = ">";
+static char symbol_567[] = "xs";
+static char symbol_568[] = "<";
+static char symbol_569[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_570[] = "xs";
+static char symbol_571[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_572[] = "x";
 static char symbol_573[] = "x";
-static char symbol_574[] = ";\n";
+static char symbol_574[] = "struct Chunks* named_chunks_";
 static char symbol_575[] = "x";
-static char symbol_576[] = "x";
+static char symbol_576[] = ";\n";
 static char symbol_577[] = "x";
-static char symbol_578[] = "0";
-static char symbol_579[] = "1";
-static char symbol_580[] = "2";
-static char symbol_581[] = "3";
-static char symbol_582[] = "4";
-static char symbol_583[] = "5";
-static char symbol_584[] = "6";
-static char symbol_585[] = "7";
-static char symbol_586[] = "8";
-static char symbol_587[] = "9";
-static char symbol_588[] = "{";
-static char symbol_589[] = "x";
-static char symbol_590[] = "*";
-static char symbol_591[] = "y";
-static char symbol_592[] = "}";
-static char symbol_593[] = "int i;\n";
-static char symbol_594[] = "int i;\n";
-static char symbol_595[] = "for (i=0; i < ";
-static char symbol_596[] = "y";
-static char symbol_597[] = "; i++) {\n";
-static char symbol_598[] = "append_data(runtime->current_chunks, ";
-static char symbol_599[] = "x";
-static char symbol_600[] = ", 0, NULL);\n";
-static char symbol_601[] = "}\n";
-static char symbol_602[] = "x";
-static char symbol_603[] = "(runtime->W_";
+static char symbol_578[] = "x";
+static char symbol_579[] = "x";
+static char symbol_580[] = "0";
+static char symbol_581[] = "1";
+static char symbol_582[] = "2";
+static char symbol_583[] = "3";
+static char symbol_584[] = "4";
+static char symbol_585[] = "5";
+static char symbol_586[] = "6";
+static char symbol_587[] = "7";
+static char symbol_588[] = "8";
+static char symbol_589[] = "9";
+static char symbol_590[] = "{";
+static char symbol_591[] = "x";
+static char symbol_592[] = "*";
+static char symbol_593[] = "y";
+static char symbol_594[] = "}";
+static char symbol_595[] = "int i;\n";
+static char symbol_596[] = "int i;\n";
+static char symbol_597[] = "for (i=0; i < ";
+static char symbol_598[] = "y";
+static char symbol_599[] = "; i++) {\n";
+static char symbol_600[] = "append_data(runtime->current_chunks, ";
+static char symbol_601[] = "x";
+static char symbol_602[] = ", 0, NULL);\n";
+static char symbol_603[] = "}\n";
 static char symbol_604[] = "x";
-static char symbol_605[] = " ? runtime->W_";
+static char symbol_605[] = "(runtime->W_";
 static char symbol_606[] = "x";
-static char symbol_607[] = " : 0)";
-static char symbol_608[] = "(";
-static char symbol_609[] = "x";
-static char symbol_610[] = "-";
-static char symbol_611[] = "y";
-static char symbol_612[] = ")";
-static char symbol_613[] = "((runtime->W_";
-static char symbol_614[] = "x";
-static char symbol_615[] = " ? runtime->W_";
+static char symbol_607[] = " ? runtime->W_";
+static char symbol_608[] = "x";
+static char symbol_609[] = " : 0)";
+static char symbol_610[] = "(";
+static char symbol_611[] = "x";
+static char symbol_612[] = "-";
+static char symbol_613[] = "y";
+static char symbol_614[] = ")";
+static char symbol_615[] = "((runtime->W_";
 static char symbol_616[] = "x";
-static char symbol_617[] = " : 0)-";
-static char symbol_618[] = "y";
-static char symbol_619[] = ")";
-static char symbol_620[] = "\"";
-static char symbol_621[] = "xs";
+static char symbol_617[] = " ? runtime->W_";
+static char symbol_618[] = "x";
+static char symbol_619[] = " : 0)-";
+static char symbol_620[] = "y";
+static char symbol_621[] = ")";
 static char symbol_622[] = "\"";
-static char symbol_623[] = "static char symbol_";
-static char symbol_624[] = "[] = \"";
-static char symbol_625[] = "xs";
-static char symbol_626[] = "\";\n";
-static char symbol_627[] = "buffer_from_cstring(symbol_";
-static char symbol_628[] = ", sizeof(symbol_";
-static char symbol_629[] = ")-1)";
-static char symbol_630[] = "x";
-static char symbol_631[] = "xs";
-static char symbol_632[] = "lookup_action(variables, ";
-static char symbol_633[] = "x";
-static char symbol_634[] = ")";
-static char symbol_635[] = "xs";
-static char symbol_636[] = ".";
-static char symbol_637[] = "x";
-static char symbol_638[] = "->";
-static char symbol_639[] = "x";
+static char symbol_623[] = "xs";
+static char symbol_624[] = "\"";
+static char symbol_625[] = "static char symbol_";
+static char symbol_626[] = "[] = \"";
+static char symbol_627[] = "xs";
+static char symbol_628[] = "\";\n";
+static char symbol_629[] = "buffer_from_cstring(symbol_";
+static char symbol_630[] = ", sizeof(symbol_";
+static char symbol_631[] = ")-1)";
+static char symbol_632[] = "x";
+static char symbol_633[] = "y";
+static char symbol_634[] = "y";
+static char symbol_635[] = "(lookup_action(variables, ";
+static char symbol_636[] = "x";
+static char symbol_637[] = "))";
+static char symbol_638[] = ".len";
+static char symbol_639[] = "action_len";
 static char symbol_640[] = "W[";
 static char symbol_641[] = "x";
 static char symbol_642[] = "]";
@@ -1105,61 +1107,61 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_39, sizeof(symbol_39)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_40, sizeof(symbol_40)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_41, sizeof(symbol_41)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_42, sizeof(symbol_42)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_42, sizeof(symbol_42)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_43, sizeof(symbol_43)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_44, sizeof(symbol_44)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_45, sizeof(symbol_45)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_45, sizeof(symbol_45)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_46, sizeof(symbol_46)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_47, sizeof(symbol_47)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_47, sizeof(symbol_47)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_48, sizeof(symbol_48)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_49, sizeof(symbol_49)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_50, sizeof(symbol_50)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_50, sizeof(symbol_50)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_51, sizeof(symbol_51)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_52, sizeof(symbol_52)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_53, sizeof(symbol_53)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_54, sizeof(symbol_54)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_54, sizeof(symbol_54)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_55, sizeof(symbol_55)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_56, sizeof(symbol_56)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_57, sizeof(symbol_57)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_57, sizeof(symbol_57)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_58, sizeof(symbol_58)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_59, sizeof(symbol_59)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_59, sizeof(symbol_59)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_60, sizeof(symbol_60)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_61, sizeof(symbol_61)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_62, sizeof(symbol_62)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_62, sizeof(symbol_62)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_63, sizeof(symbol_63)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_64, sizeof(symbol_64)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_65, sizeof(symbol_65)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_65, sizeof(symbol_65)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_66, sizeof(symbol_66)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_67, sizeof(symbol_67)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_68, sizeof(symbol_68)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_69, sizeof(symbol_69)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_70, sizeof(symbol_70)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_71, sizeof(symbol_71)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_72, sizeof(symbol_72)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_72, sizeof(symbol_72)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_73, sizeof(symbol_73)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_74, sizeof(symbol_74)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_75, sizeof(symbol_75)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_75, sizeof(symbol_75)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_76, sizeof(symbol_76)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_77, sizeof(symbol_77)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_77, sizeof(symbol_77)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_78, sizeof(symbol_78)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_79, sizeof(symbol_79)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_79, sizeof(symbol_79)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_80, sizeof(symbol_80)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_81, sizeof(symbol_81)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_82, sizeof(symbol_82)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_82, sizeof(symbol_82)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_83, sizeof(symbol_83)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_84, sizeof(symbol_84)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_85, sizeof(symbol_85)-1), 0, NULL);
@@ -1167,170 +1169,171 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_87, sizeof(symbol_87)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_88, sizeof(symbol_88)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_89, sizeof(symbol_89)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_90, sizeof(symbol_90)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_90, sizeof(symbol_90)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_91, sizeof(symbol_91)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_92, sizeof(symbol_92)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_92, sizeof(symbol_92)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_93, sizeof(symbol_93)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_94, sizeof(symbol_94)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_95, sizeof(symbol_95)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_95, sizeof(symbol_95)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_96, sizeof(symbol_96)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_97, sizeof(symbol_97)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_98, sizeof(symbol_98)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_98, sizeof(symbol_98)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_99, sizeof(symbol_99)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_100, sizeof(symbol_100)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_101, sizeof(symbol_101)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_102, sizeof(symbol_102)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_103, sizeof(symbol_103)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_103, sizeof(symbol_103)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_104, sizeof(symbol_104)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_105, sizeof(symbol_105)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_106, sizeof(symbol_106)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_106, sizeof(symbol_106)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_107, sizeof(symbol_107)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_108, sizeof(symbol_108)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_109, sizeof(symbol_109)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_110, sizeof(symbol_110)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_111, sizeof(symbol_111)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_111, sizeof(symbol_111)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_112, sizeof(symbol_112)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_113, sizeof(symbol_113)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_114, sizeof(symbol_114)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_114, sizeof(symbol_114)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_115, sizeof(symbol_115)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_116, sizeof(symbol_116)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_117, sizeof(symbol_117)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_118, sizeof(symbol_118)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_119, sizeof(symbol_119)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_119, sizeof(symbol_119)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_120, sizeof(symbol_120)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_121, sizeof(symbol_121)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_122, sizeof(symbol_122)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_122, sizeof(symbol_122)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_123, sizeof(symbol_123)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_124, sizeof(symbol_124)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_125, sizeof(symbol_125)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_126, sizeof(symbol_126)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_127, sizeof(symbol_127)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_128, sizeof(symbol_128)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_129, sizeof(symbol_129)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_130, sizeof(symbol_130)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_131, sizeof(symbol_131)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_132, sizeof(symbol_132)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_133, sizeof(symbol_133)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_134, sizeof(symbol_134)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_135, sizeof(symbol_135)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_136, sizeof(symbol_136)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_137, sizeof(symbol_137)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_138, sizeof(symbol_138)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_139, sizeof(symbol_139)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_140, sizeof(symbol_140)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_141, sizeof(symbol_141)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_142, sizeof(symbol_142)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_143, sizeof(symbol_143)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_144, sizeof(symbol_144)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_145, sizeof(symbol_145)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_146, sizeof(symbol_146)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_147, sizeof(symbol_147)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_148, sizeof(symbol_148)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_149, sizeof(symbol_149)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_150, sizeof(symbol_150)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_151, sizeof(symbol_151)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_152, sizeof(symbol_152)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_153, sizeof(symbol_153)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_154, sizeof(symbol_154)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_155, sizeof(symbol_155)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_156, sizeof(symbol_156)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_157, sizeof(symbol_157)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_158, sizeof(symbol_158)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_159, sizeof(symbol_159)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_160, sizeof(symbol_160)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_161, sizeof(symbol_161)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_162, sizeof(symbol_162)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_163, sizeof(symbol_163)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_164, sizeof(symbol_164)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_165, sizeof(symbol_165)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_166, sizeof(symbol_166)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_167, sizeof(symbol_167)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_168, sizeof(symbol_168)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_169, sizeof(symbol_169)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_170, sizeof(symbol_170)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_171, sizeof(symbol_171)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_172, sizeof(symbol_172)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_173, sizeof(symbol_173)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_174, sizeof(symbol_174)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_174, sizeof(symbol_174)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_175, sizeof(symbol_175)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_176, sizeof(symbol_176)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_177, sizeof(symbol_177)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_177, sizeof(symbol_177)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_178, sizeof(symbol_178)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_179, sizeof(symbol_179)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_180, sizeof(symbol_180)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_181, sizeof(symbol_181)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_182, sizeof(symbol_182)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_182, sizeof(symbol_182)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_183, sizeof(symbol_183)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_184, sizeof(symbol_184)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_185, sizeof(symbol_185)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_186, sizeof(symbol_186)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_187, sizeof(symbol_187)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_188, sizeof(symbol_188)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_189, sizeof(symbol_189)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_190, sizeof(symbol_190)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_191, sizeof(symbol_191)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_192, sizeof(symbol_192)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_193, sizeof(symbol_193)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_194, sizeof(symbol_194)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_195, sizeof(symbol_195)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_195, sizeof(symbol_195)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_196, sizeof(symbol_196)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_197, sizeof(symbol_197)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_197, sizeof(symbol_197)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_198, sizeof(symbol_198)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_199, sizeof(symbol_199)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_200, sizeof(symbol_200)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_201, sizeof(symbol_201)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_202, sizeof(symbol_202)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_203, sizeof(symbol_203)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_204, sizeof(symbol_204)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_205, sizeof(symbol_205)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_206, sizeof(symbol_206)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_207, sizeof(symbol_207)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_209, sizeof(symbol_209)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
@@ -1338,63 +1341,63 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_212, sizeof(symbol_212)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_213, sizeof(symbol_213)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_214, sizeof(symbol_214)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_215, sizeof(symbol_215)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_216, sizeof(symbol_216)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_217, sizeof(symbol_217)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_218, sizeof(symbol_218)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_219, sizeof(symbol_219)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_220, sizeof(symbol_220)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_221, sizeof(symbol_221)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_222, sizeof(symbol_222)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_223, sizeof(symbol_223)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_225, sizeof(symbol_225)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_226, sizeof(symbol_226)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_229, sizeof(symbol_229)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_230, sizeof(symbol_230)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_231, sizeof(symbol_231)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_232, sizeof(symbol_232)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_233, sizeof(symbol_233)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_233, sizeof(symbol_233)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_234, sizeof(symbol_234)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_235, sizeof(symbol_235)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_236, sizeof(symbol_236)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_237, sizeof(symbol_237)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_238, sizeof(symbol_238)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_239, sizeof(symbol_239)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_240, sizeof(symbol_240)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_241, sizeof(symbol_241)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_242, sizeof(symbol_242)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_243, sizeof(symbol_243)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_244, sizeof(symbol_244)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_245, sizeof(symbol_245)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_246, sizeof(symbol_246)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_247, sizeof(symbol_247)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_248, sizeof(symbol_248)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_249, sizeof(symbol_249)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_250, sizeof(symbol_250)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_251, sizeof(symbol_251)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_252, sizeof(symbol_252)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_253, sizeof(symbol_253)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_254, sizeof(symbol_254)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_255, sizeof(symbol_255)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
@@ -1405,49 +1408,50 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_259, sizeof(symbol_259)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_260, sizeof(symbol_260)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_261, sizeof(symbol_261)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_262, sizeof(symbol_262)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_272, sizeof(symbol_272)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_273, sizeof(symbol_273)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_281, sizeof(symbol_281)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_282, sizeof(symbol_282)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_283, sizeof(symbol_283)-1), 0, NULL);
@@ -1460,23 +1464,23 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
@@ -1485,8 +1489,10 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1495,35 +1501,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1531,25 +1537,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1558,22 +1564,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1582,33 +1588,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1620,51 +1626,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
-    }
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
     }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1674,13 +1680,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1689,39 +1695,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-    }
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
     }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1730,23 +1736,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1756,39 +1762,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1797,30 +1803,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1829,20 +1835,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
-    }
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
     }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1851,27 +1857,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1881,48 +1887,46 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_placeholderVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
@@ -1932,12 +1936,14 @@ void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1947,18 +1953,18 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1)), runtime);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
@@ -1967,37 +1973,37 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholderVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -2007,29 +2013,28 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2173,11 +2178,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_316, sizeof(symbol_316)-1);
+                data = buffer_from_cstring(symbol_318, sizeof(symbol_318)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2188,11 +2193,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_318, sizeof(symbol_318)-1);
+                                data = buffer_from_cstring(symbol_320, sizeof(symbol_320)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2227,7 +2232,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2241,7 +2246,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2262,7 +2267,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2299,7 +2304,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
+        data = buffer_from_cstring(symbol_341, sizeof(symbol_341)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2323,7 +2328,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2342,10 +2347,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2355,7 +2360,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2372,7 +2377,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_352, sizeof(symbol_352)-1);
+    data = buffer_from_cstring(symbol_354, sizeof(symbol_354)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2381,7 +2386,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2389,7 +2394,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
+    data = buffer_from_cstring(symbol_366, sizeof(symbol_366)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2398,7 +2403,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2407,10 +2412,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2428,7 +2433,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_380, sizeof(symbol_380)-1);
+    data = buffer_from_cstring(symbol_382, sizeof(symbol_382)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2437,7 +2442,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2460,9 +2465,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_386, sizeof(symbol_386)-1);
+        data = buffer_from_cstring(symbol_388, sizeof(symbol_388)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2477,7 +2482,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2501,7 +2506,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
+        data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2517,7 +2522,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2535,7 +2540,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2559,7 +2564,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_415, sizeof(symbol_415)-1);
+    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2572,7 +2577,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_416, sizeof(symbol_416)-1);
+    data = buffer_from_cstring(symbol_418, sizeof(symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2599,14 +2604,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
+    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2626,7 +2631,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2634,7 +2639,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_437, sizeof(symbol_437)-1);
+    data = buffer_from_cstring(symbol_439, sizeof(symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2648,7 +2653,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2670,7 +2675,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
+        data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2680,7 +2685,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
+                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2700,11 +2705,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2742,7 +2747,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2751,9 +2756,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+                data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2773,11 +2778,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+                            data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2798,7 +2803,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
+        data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2807,9 +2812,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
+                data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2827,7 +2832,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
+        data = buffer_from_cstring(symbol_497, sizeof(symbol_497)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2836,11 +2841,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_497, sizeof(symbol_497)-1);
+                    data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2860,11 +2865,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
+                                data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2886,7 +2891,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
+        data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2895,7 +2900,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2907,7 +2912,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2918,7 +2923,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2929,7 +2934,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2940,7 +2945,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2950,7 +2955,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_546, sizeof(symbol_546)-1);
+        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2959,9 +2964,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+                data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2970,9 +2975,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+                        data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2981,9 +2986,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
+                                data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3005,7 +3010,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+        data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3025,11 +3030,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+                    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3056,7 +3061,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3073,7 +3078,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3094,7 +3099,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3106,7 +3111,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
+    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3118,7 +3123,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+    data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3130,7 +3135,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
+    data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3142,7 +3147,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
+    data = buffer_from_cstring(symbol_584, sizeof(symbol_584)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3154,7 +3159,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
+    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3166,7 +3171,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_584, sizeof(symbol_584)-1);
+    data = buffer_from_cstring(symbol_586, sizeof(symbol_586)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3178,7 +3183,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
+    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3190,7 +3195,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_586, sizeof(symbol_586)-1);
+    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3202,7 +3207,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
+    data = buffer_from_cstring(symbol_589, sizeof(symbol_589)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3225,7 +3230,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3236,9 +3241,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+                data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3247,11 +3252,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+                            data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3281,14 +3286,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
+    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3297,9 +3302,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+            data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3308,9 +3313,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
+                    data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3340,7 +3345,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
+    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3360,9 +3365,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3381,30 +3386,16 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* star_variables;
-    unsigned int star_pos;
-    unsigned int star_start_pos;
     struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
     if (_) {
-        star_variables = create_variables();
-        star_start_pos = parse_state->pos;
-        while (1) {
-            star_pos = parse_state->pos;
-            _ = rule_nextname(parse_state);
-            if (_ == NULL) {
-                parse_state->pos = star_pos;
-                break;
-            }
-            append_named_action(star_variables, NULL, _);
-        }
-        _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
+        _ = rule_nextname(parse_state);
+        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3417,12 +3408,13 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     unsigned int action_start_pos;
     struct Action* _;
     struct Buffer* data;
+    unsigned int nlookahead_pos;
     struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
+    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3430,8 +3422,14 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
+        nlookahead_pos = parse_state->pos;
+        _ = rule_char(parse_state);
+        if (_ == NULL) {
+            _ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);
+        } else {
+            _ = NULL;
+        }
+        parse_state->pos = nlookahead_pos;
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index c18de34..964bfff 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -41,7 +41,6 @@ file = rule*:xs space !. -> {
         "struct Buffer* input_buffer;\n"
         "unsigned int start;\n"
         "unsigned int end;\n"
-        "unsigned int len;\n"
     < "};\n"
     "\n"
     "struct Chunks {\n" >
@@ -128,7 +127,6 @@ file = rule*:xs space !. -> {
         "action->input_buffer = input_buffer;\n"
         "action->start = start;\n"
         "action->end = end;\n"
-        "action->len = end-start;\n"
         "return action;\n"
     < "}\n"
     "\n"
@@ -202,6 +200,10 @@ file = rule*:xs space !. -> {
         "return 1;"
     < "}\n"
     "\n"
+    "unsigned int action_len(struct Action* action) {\n" >
+        "return action->end-action->start;\n"
+    < "}\n"
+    "\n"
     "int seen(struct Chunks* chunks, struct Buffer* data) {\n" >
         "struct Chunk* chunk = chunks->pre_first->next;\n"
         "while (chunk) {\n" >
@@ -633,11 +635,11 @@ string = '"' stringinner*:xs '"' -> {
     "buffer_from_cstring(symbol_" W[2] ", sizeof(symbol_" W[2] ")-1)"
 };
 
-dotname = nameAsSymbol:x nextname*:xs -> {
-    "lookup_action(variables, " x ")" xs
+dotname = nameAsSymbol:x nextname:y -> {
+    y "(lookup_action(variables, " x "))"
 };
 
-nextname = '.' name:x -> { "->" x };
+nextname = '.len' !char -> { "action_len" };
 
 wvar = 'W[' .:x ']' -> {
     >namedWs {

commit bb5c2b070d2665804191c7384952c09d15a207d5
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 11 07:00:19 2025 +0100

    More useful output of memory usage

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 7b0d430..dbbadd1 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -564,437 +564,447 @@ static char symbol_279[] = "arena_limit = 2<<25;\n";
 static char symbol_280[] = "arena_pos = 0;\n";
 static char symbol_281[] = "arena = malloc(arena_limit);\n";
 static char symbol_282[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_283[] = "char last_char = '\\n';\n";
-static char symbol_284[] = "int indent = 0;\n";
-static char symbol_285[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_286[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_287[] = "struct Placeholder* placeholder;\n";
-static char symbol_288[] = "if (action == NULL) {\n";
-static char symbol_289[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_290[] = "exit(1);\n";
-static char symbol_291[] = "}\n";
-static char symbol_292[] = "run_action(action, runtime);\n";
-static char symbol_293[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_294[] = "while (placeholder) {\n";
-static char symbol_295[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_296[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_297[] = "placeholder = placeholder->next;\n";
-static char symbol_298[] = "}\n";
-static char symbol_299[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_300[] = "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n";
-static char symbol_301[] = "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n";
-static char symbol_302[] = "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n";
-static char symbol_303[] = "return 0;\n";
+static char symbol_283[] = "unsigned int input_pos = arena_pos;\n";
+static char symbol_284[] = "char last_char = '\\n';\n";
+static char symbol_285[] = "int indent = 0;\n";
+static char symbol_286[] = "unsigned int parse_pos;\n";
+static char symbol_287[] = "unsigned int parse_size;\n";
+static char symbol_288[] = "unsigned int codegen_size;\n";
+static char symbol_289[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_290[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_291[] = "struct Placeholder* placeholder;\n";
+static char symbol_292[] = "if (action == NULL) {\n";
+static char symbol_293[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_294[] = "exit(1);\n";
+static char symbol_295[] = "}\n";
+static char symbol_296[] = "parse_size = arena_pos - input_pos;\n";
+static char symbol_297[] = "parse_pos = arena_pos;\n";
+static char symbol_298[] = "run_action(action, runtime);\n";
+static char symbol_299[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_300[] = "while (placeholder) {\n";
+static char symbol_301[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_302[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_303[] = "placeholder = placeholder->next;\n";
 static char symbol_304[] = "}\n";
-static char symbol_305[] = "x";
-static char symbol_306[] = "=";
-static char symbol_307[] = "y";
-static char symbol_308[] = ";";
-static char symbol_309[] = "struct Action* rule_";
-static char symbol_310[] = "x";
-static char symbol_311[] = "(struct ParseState* parse_state);\n";
-static char symbol_312[] = "struct Action* rule_";
-static char symbol_313[] = "x";
-static char symbol_314[] = "(struct ParseState* parse_state) {\n";
-static char symbol_315[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_316[] = "unsigned int action_start_pos;\n";
-static char symbol_317[] = "struct Action* _;\n";
-static char symbol_318[] = "y";
-static char symbol_319[] = "return NULL;\n";
-static char symbol_320[] = "}\n";
-static char symbol_321[] = "\n";
-static char symbol_322[] = "x";
-static char symbol_323[] = "xs";
-static char symbol_324[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_325[] = "x";
-static char symbol_326[] = "xs";
-static char symbol_327[] = "x";
-static char symbol_328[] = "x";
-static char symbol_329[] = "|";
-static char symbol_330[] = "x";
-static char symbol_331[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_332[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_333[] = "x";
-static char symbol_334[] = "x";
-static char symbol_335[] = "y";
-static char symbol_336[] = "x";
-static char symbol_337[] = "if (_) {\n";
-static char symbol_338[] = "y";
-static char symbol_339[] = "}\n";
-static char symbol_340[] = "y";
-static char symbol_341[] = "y";
-static char symbol_342[] = "!";
+static char symbol_305[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_306[] = "codegen_size = arena_pos - parse_pos;\n";
+static char symbol_307[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
+static char symbol_308[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
+static char symbol_309[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
+static char symbol_310[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
+static char symbol_311[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
+static char symbol_312[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n";
+static char symbol_313[] = "return 0;\n";
+static char symbol_314[] = "}\n";
+static char symbol_315[] = "x";
+static char symbol_316[] = "=";
+static char symbol_317[] = "y";
+static char symbol_318[] = ";";
+static char symbol_319[] = "struct Action* rule_";
+static char symbol_320[] = "x";
+static char symbol_321[] = "(struct ParseState* parse_state);\n";
+static char symbol_322[] = "struct Action* rule_";
+static char symbol_323[] = "x";
+static char symbol_324[] = "(struct ParseState* parse_state) {\n";
+static char symbol_325[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_326[] = "unsigned int action_start_pos;\n";
+static char symbol_327[] = "struct Action* _;\n";
+static char symbol_328[] = "y";
+static char symbol_329[] = "return NULL;\n";
+static char symbol_330[] = "}\n";
+static char symbol_331[] = "\n";
+static char symbol_332[] = "x";
+static char symbol_333[] = "xs";
+static char symbol_334[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_335[] = "x";
+static char symbol_336[] = "xs";
+static char symbol_337[] = "x";
+static char symbol_338[] = "x";
+static char symbol_339[] = "|";
+static char symbol_340[] = "x";
+static char symbol_341[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_342[] = "action_start_pos = parse_state->pos;\n";
 static char symbol_343[] = "x";
-static char symbol_344[] = "unsigned int nlookahead_pos;\n";
-static char symbol_345[] = "unsigned int nlookahead_pos;\n";
-static char symbol_346[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_347[] = "x";
-static char symbol_348[] = "if (_ == NULL) {\n";
-static char symbol_349[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_350[] = "} else {\n";
-static char symbol_351[] = "_ = NULL;\n";
-static char symbol_352[] = "}\n";
-static char symbol_353[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_354[] = "&";
-static char symbol_355[] = "x";
-static char symbol_356[] = "unsigned int lookahead_pos;\n";
-static char symbol_357[] = "unsigned int lookahead_pos;\n";
-static char symbol_358[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_359[] = "x";
-static char symbol_360[] = "if (_ == NULL) {\n";
+static char symbol_344[] = "x";
+static char symbol_345[] = "y";
+static char symbol_346[] = "x";
+static char symbol_347[] = "if (_) {\n";
+static char symbol_348[] = "y";
+static char symbol_349[] = "}\n";
+static char symbol_350[] = "y";
+static char symbol_351[] = "y";
+static char symbol_352[] = "!";
+static char symbol_353[] = "x";
+static char symbol_354[] = "unsigned int nlookahead_pos;\n";
+static char symbol_355[] = "unsigned int nlookahead_pos;\n";
+static char symbol_356[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_357[] = "x";
+static char symbol_358[] = "if (_ == NULL) {\n";
+static char symbol_359[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_360[] = "} else {\n";
 static char symbol_361[] = "_ = NULL;\n";
-static char symbol_362[] = "} else {\n";
-static char symbol_363[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_364[] = "}\n";
-static char symbol_365[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_366[] = "x";
-static char symbol_367[] = "y";
-static char symbol_368[] = "x";
-static char symbol_369[] = "y";
-static char symbol_370[] = ":";
-static char symbol_371[] = "x";
-static char symbol_372[] = "append_named_action(variables, ";
-static char symbol_373[] = "x";
-static char symbol_374[] = ", _);\n";
-static char symbol_375[] = "x";
-static char symbol_376[] = "*";
-static char symbol_377[] = "struct Variables* star_variables;\n";
-static char symbol_378[] = "struct Variables* star_variables;\n";
-static char symbol_379[] = "unsigned int star_pos;\n";
-static char symbol_380[] = "unsigned int star_pos;\n";
-static char symbol_381[] = "unsigned int star_start_pos;\n";
-static char symbol_382[] = "unsigned int star_start_pos;\n";
-static char symbol_383[] = "star_variables = create_variables();\n";
-static char symbol_384[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_385[] = "while (1) {\n";
-static char symbol_386[] = "star_pos = parse_state->pos;\n";
-static char symbol_387[] = "x";
-static char symbol_388[] = "if (_ == NULL) {\n";
-static char symbol_389[] = "parse_state->pos = star_pos;\n";
-static char symbol_390[] = "break;\n";
-static char symbol_391[] = "}\n";
-static char symbol_392[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_393[] = "}\n";
-static char symbol_394[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_395[] = "x";
-static char symbol_396[] = "x";
-static char symbol_397[] = "_";
-static char symbol_398[] = "x";
-static char symbol_399[] = "bitpattern <<= 1;\n";
-static char symbol_400[] = "bitmask <<= 1;\n";
-static char symbol_401[] = "x";
-static char symbol_402[] = "x";
-static char symbol_403[] = "x";
-static char symbol_404[] = "bitmask |= 1;\n";
-static char symbol_405[] = "0";
-static char symbol_406[] = "1";
-static char symbol_407[] = "bitpattern |= 1;\n";
+static char symbol_362[] = "}\n";
+static char symbol_363[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_364[] = "&";
+static char symbol_365[] = "x";
+static char symbol_366[] = "unsigned int lookahead_pos;\n";
+static char symbol_367[] = "unsigned int lookahead_pos;\n";
+static char symbol_368[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_369[] = "x";
+static char symbol_370[] = "if (_ == NULL) {\n";
+static char symbol_371[] = "_ = NULL;\n";
+static char symbol_372[] = "} else {\n";
+static char symbol_373[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_374[] = "}\n";
+static char symbol_375[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_376[] = "x";
+static char symbol_377[] = "y";
+static char symbol_378[] = "x";
+static char symbol_379[] = "y";
+static char symbol_380[] = ":";
+static char symbol_381[] = "x";
+static char symbol_382[] = "append_named_action(variables, ";
+static char symbol_383[] = "x";
+static char symbol_384[] = ", _);\n";
+static char symbol_385[] = "x";
+static char symbol_386[] = "*";
+static char symbol_387[] = "struct Variables* star_variables;\n";
+static char symbol_388[] = "struct Variables* star_variables;\n";
+static char symbol_389[] = "unsigned int star_pos;\n";
+static char symbol_390[] = "unsigned int star_pos;\n";
+static char symbol_391[] = "unsigned int star_start_pos;\n";
+static char symbol_392[] = "unsigned int star_start_pos;\n";
+static char symbol_393[] = "star_variables = create_variables();\n";
+static char symbol_394[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_395[] = "while (1) {\n";
+static char symbol_396[] = "star_pos = parse_state->pos;\n";
+static char symbol_397[] = "x";
+static char symbol_398[] = "if (_ == NULL) {\n";
+static char symbol_399[] = "parse_state->pos = star_pos;\n";
+static char symbol_400[] = "break;\n";
+static char symbol_401[] = "}\n";
+static char symbol_402[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_403[] = "}\n";
+static char symbol_404[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_405[] = "x";
+static char symbol_406[] = "x";
+static char symbol_407[] = "_";
 static char symbol_408[] = "x";
-static char symbol_409[] = "_ = rule_";
-static char symbol_410[] = "x";
-static char symbol_411[] = "(parse_state);\n";
-static char symbol_412[] = "0b";
-static char symbol_413[] = "xs";
-static char symbol_414[] = "unsigned char bitpattern;\n";
-static char symbol_415[] = "unsigned char bitpattern;\n";
-static char symbol_416[] = "unsigned char bitmask;\n";
-static char symbol_417[] = "unsigned char bitmask;\n";
-static char symbol_418[] = "bitpattern = 0;\n";
-static char symbol_419[] = "bitmask = 0;\n";
-static char symbol_420[] = "xs";
-static char symbol_421[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_422[] = "parse_state->pos += 1;\n";
-static char symbol_423[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_424[] = "} else {\n";
-static char symbol_425[] = "_ = NULL;\n";
-static char symbol_426[] = "}\n";
-static char symbol_427[] = ".";
-static char symbol_428[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_429[] = "parse_state->pos += 1;\n";
-static char symbol_430[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_431[] = "} else {\n";
-static char symbol_432[] = "_ = NULL;\n";
-static char symbol_433[] = "}\n";
-static char symbol_434[] = "x";
-static char symbol_435[] = "struct Buffer* data;\n";
-static char symbol_436[] = "struct Buffer* data;\n";
-static char symbol_437[] = "data = ";
-static char symbol_438[] = "x";
-static char symbol_439[] = ";\n";
-static char symbol_440[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_441[] = "parse_state->pos += data->size;\n";
-static char symbol_442[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_443[] = "} else {\n";
-static char symbol_444[] = "_ = NULL;\n";
-static char symbol_445[] = "}\n";
-static char symbol_446[] = "->";
-static char symbol_447[] = "{";
-static char symbol_448[] = "xs";
-static char symbol_449[] = "}";
-static char symbol_450[] = "void action_";
-static char symbol_451[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_452[] = "xs";
-static char symbol_453[] = "}\n";
-static char symbol_454[] = "\n";
-static char symbol_455[] = "struct Variables* variables;\n";
-static char symbol_456[] = "struct Variables* variables;\n";
-static char symbol_457[] = "variables = create_variables();\n";
-static char symbol_458[] = "variables = create_variables();\n";
-static char symbol_459[] = "return create_action(action_";
-static char symbol_460[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_461[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_462[] = "unseen(";
-static char symbol_463[] = "x";
-static char symbol_464[] = ") -> {";
-static char symbol_465[] = "ys";
-static char symbol_466[] = "}";
-static char symbol_467[] = "struct Action* action;\n";
-static char symbol_468[] = "struct Action* action;\n";
-static char symbol_469[] = "action = lookup_action(variables, ";
-static char symbol_470[] = "x";
-static char symbol_471[] = ");\n";
-static char symbol_472[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_473[] = "ys";
-static char symbol_474[] = "}\n";
-static char symbol_475[] = "unique(";
-static char symbol_476[] = "x";
-static char symbol_477[] = ")";
-static char symbol_478[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_479[] = "x";
-static char symbol_480[] = ")) {\n";
-static char symbol_481[] = "append_data(runtime->current_chunks, ";
-static char symbol_482[] = "x";
-static char symbol_483[] = ", 0, NULL);\n";
+static char symbol_409[] = "bitpattern <<= 1;\n";
+static char symbol_410[] = "bitmask <<= 1;\n";
+static char symbol_411[] = "x";
+static char symbol_412[] = "x";
+static char symbol_413[] = "x";
+static char symbol_414[] = "bitmask |= 1;\n";
+static char symbol_415[] = "0";
+static char symbol_416[] = "1";
+static char symbol_417[] = "bitpattern |= 1;\n";
+static char symbol_418[] = "x";
+static char symbol_419[] = "_ = rule_";
+static char symbol_420[] = "x";
+static char symbol_421[] = "(parse_state);\n";
+static char symbol_422[] = "0b";
+static char symbol_423[] = "xs";
+static char symbol_424[] = "unsigned char bitpattern;\n";
+static char symbol_425[] = "unsigned char bitpattern;\n";
+static char symbol_426[] = "unsigned char bitmask;\n";
+static char symbol_427[] = "unsigned char bitmask;\n";
+static char symbol_428[] = "bitpattern = 0;\n";
+static char symbol_429[] = "bitmask = 0;\n";
+static char symbol_430[] = "xs";
+static char symbol_431[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_432[] = "parse_state->pos += 1;\n";
+static char symbol_433[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_434[] = "} else {\n";
+static char symbol_435[] = "_ = NULL;\n";
+static char symbol_436[] = "}\n";
+static char symbol_437[] = ".";
+static char symbol_438[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_439[] = "parse_state->pos += 1;\n";
+static char symbol_440[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_441[] = "} else {\n";
+static char symbol_442[] = "_ = NULL;\n";
+static char symbol_443[] = "}\n";
+static char symbol_444[] = "x";
+static char symbol_445[] = "struct Buffer* data;\n";
+static char symbol_446[] = "struct Buffer* data;\n";
+static char symbol_447[] = "data = ";
+static char symbol_448[] = "x";
+static char symbol_449[] = ";\n";
+static char symbol_450[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_451[] = "parse_state->pos += data->size;\n";
+static char symbol_452[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_453[] = "} else {\n";
+static char symbol_454[] = "_ = NULL;\n";
+static char symbol_455[] = "}\n";
+static char symbol_456[] = "->";
+static char symbol_457[] = "{";
+static char symbol_458[] = "xs";
+static char symbol_459[] = "}";
+static char symbol_460[] = "void action_";
+static char symbol_461[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_462[] = "xs";
+static char symbol_463[] = "}\n";
+static char symbol_464[] = "\n";
+static char symbol_465[] = "struct Variables* variables;\n";
+static char symbol_466[] = "struct Variables* variables;\n";
+static char symbol_467[] = "variables = create_variables();\n";
+static char symbol_468[] = "variables = create_variables();\n";
+static char symbol_469[] = "return create_action(action_";
+static char symbol_470[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_471[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_472[] = "unseen(";
+static char symbol_473[] = "x";
+static char symbol_474[] = ") -> {";
+static char symbol_475[] = "ys";
+static char symbol_476[] = "}";
+static char symbol_477[] = "struct Action* action;\n";
+static char symbol_478[] = "struct Action* action;\n";
+static char symbol_479[] = "action = lookup_action(variables, ";
+static char symbol_480[] = "x";
+static char symbol_481[] = ");\n";
+static char symbol_482[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_483[] = "ys";
 static char symbol_484[] = "}\n";
-static char symbol_485[] = ">";
+static char symbol_485[] = "unique(";
 static char symbol_486[] = "x";
-static char symbol_487[] = "{";
-static char symbol_488[] = "ys";
-static char symbol_489[] = "}";
-static char symbol_490[] = "struct Chunks* last_chunks;\n";
-static char symbol_491[] = "struct Chunks* last_chunks;\n";
-static char symbol_492[] = "struct Chunks* chunks;\n";
-static char symbol_493[] = "struct Chunks* chunks;\n";
-static char symbol_494[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_495[] = "chunks = runtime->named_chunks_";
+static char symbol_487[] = ")";
+static char symbol_488[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_489[] = "x";
+static char symbol_490[] = ")) {\n";
+static char symbol_491[] = "append_data(runtime->current_chunks, ";
+static char symbol_492[] = "x";
+static char symbol_493[] = ", 0, NULL);\n";
+static char symbol_494[] = "}\n";
+static char symbol_495[] = ">";
 static char symbol_496[] = "x";
-static char symbol_497[] = ";\n";
-static char symbol_498[] = "runtime->current_chunks = chunks;\n";
-static char symbol_499[] = "ys";
-static char symbol_500[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_501[] = "<";
-static char symbol_502[] = "x";
+static char symbol_497[] = "{";
+static char symbol_498[] = "ys";
+static char symbol_499[] = "}";
+static char symbol_500[] = "struct Chunks* last_chunks;\n";
+static char symbol_501[] = "struct Chunks* last_chunks;\n";
+static char symbol_502[] = "struct Chunks* chunks;\n";
 static char symbol_503[] = "struct Chunks* chunks;\n";
-static char symbol_504[] = "struct Chunks* chunks;\n";
-static char symbol_505[] = "chunks = create_chunks();\n";
-static char symbol_506[] = "runtime->named_chunks_";
-static char symbol_507[] = "x";
-static char symbol_508[] = " = chunks;\n";
-static char symbol_509[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_510[] = "x";
-static char symbol_511[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_504[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_505[] = "chunks = runtime->named_chunks_";
+static char symbol_506[] = "x";
+static char symbol_507[] = ";\n";
+static char symbol_508[] = "runtime->current_chunks = chunks;\n";
+static char symbol_509[] = "ys";
+static char symbol_510[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_511[] = "<";
 static char symbol_512[] = "x";
-static char symbol_513[] = "), 0, NULL);\n";
-static char symbol_514[] = "x";
-static char symbol_515[] = "run_action(lookup_action(variables, ";
-static char symbol_516[] = "x";
-static char symbol_517[] = "), runtime);\n";
-static char symbol_518[] = "x";
-static char symbol_519[] = "void placeholder_";
-static char symbol_520[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_521[] = "void placeholder_";
-static char symbol_522[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_523[] = "x";
-static char symbol_524[] = "}\n";
-static char symbol_525[] = "\n";
-static char symbol_526[] = "struct Chunks* chunks;\n";
-static char symbol_527[] = "struct Chunks* chunks;\n";
-static char symbol_528[] = "chunks = create_chunks();\n";
-static char symbol_529[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_530[] = ", variables, NULL, 0, 0));\n";
-static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_532[] = "x";
-static char symbol_533[] = "append_data(runtime->current_chunks, ";
-static char symbol_534[] = "x";
-static char symbol_535[] = ", 0, NULL);\n";
-static char symbol_536[] = "#";
-static char symbol_537[] = "x";
-static char symbol_538[] = "(";
-static char symbol_539[] = "y";
-static char symbol_540[] = " ";
-static char symbol_541[] = "z";
-static char symbol_542[] = ")";
-static char symbol_543[] = "runtime->W_";
-static char symbol_544[] = "y";
-static char symbol_545[] = " = ";
-static char symbol_546[] = "x";
-static char symbol_547[] = "(runtime->W_";
-static char symbol_548[] = "y";
-static char symbol_549[] = " ? runtime->W_";
-static char symbol_550[] = "y";
-static char symbol_551[] = " : 0, ";
-static char symbol_552[] = "z";
-static char symbol_553[] = ");\n";
-static char symbol_554[] = ">";
-static char symbol_555[] = "xs";
-static char symbol_556[] = "<";
-static char symbol_557[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_558[] = "xs";
-static char symbol_559[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_560[] = "x";
-static char symbol_561[] = "x";
-static char symbol_562[] = "struct Chunks* named_chunks_";
-static char symbol_563[] = "x";
-static char symbol_564[] = ";\n";
-static char symbol_565[] = "x";
-static char symbol_566[] = "x";
-static char symbol_567[] = "x";
-static char symbol_568[] = "0";
-static char symbol_569[] = "1";
-static char symbol_570[] = "2";
-static char symbol_571[] = "3";
-static char symbol_572[] = "4";
-static char symbol_573[] = "5";
-static char symbol_574[] = "6";
-static char symbol_575[] = "7";
-static char symbol_576[] = "8";
-static char symbol_577[] = "9";
-static char symbol_578[] = "{";
-static char symbol_579[] = "x";
-static char symbol_580[] = "*";
-static char symbol_581[] = "y";
-static char symbol_582[] = "}";
-static char symbol_583[] = "int i;\n";
-static char symbol_584[] = "int i;\n";
-static char symbol_585[] = "for (i=0; i < ";
-static char symbol_586[] = "y";
-static char symbol_587[] = "; i++) {\n";
-static char symbol_588[] = "append_data(runtime->current_chunks, ";
+static char symbol_513[] = "struct Chunks* chunks;\n";
+static char symbol_514[] = "struct Chunks* chunks;\n";
+static char symbol_515[] = "chunks = create_chunks();\n";
+static char symbol_516[] = "runtime->named_chunks_";
+static char symbol_517[] = "x";
+static char symbol_518[] = " = chunks;\n";
+static char symbol_519[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_520[] = "x";
+static char symbol_521[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_522[] = "x";
+static char symbol_523[] = "), 0, NULL);\n";
+static char symbol_524[] = "x";
+static char symbol_525[] = "run_action(lookup_action(variables, ";
+static char symbol_526[] = "x";
+static char symbol_527[] = "), runtime);\n";
+static char symbol_528[] = "x";
+static char symbol_529[] = "void placeholder_";
+static char symbol_530[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_531[] = "void placeholder_";
+static char symbol_532[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_533[] = "x";
+static char symbol_534[] = "}\n";
+static char symbol_535[] = "\n";
+static char symbol_536[] = "struct Chunks* chunks;\n";
+static char symbol_537[] = "struct Chunks* chunks;\n";
+static char symbol_538[] = "chunks = create_chunks();\n";
+static char symbol_539[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_540[] = ", variables, NULL, 0, 0));\n";
+static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_542[] = "x";
+static char symbol_543[] = "append_data(runtime->current_chunks, ";
+static char symbol_544[] = "x";
+static char symbol_545[] = ", 0, NULL);\n";
+static char symbol_546[] = "#";
+static char symbol_547[] = "x";
+static char symbol_548[] = "(";
+static char symbol_549[] = "y";
+static char symbol_550[] = " ";
+static char symbol_551[] = "z";
+static char symbol_552[] = ")";
+static char symbol_553[] = "runtime->W_";
+static char symbol_554[] = "y";
+static char symbol_555[] = " = ";
+static char symbol_556[] = "x";
+static char symbol_557[] = "(runtime->W_";
+static char symbol_558[] = "y";
+static char symbol_559[] = " ? runtime->W_";
+static char symbol_560[] = "y";
+static char symbol_561[] = " : 0, ";
+static char symbol_562[] = "z";
+static char symbol_563[] = ");\n";
+static char symbol_564[] = ">";
+static char symbol_565[] = "xs";
+static char symbol_566[] = "<";
+static char symbol_567[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_568[] = "xs";
+static char symbol_569[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_570[] = "x";
+static char symbol_571[] = "x";
+static char symbol_572[] = "struct Chunks* named_chunks_";
+static char symbol_573[] = "x";
+static char symbol_574[] = ";\n";
+static char symbol_575[] = "x";
+static char symbol_576[] = "x";
+static char symbol_577[] = "x";
+static char symbol_578[] = "0";
+static char symbol_579[] = "1";
+static char symbol_580[] = "2";
+static char symbol_581[] = "3";
+static char symbol_582[] = "4";
+static char symbol_583[] = "5";
+static char symbol_584[] = "6";
+static char symbol_585[] = "7";
+static char symbol_586[] = "8";
+static char symbol_587[] = "9";
+static char symbol_588[] = "{";
 static char symbol_589[] = "x";
-static char symbol_590[] = ", 0, NULL);\n";
-static char symbol_591[] = "}\n";
-static char symbol_592[] = "x";
-static char symbol_593[] = "(runtime->W_";
-static char symbol_594[] = "x";
-static char symbol_595[] = " ? runtime->W_";
-static char symbol_596[] = "x";
-static char symbol_597[] = " : 0)";
-static char symbol_598[] = "(";
+static char symbol_590[] = "*";
+static char symbol_591[] = "y";
+static char symbol_592[] = "}";
+static char symbol_593[] = "int i;\n";
+static char symbol_594[] = "int i;\n";
+static char symbol_595[] = "for (i=0; i < ";
+static char symbol_596[] = "y";
+static char symbol_597[] = "; i++) {\n";
+static char symbol_598[] = "append_data(runtime->current_chunks, ";
 static char symbol_599[] = "x";
-static char symbol_600[] = "-";
-static char symbol_601[] = "y";
-static char symbol_602[] = ")";
-static char symbol_603[] = "((runtime->W_";
+static char symbol_600[] = ", 0, NULL);\n";
+static char symbol_601[] = "}\n";
+static char symbol_602[] = "x";
+static char symbol_603[] = "(runtime->W_";
 static char symbol_604[] = "x";
 static char symbol_605[] = " ? runtime->W_";
 static char symbol_606[] = "x";
-static char symbol_607[] = " : 0)-";
-static char symbol_608[] = "y";
-static char symbol_609[] = ")";
-static char symbol_610[] = "\"";
-static char symbol_611[] = "xs";
-static char symbol_612[] = "\"";
-static char symbol_613[] = "static char symbol_";
-static char symbol_614[] = "[] = \"";
-static char symbol_615[] = "xs";
-static char symbol_616[] = "\";\n";
-static char symbol_617[] = "buffer_from_cstring(symbol_";
-static char symbol_618[] = ", sizeof(symbol_";
-static char symbol_619[] = ")-1)";
-static char symbol_620[] = "x";
+static char symbol_607[] = " : 0)";
+static char symbol_608[] = "(";
+static char symbol_609[] = "x";
+static char symbol_610[] = "-";
+static char symbol_611[] = "y";
+static char symbol_612[] = ")";
+static char symbol_613[] = "((runtime->W_";
+static char symbol_614[] = "x";
+static char symbol_615[] = " ? runtime->W_";
+static char symbol_616[] = "x";
+static char symbol_617[] = " : 0)-";
+static char symbol_618[] = "y";
+static char symbol_619[] = ")";
+static char symbol_620[] = "\"";
 static char symbol_621[] = "xs";
-static char symbol_622[] = "lookup_action(variables, ";
-static char symbol_623[] = "x";
-static char symbol_624[] = ")";
+static char symbol_622[] = "\"";
+static char symbol_623[] = "static char symbol_";
+static char symbol_624[] = "[] = \"";
 static char symbol_625[] = "xs";
-static char symbol_626[] = ".";
-static char symbol_627[] = "x";
-static char symbol_628[] = "->";
-static char symbol_629[] = "x";
-static char symbol_630[] = "W[";
-static char symbol_631[] = "x";
-static char symbol_632[] = "]";
+static char symbol_626[] = "\";\n";
+static char symbol_627[] = "buffer_from_cstring(symbol_";
+static char symbol_628[] = ", sizeof(symbol_";
+static char symbol_629[] = ")-1)";
+static char symbol_630[] = "x";
+static char symbol_631[] = "xs";
+static char symbol_632[] = "lookup_action(variables, ";
 static char symbol_633[] = "x";
-static char symbol_634[] = "unsigned int W_";
-static char symbol_635[] = "x";
-static char symbol_636[] = ";\n";
+static char symbol_634[] = ")";
+static char symbol_635[] = "xs";
+static char symbol_636[] = ".";
 static char symbol_637[] = "x";
-static char symbol_638[] = "\\\"";
-static char symbol_639[] = "\"";
-static char symbol_640[] = "xs";
-static char symbol_641[] = "static char symbol_";
-static char symbol_642[] = "[] = \"";
-static char symbol_643[] = "xs";
-static char symbol_644[] = "\";\n";
-static char symbol_645[] = "buffer_from_cstring(symbol_";
-static char symbol_646[] = ", sizeof(symbol_";
-static char symbol_647[] = ")-1)";
-static char symbol_648[] = "\'";
-static char symbol_649[] = "\\\'";
-static char symbol_650[] = "\"";
-static char symbol_651[] = "\\\"";
-static char symbol_652[] = "x";
-static char symbol_653[] = "static char symbol_";
-static char symbol_654[] = "[] = \"";
-static char symbol_655[] = "x";
-static char symbol_656[] = "\";\n";
-static char symbol_657[] = "buffer_from_cstring(symbol_";
-static char symbol_658[] = ", sizeof(symbol_";
-static char symbol_659[] = ")-1)";
-static char symbol_660[] = "a";
-static char symbol_661[] = "b";
-static char symbol_662[] = "c";
-static char symbol_663[] = "d";
-static char symbol_664[] = "e";
-static char symbol_665[] = "f";
-static char symbol_666[] = "g";
-static char symbol_667[] = "h";
-static char symbol_668[] = "i";
-static char symbol_669[] = "j";
-static char symbol_670[] = "k";
-static char symbol_671[] = "l";
-static char symbol_672[] = "m";
-static char symbol_673[] = "n";
-static char symbol_674[] = "o";
-static char symbol_675[] = "p";
-static char symbol_676[] = "q";
-static char symbol_677[] = "r";
-static char symbol_678[] = "s";
-static char symbol_679[] = "t";
-static char symbol_680[] = "u";
-static char symbol_681[] = "v";
-static char symbol_682[] = "w";
-static char symbol_683[] = "x";
-static char symbol_684[] = "y";
-static char symbol_685[] = "z";
-static char symbol_686[] = "A";
-static char symbol_687[] = "B";
-static char symbol_688[] = "C";
-static char symbol_689[] = "D";
-static char symbol_690[] = "E";
-static char symbol_691[] = "F";
-static char symbol_692[] = "G";
-static char symbol_693[] = "H";
-static char symbol_694[] = "I";
-static char symbol_695[] = "J";
-static char symbol_696[] = "K";
-static char symbol_697[] = "L";
-static char symbol_698[] = "M";
-static char symbol_699[] = "N";
-static char symbol_700[] = "O";
-static char symbol_701[] = "P";
-static char symbol_702[] = "Q";
-static char symbol_703[] = "R";
-static char symbol_704[] = "S";
-static char symbol_705[] = "T";
-static char symbol_706[] = "U";
-static char symbol_707[] = "V";
-static char symbol_708[] = "W";
-static char symbol_709[] = "X";
-static char symbol_710[] = "Y";
-static char symbol_711[] = "Z";
-static char symbol_712[] = " ";
-static char symbol_713[] = "\n";
+static char symbol_638[] = "->";
+static char symbol_639[] = "x";
+static char symbol_640[] = "W[";
+static char symbol_641[] = "x";
+static char symbol_642[] = "]";
+static char symbol_643[] = "x";
+static char symbol_644[] = "unsigned int W_";
+static char symbol_645[] = "x";
+static char symbol_646[] = ";\n";
+static char symbol_647[] = "x";
+static char symbol_648[] = "\\\"";
+static char symbol_649[] = "\"";
+static char symbol_650[] = "xs";
+static char symbol_651[] = "static char symbol_";
+static char symbol_652[] = "[] = \"";
+static char symbol_653[] = "xs";
+static char symbol_654[] = "\";\n";
+static char symbol_655[] = "buffer_from_cstring(symbol_";
+static char symbol_656[] = ", sizeof(symbol_";
+static char symbol_657[] = ")-1)";
+static char symbol_658[] = "\'";
+static char symbol_659[] = "\\\'";
+static char symbol_660[] = "\"";
+static char symbol_661[] = "\\\"";
+static char symbol_662[] = "x";
+static char symbol_663[] = "static char symbol_";
+static char symbol_664[] = "[] = \"";
+static char symbol_665[] = "x";
+static char symbol_666[] = "\";\n";
+static char symbol_667[] = "buffer_from_cstring(symbol_";
+static char symbol_668[] = ", sizeof(symbol_";
+static char symbol_669[] = ")-1)";
+static char symbol_670[] = "a";
+static char symbol_671[] = "b";
+static char symbol_672[] = "c";
+static char symbol_673[] = "d";
+static char symbol_674[] = "e";
+static char symbol_675[] = "f";
+static char symbol_676[] = "g";
+static char symbol_677[] = "h";
+static char symbol_678[] = "i";
+static char symbol_679[] = "j";
+static char symbol_680[] = "k";
+static char symbol_681[] = "l";
+static char symbol_682[] = "m";
+static char symbol_683[] = "n";
+static char symbol_684[] = "o";
+static char symbol_685[] = "p";
+static char symbol_686[] = "q";
+static char symbol_687[] = "r";
+static char symbol_688[] = "s";
+static char symbol_689[] = "t";
+static char symbol_690[] = "u";
+static char symbol_691[] = "v";
+static char symbol_692[] = "w";
+static char symbol_693[] = "x";
+static char symbol_694[] = "y";
+static char symbol_695[] = "z";
+static char symbol_696[] = "A";
+static char symbol_697[] = "B";
+static char symbol_698[] = "C";
+static char symbol_699[] = "D";
+static char symbol_700[] = "E";
+static char symbol_701[] = "F";
+static char symbol_702[] = "G";
+static char symbol_703[] = "H";
+static char symbol_704[] = "I";
+static char symbol_705[] = "J";
+static char symbol_706[] = "K";
+static char symbol_707[] = "L";
+static char symbol_708[] = "M";
+static char symbol_709[] = "N";
+static char symbol_710[] = "O";
+static char symbol_711[] = "P";
+static char symbol_712[] = "Q";
+static char symbol_713[] = "R";
+static char symbol_714[] = "S";
+static char symbol_715[] = "T";
+static char symbol_716[] = "U";
+static char symbol_717[] = "V";
+static char symbol_718[] = "W";
+static char symbol_719[] = "X";
+static char symbol_720[] = "Y";
+static char symbol_721[] = "Z";
+static char symbol_722[] = " ";
+static char symbol_723[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1446,27 +1456,37 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_288, sizeof(symbol_288)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1475,35 +1495,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1511,25 +1531,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1538,22 +1558,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1562,33 +1582,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1600,51 +1620,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1654,13 +1674,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1669,39 +1689,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1710,23 +1730,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1736,39 +1756,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1777,30 +1797,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1809,20 +1829,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1831,27 +1851,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1861,63 +1881,63 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_placeholderVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
-}
-
-void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
-void action_37(struct Runtime* runtime, struct Variables* variables) {
+void action_36(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
+}
+
+void action_37(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1927,18 +1947,18 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
@@ -1947,37 +1967,37 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholderVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
-}
-
-void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
 }
 
-void action_42(struct Runtime* runtime, struct Variables* variables) {
+void action_41(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+}
+
+void action_42(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1987,29 +2007,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2019,14 +2039,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2036,21 +2056,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2060,17 +2080,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2153,11 +2173,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_306, sizeof(symbol_306)-1);
+                data = buffer_from_cstring(symbol_316, sizeof(symbol_316)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2168,11 +2188,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_308, sizeof(symbol_308)-1);
+                                data = buffer_from_cstring(symbol_318, sizeof(symbol_318)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2207,7 +2227,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2221,7 +2241,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2242,7 +2262,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2279,7 +2299,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_329, sizeof(symbol_329)-1);
+        data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2303,7 +2323,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2322,10 +2342,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2335,7 +2355,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2352,7 +2372,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_342, sizeof(symbol_342)-1);
+    data = buffer_from_cstring(symbol_352, sizeof(symbol_352)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2361,7 +2381,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2369,7 +2389,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_354, sizeof(symbol_354)-1);
+    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2378,7 +2398,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2387,10 +2407,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2408,7 +2428,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
+    data = buffer_from_cstring(symbol_380, sizeof(symbol_380)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2417,7 +2437,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2440,9 +2460,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_376, sizeof(symbol_376)-1);
+        data = buffer_from_cstring(symbol_386, sizeof(symbol_386)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2457,7 +2477,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2481,7 +2501,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_397, sizeof(symbol_397)-1);
+        data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2497,7 +2517,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2515,7 +2535,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2539,7 +2559,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_405, sizeof(symbol_405)-1);
+    data = buffer_from_cstring(symbol_415, sizeof(symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2552,7 +2572,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
+    data = buffer_from_cstring(symbol_416, sizeof(symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2579,14 +2599,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_412, sizeof(symbol_412)-1);
+    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2606,7 +2626,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2614,7 +2634,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_427, sizeof(symbol_427)-1);
+    data = buffer_from_cstring(symbol_437, sizeof(symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2628,7 +2648,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2650,7 +2670,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
+        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2660,7 +2680,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_447, sizeof(symbol_447)-1);
+                data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2680,11 +2700,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
+                            data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2722,7 +2742,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
+        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2731,9 +2751,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
+                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2753,11 +2773,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_466, sizeof(symbol_466)-1);
+                            data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,7 +2798,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
+        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2787,9 +2807,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
+                data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2807,7 +2827,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
+        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2816,11 +2836,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
+                    data = buffer_from_cstring(symbol_497, sizeof(symbol_497)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2840,11 +2860,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
+                                data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2866,7 +2886,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
+        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2875,7 +2895,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2887,7 +2907,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2898,7 +2918,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2909,7 +2929,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2920,7 +2940,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2930,7 +2950,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+        data = buffer_from_cstring(symbol_546, sizeof(symbol_546)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2939,9 +2959,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
+                data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2950,9 +2970,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_540, sizeof(symbol_540)-1);
+                        data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2961,9 +2981,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_542, sizeof(symbol_542)-1);
+                                data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2985,7 +3005,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
+        data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3005,11 +3025,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
+                    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3036,7 +3056,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3053,7 +3073,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3074,7 +3094,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3086,7 +3106,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3098,7 +3118,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3110,7 +3130,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3122,7 +3142,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3134,7 +3154,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3146,7 +3166,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+    data = buffer_from_cstring(symbol_584, sizeof(symbol_584)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3158,7 +3178,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3170,7 +3190,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+    data = buffer_from_cstring(symbol_586, sizeof(symbol_586)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3182,7 +3202,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3205,7 +3225,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3216,9 +3236,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+                data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3227,11 +3247,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
+                            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3261,14 +3281,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
+    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3277,9 +3297,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
+            data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3288,9 +3308,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+                    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3320,7 +3340,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3340,9 +3360,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
+            data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3370,7 +3390,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3384,7 +3404,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3402,7 +3422,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
+    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3411,7 +3431,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3429,7 +3449,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3443,9 +3463,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+            data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3469,7 +3489,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3482,7 +3502,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
+    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3535,7 +3555,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3554,7 +3574,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3577,7 +3597,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3590,7 +3610,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3634,7 +3654,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3700,7 +3720,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3712,7 +3732,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3724,7 +3744,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3736,7 +3756,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3748,7 +3768,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3760,7 +3780,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3772,7 +3792,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3784,7 +3804,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3796,7 +3816,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3808,7 +3828,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3820,7 +3840,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3832,7 +3852,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3844,7 +3864,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3856,7 +3876,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3868,7 +3888,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3880,7 +3900,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3892,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3904,7 +3924,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3916,7 +3936,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3928,7 +3948,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3940,7 +3960,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3952,7 +3972,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3964,7 +3984,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3976,7 +3996,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3988,7 +4008,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4000,7 +4020,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4021,7 +4041,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4033,7 +4053,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4045,7 +4065,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4057,7 +4077,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4069,7 +4089,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4081,7 +4101,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4093,7 +4113,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4105,7 +4125,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4117,7 +4137,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4129,7 +4149,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4141,7 +4161,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4153,7 +4173,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4165,7 +4185,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4177,7 +4197,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4189,7 +4209,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4201,7 +4221,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4213,7 +4233,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4225,7 +4245,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4237,7 +4257,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4249,7 +4269,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4261,7 +4281,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4273,7 +4293,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4285,7 +4305,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4297,7 +4317,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4309,7 +4329,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4321,7 +4341,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4370,7 +4390,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4382,7 +4402,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4400,8 +4420,12 @@ int main(void) {
     arena_pos = 0;
     arena = malloc(arena_limit);
     struct ParseState* parse_state = create_parse_state_from_stdin();
+    unsigned int input_pos = arena_pos;
     char last_char = '\n';
     int indent = 0;
+    unsigned int parse_pos;
+    unsigned int parse_size;
+    unsigned int codegen_size;
     struct Runtime* runtime = create_runtime();
     struct Action* action = rule_main(parse_state);
     struct Placeholder* placeholder;
@@ -4409,6 +4433,8 @@ int main(void) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
+    parse_size = arena_pos - input_pos;
+    parse_pos = arena_pos;
     run_action(action, runtime);
     placeholder = runtime->placeholders->pre_first->next;
     while (placeholder) {
@@ -4417,8 +4443,12 @@ int main(void) {
         placeholder = placeholder->next;
     }
     render_chunks(runtime->main_chunks, &last_char, &indent);
-    fprintf(stderr, "Input size        = %d\n", parse_state->input_buffer->size);
-    fprintf(stderr, "Total memory size = %d\n", arena_pos);
-    fprintf(stderr, "Ratio             = %d\n", arena_pos/parse_state->input_buffer->size);
+    codegen_size = arena_pos - parse_pos;
+    fprintf(stderr, "  DEBUG: Input size   = %d\n", parse_state->input_buffer->size);
+    fprintf(stderr, "  DEBUG: Parse size   = %d\n", parse_size);
+    fprintf(stderr, "  DEBUG: Ratio        = %dx\n", parse_size/parse_state->input_buffer->size);
+    fprintf(stderr, "  DEBUG: Codegen size = %d\n", codegen_size);
+    fprintf(stderr, "  DEBUG: Ratio        = %dx\n", codegen_size/parse_state->input_buffer->size);
+    fprintf(stderr, "  DEBUG: Total size   = %d\n", arena_pos);
     return 0;
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 582e2fc..c18de34 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -286,8 +286,12 @@ file = rule*:xs space !. -> {
         "arena_pos = 0;\n"
         "arena = malloc(arena_limit);\n"
         "struct ParseState* parse_state = create_parse_state_from_stdin();\n"
+        "unsigned int input_pos = arena_pos;\n"
         "char last_char = '\\n';\n"
         "int indent = 0;\n"
+        "unsigned int parse_pos;\n"
+        "unsigned int parse_size;\n"
+        "unsigned int codegen_size;\n"
         "struct Runtime* runtime = create_runtime();\n"
         "struct Action* action = rule_main(parse_state);\n"
         "struct Placeholder* placeholder;\n"
@@ -295,6 +299,8 @@ file = rule*:xs space !. -> {
             "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"
             "exit(1);\n"
         < "}\n"
+        "parse_size = arena_pos - input_pos;\n"
+        "parse_pos = arena_pos;\n"
         "run_action(action, runtime);\n"
         "placeholder = runtime->placeholders->pre_first->next;\n"
         "while (placeholder) {\n" >
@@ -303,9 +309,13 @@ file = rule*:xs space !. -> {
             "placeholder = placeholder->next;\n"
         < "}\n"
         "render_chunks(runtime->main_chunks, &last_char, &indent);\n"
-        "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n"
-        "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n"
-        "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n"
+        "codegen_size = arena_pos - parse_pos;\n"
+        "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n"
+        "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n"
+        "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n"
+        "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n"
+        "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n"
+        "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena_pos);\n"
         "return 0;\n"
     < "}\n"
 };

2025-11-08 07:58 Rickard pushed to rlworkbench

commit 82876793e1a7ff5936c36bfddb18c6f87d465fde
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 8 07:57:10 2025 +0100

    Print memory usage

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 592270a..7b0d430 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -581,417 +581,420 @@ static char symbol_296[] = "run_action(placeholder->action, runtime);\n";
 static char symbol_297[] = "placeholder = placeholder->next;\n";
 static char symbol_298[] = "}\n";
 static char symbol_299[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_300[] = "return 0;\n";
-static char symbol_301[] = "}\n";
-static char symbol_302[] = "x";
-static char symbol_303[] = "=";
-static char symbol_304[] = "y";
-static char symbol_305[] = ";";
-static char symbol_306[] = "struct Action* rule_";
-static char symbol_307[] = "x";
-static char symbol_308[] = "(struct ParseState* parse_state);\n";
+static char symbol_300[] = "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n";
+static char symbol_301[] = "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n";
+static char symbol_302[] = "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n";
+static char symbol_303[] = "return 0;\n";
+static char symbol_304[] = "}\n";
+static char symbol_305[] = "x";
+static char symbol_306[] = "=";
+static char symbol_307[] = "y";
+static char symbol_308[] = ";";
 static char symbol_309[] = "struct Action* rule_";
 static char symbol_310[] = "x";
-static char symbol_311[] = "(struct ParseState* parse_state) {\n";
-static char symbol_312[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_313[] = "unsigned int action_start_pos;\n";
-static char symbol_314[] = "struct Action* _;\n";
-static char symbol_315[] = "y";
-static char symbol_316[] = "return NULL;\n";
-static char symbol_317[] = "}\n";
-static char symbol_318[] = "\n";
-static char symbol_319[] = "x";
-static char symbol_320[] = "xs";
-static char symbol_321[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_311[] = "(struct ParseState* parse_state);\n";
+static char symbol_312[] = "struct Action* rule_";
+static char symbol_313[] = "x";
+static char symbol_314[] = "(struct ParseState* parse_state) {\n";
+static char symbol_315[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_316[] = "unsigned int action_start_pos;\n";
+static char symbol_317[] = "struct Action* _;\n";
+static char symbol_318[] = "y";
+static char symbol_319[] = "return NULL;\n";
+static char symbol_320[] = "}\n";
+static char symbol_321[] = "\n";
 static char symbol_322[] = "x";
 static char symbol_323[] = "xs";
-static char symbol_324[] = "x";
+static char symbol_324[] = "or_backtrack_pos = parse_state->pos;\n";
 static char symbol_325[] = "x";
-static char symbol_326[] = "|";
+static char symbol_326[] = "xs";
 static char symbol_327[] = "x";
-static char symbol_328[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_329[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_328[] = "x";
+static char symbol_329[] = "|";
 static char symbol_330[] = "x";
-static char symbol_331[] = "x";
-static char symbol_332[] = "y";
+static char symbol_331[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_332[] = "action_start_pos = parse_state->pos;\n";
 static char symbol_333[] = "x";
-static char symbol_334[] = "if (_) {\n";
+static char symbol_334[] = "x";
 static char symbol_335[] = "y";
-static char symbol_336[] = "}\n";
-static char symbol_337[] = "y";
+static char symbol_336[] = "x";
+static char symbol_337[] = "if (_) {\n";
 static char symbol_338[] = "y";
-static char symbol_339[] = "!";
-static char symbol_340[] = "x";
-static char symbol_341[] = "unsigned int nlookahead_pos;\n";
-static char symbol_342[] = "unsigned int nlookahead_pos;\n";
-static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_344[] = "x";
-static char symbol_345[] = "if (_ == NULL) {\n";
-static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_347[] = "} else {\n";
-static char symbol_348[] = "_ = NULL;\n";
-static char symbol_349[] = "}\n";
-static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_351[] = "&";
-static char symbol_352[] = "x";
-static char symbol_353[] = "unsigned int lookahead_pos;\n";
-static char symbol_354[] = "unsigned int lookahead_pos;\n";
-static char symbol_355[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_356[] = "x";
-static char symbol_357[] = "if (_ == NULL) {\n";
-static char symbol_358[] = "_ = NULL;\n";
-static char symbol_359[] = "} else {\n";
-static char symbol_360[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_361[] = "}\n";
-static char symbol_362[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_363[] = "x";
-static char symbol_364[] = "y";
-static char symbol_365[] = "x";
-static char symbol_366[] = "y";
-static char symbol_367[] = ":";
+static char symbol_339[] = "}\n";
+static char symbol_340[] = "y";
+static char symbol_341[] = "y";
+static char symbol_342[] = "!";
+static char symbol_343[] = "x";
+static char symbol_344[] = "unsigned int nlookahead_pos;\n";
+static char symbol_345[] = "unsigned int nlookahead_pos;\n";
+static char symbol_346[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_347[] = "x";
+static char symbol_348[] = "if (_ == NULL) {\n";
+static char symbol_349[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_350[] = "} else {\n";
+static char symbol_351[] = "_ = NULL;\n";
+static char symbol_352[] = "}\n";
+static char symbol_353[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_354[] = "&";
+static char symbol_355[] = "x";
+static char symbol_356[] = "unsigned int lookahead_pos;\n";
+static char symbol_357[] = "unsigned int lookahead_pos;\n";
+static char symbol_358[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_359[] = "x";
+static char symbol_360[] = "if (_ == NULL) {\n";
+static char symbol_361[] = "_ = NULL;\n";
+static char symbol_362[] = "} else {\n";
+static char symbol_363[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_364[] = "}\n";
+static char symbol_365[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_366[] = "x";
+static char symbol_367[] = "y";
 static char symbol_368[] = "x";
-static char symbol_369[] = "append_named_action(variables, ";
-static char symbol_370[] = "x";
-static char symbol_371[] = ", _);\n";
-static char symbol_372[] = "x";
-static char symbol_373[] = "*";
-static char symbol_374[] = "struct Variables* star_variables;\n";
-static char symbol_375[] = "struct Variables* star_variables;\n";
-static char symbol_376[] = "unsigned int star_pos;\n";
-static char symbol_377[] = "unsigned int star_pos;\n";
-static char symbol_378[] = "unsigned int star_start_pos;\n";
-static char symbol_379[] = "unsigned int star_start_pos;\n";
-static char symbol_380[] = "star_variables = create_variables();\n";
-static char symbol_381[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_382[] = "while (1) {\n";
-static char symbol_383[] = "star_pos = parse_state->pos;\n";
-static char symbol_384[] = "x";
-static char symbol_385[] = "if (_ == NULL) {\n";
-static char symbol_386[] = "parse_state->pos = star_pos;\n";
-static char symbol_387[] = "break;\n";
-static char symbol_388[] = "}\n";
-static char symbol_389[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_390[] = "}\n";
-static char symbol_391[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_392[] = "x";
-static char symbol_393[] = "x";
-static char symbol_394[] = "_";
+static char symbol_369[] = "y";
+static char symbol_370[] = ":";
+static char symbol_371[] = "x";
+static char symbol_372[] = "append_named_action(variables, ";
+static char symbol_373[] = "x";
+static char symbol_374[] = ", _);\n";
+static char symbol_375[] = "x";
+static char symbol_376[] = "*";
+static char symbol_377[] = "struct Variables* star_variables;\n";
+static char symbol_378[] = "struct Variables* star_variables;\n";
+static char symbol_379[] = "unsigned int star_pos;\n";
+static char symbol_380[] = "unsigned int star_pos;\n";
+static char symbol_381[] = "unsigned int star_start_pos;\n";
+static char symbol_382[] = "unsigned int star_start_pos;\n";
+static char symbol_383[] = "star_variables = create_variables();\n";
+static char symbol_384[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_385[] = "while (1) {\n";
+static char symbol_386[] = "star_pos = parse_state->pos;\n";
+static char symbol_387[] = "x";
+static char symbol_388[] = "if (_ == NULL) {\n";
+static char symbol_389[] = "parse_state->pos = star_pos;\n";
+static char symbol_390[] = "break;\n";
+static char symbol_391[] = "}\n";
+static char symbol_392[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_393[] = "}\n";
+static char symbol_394[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_395[] = "x";
-static char symbol_396[] = "bitpattern <<= 1;\n";
-static char symbol_397[] = "bitmask <<= 1;\n";
+static char symbol_396[] = "x";
+static char symbol_397[] = "_";
 static char symbol_398[] = "x";
-static char symbol_399[] = "x";
-static char symbol_400[] = "x";
-static char symbol_401[] = "bitmask |= 1;\n";
-static char symbol_402[] = "0";
-static char symbol_403[] = "1";
-static char symbol_404[] = "bitpattern |= 1;\n";
-static char symbol_405[] = "x";
-static char symbol_406[] = "_ = rule_";
-static char symbol_407[] = "x";
-static char symbol_408[] = "(parse_state);\n";
-static char symbol_409[] = "0b";
-static char symbol_410[] = "xs";
-static char symbol_411[] = "unsigned char bitpattern;\n";
-static char symbol_412[] = "unsigned char bitpattern;\n";
-static char symbol_413[] = "unsigned char bitmask;\n";
-static char symbol_414[] = "unsigned char bitmask;\n";
-static char symbol_415[] = "bitpattern = 0;\n";
-static char symbol_416[] = "bitmask = 0;\n";
-static char symbol_417[] = "xs";
-static char symbol_418[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_419[] = "parse_state->pos += 1;\n";
-static char symbol_420[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_421[] = "} else {\n";
-static char symbol_422[] = "_ = NULL;\n";
-static char symbol_423[] = "}\n";
-static char symbol_424[] = ".";
-static char symbol_425[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_426[] = "parse_state->pos += 1;\n";
-static char symbol_427[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_428[] = "} else {\n";
-static char symbol_429[] = "_ = NULL;\n";
-static char symbol_430[] = "}\n";
-static char symbol_431[] = "x";
-static char symbol_432[] = "struct Buffer* data;\n";
-static char symbol_433[] = "struct Buffer* data;\n";
-static char symbol_434[] = "data = ";
-static char symbol_435[] = "x";
-static char symbol_436[] = ";\n";
-static char symbol_437[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_438[] = "parse_state->pos += data->size;\n";
-static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_440[] = "} else {\n";
-static char symbol_441[] = "_ = NULL;\n";
-static char symbol_442[] = "}\n";
-static char symbol_443[] = "->";
-static char symbol_444[] = "{";
-static char symbol_445[] = "xs";
-static char symbol_446[] = "}";
-static char symbol_447[] = "void action_";
-static char symbol_448[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_449[] = "xs";
-static char symbol_450[] = "}\n";
-static char symbol_451[] = "\n";
-static char symbol_452[] = "struct Variables* variables;\n";
-static char symbol_453[] = "struct Variables* variables;\n";
-static char symbol_454[] = "variables = create_variables();\n";
-static char symbol_455[] = "variables = create_variables();\n";
-static char symbol_456[] = "return create_action(action_";
-static char symbol_457[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_458[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_459[] = "unseen(";
-static char symbol_460[] = "x";
-static char symbol_461[] = ") -> {";
-static char symbol_462[] = "ys";
-static char symbol_463[] = "}";
-static char symbol_464[] = "struct Action* action;\n";
-static char symbol_465[] = "struct Action* action;\n";
-static char symbol_466[] = "action = lookup_action(variables, ";
-static char symbol_467[] = "x";
-static char symbol_468[] = ");\n";
-static char symbol_469[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_470[] = "ys";
-static char symbol_471[] = "}\n";
-static char symbol_472[] = "unique(";
-static char symbol_473[] = "x";
-static char symbol_474[] = ")";
-static char symbol_475[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_399[] = "bitpattern <<= 1;\n";
+static char symbol_400[] = "bitmask <<= 1;\n";
+static char symbol_401[] = "x";
+static char symbol_402[] = "x";
+static char symbol_403[] = "x";
+static char symbol_404[] = "bitmask |= 1;\n";
+static char symbol_405[] = "0";
+static char symbol_406[] = "1";
+static char symbol_407[] = "bitpattern |= 1;\n";
+static char symbol_408[] = "x";
+static char symbol_409[] = "_ = rule_";
+static char symbol_410[] = "x";
+static char symbol_411[] = "(parse_state);\n";
+static char symbol_412[] = "0b";
+static char symbol_413[] = "xs";
+static char symbol_414[] = "unsigned char bitpattern;\n";
+static char symbol_415[] = "unsigned char bitpattern;\n";
+static char symbol_416[] = "unsigned char bitmask;\n";
+static char symbol_417[] = "unsigned char bitmask;\n";
+static char symbol_418[] = "bitpattern = 0;\n";
+static char symbol_419[] = "bitmask = 0;\n";
+static char symbol_420[] = "xs";
+static char symbol_421[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_422[] = "parse_state->pos += 1;\n";
+static char symbol_423[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_424[] = "} else {\n";
+static char symbol_425[] = "_ = NULL;\n";
+static char symbol_426[] = "}\n";
+static char symbol_427[] = ".";
+static char symbol_428[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_429[] = "parse_state->pos += 1;\n";
+static char symbol_430[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_431[] = "} else {\n";
+static char symbol_432[] = "_ = NULL;\n";
+static char symbol_433[] = "}\n";
+static char symbol_434[] = "x";
+static char symbol_435[] = "struct Buffer* data;\n";
+static char symbol_436[] = "struct Buffer* data;\n";
+static char symbol_437[] = "data = ";
+static char symbol_438[] = "x";
+static char symbol_439[] = ";\n";
+static char symbol_440[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_441[] = "parse_state->pos += data->size;\n";
+static char symbol_442[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_443[] = "} else {\n";
+static char symbol_444[] = "_ = NULL;\n";
+static char symbol_445[] = "}\n";
+static char symbol_446[] = "->";
+static char symbol_447[] = "{";
+static char symbol_448[] = "xs";
+static char symbol_449[] = "}";
+static char symbol_450[] = "void action_";
+static char symbol_451[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_452[] = "xs";
+static char symbol_453[] = "}\n";
+static char symbol_454[] = "\n";
+static char symbol_455[] = "struct Variables* variables;\n";
+static char symbol_456[] = "struct Variables* variables;\n";
+static char symbol_457[] = "variables = create_variables();\n";
+static char symbol_458[] = "variables = create_variables();\n";
+static char symbol_459[] = "return create_action(action_";
+static char symbol_460[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_461[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_462[] = "unseen(";
+static char symbol_463[] = "x";
+static char symbol_464[] = ") -> {";
+static char symbol_465[] = "ys";
+static char symbol_466[] = "}";
+static char symbol_467[] = "struct Action* action;\n";
+static char symbol_468[] = "struct Action* action;\n";
+static char symbol_469[] = "action = lookup_action(variables, ";
+static char symbol_470[] = "x";
+static char symbol_471[] = ");\n";
+static char symbol_472[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_473[] = "ys";
+static char symbol_474[] = "}\n";
+static char symbol_475[] = "unique(";
 static char symbol_476[] = "x";
-static char symbol_477[] = ")) {\n";
-static char symbol_478[] = "append_data(runtime->current_chunks, ";
+static char symbol_477[] = ")";
+static char symbol_478[] = "if (!seen(runtime->current_chunks, ";
 static char symbol_479[] = "x";
-static char symbol_480[] = ", 0, NULL);\n";
-static char symbol_481[] = "}\n";
-static char symbol_482[] = ">";
-static char symbol_483[] = "x";
-static char symbol_484[] = "{";
-static char symbol_485[] = "ys";
-static char symbol_486[] = "}";
-static char symbol_487[] = "struct Chunks* last_chunks;\n";
-static char symbol_488[] = "struct Chunks* last_chunks;\n";
-static char symbol_489[] = "struct Chunks* chunks;\n";
-static char symbol_490[] = "struct Chunks* chunks;\n";
-static char symbol_491[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_492[] = "chunks = runtime->named_chunks_";
-static char symbol_493[] = "x";
-static char symbol_494[] = ";\n";
-static char symbol_495[] = "runtime->current_chunks = chunks;\n";
-static char symbol_496[] = "ys";
-static char symbol_497[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_498[] = "<";
-static char symbol_499[] = "x";
-static char symbol_500[] = "struct Chunks* chunks;\n";
-static char symbol_501[] = "struct Chunks* chunks;\n";
-static char symbol_502[] = "chunks = create_chunks();\n";
-static char symbol_503[] = "runtime->named_chunks_";
-static char symbol_504[] = "x";
-static char symbol_505[] = " = chunks;\n";
-static char symbol_506[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_480[] = ")) {\n";
+static char symbol_481[] = "append_data(runtime->current_chunks, ";
+static char symbol_482[] = "x";
+static char symbol_483[] = ", 0, NULL);\n";
+static char symbol_484[] = "}\n";
+static char symbol_485[] = ">";
+static char symbol_486[] = "x";
+static char symbol_487[] = "{";
+static char symbol_488[] = "ys";
+static char symbol_489[] = "}";
+static char symbol_490[] = "struct Chunks* last_chunks;\n";
+static char symbol_491[] = "struct Chunks* last_chunks;\n";
+static char symbol_492[] = "struct Chunks* chunks;\n";
+static char symbol_493[] = "struct Chunks* chunks;\n";
+static char symbol_494[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_495[] = "chunks = runtime->named_chunks_";
+static char symbol_496[] = "x";
+static char symbol_497[] = ";\n";
+static char symbol_498[] = "runtime->current_chunks = chunks;\n";
+static char symbol_499[] = "ys";
+static char symbol_500[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_501[] = "<";
+static char symbol_502[] = "x";
+static char symbol_503[] = "struct Chunks* chunks;\n";
+static char symbol_504[] = "struct Chunks* chunks;\n";
+static char symbol_505[] = "chunks = create_chunks();\n";
+static char symbol_506[] = "runtime->named_chunks_";
 static char symbol_507[] = "x";
-static char symbol_508[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_509[] = "x";
-static char symbol_510[] = "), 0, NULL);\n";
-static char symbol_511[] = "x";
-static char symbol_512[] = "run_action(lookup_action(variables, ";
-static char symbol_513[] = "x";
-static char symbol_514[] = "), runtime);\n";
-static char symbol_515[] = "x";
-static char symbol_516[] = "void placeholder_";
-static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_518[] = "void placeholder_";
-static char symbol_519[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_520[] = "x";
-static char symbol_521[] = "}\n";
-static char symbol_522[] = "\n";
-static char symbol_523[] = "struct Chunks* chunks;\n";
-static char symbol_524[] = "struct Chunks* chunks;\n";
-static char symbol_525[] = "chunks = create_chunks();\n";
-static char symbol_526[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_527[] = ", variables, NULL, 0, 0));\n";
-static char symbol_528[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_529[] = "x";
-static char symbol_530[] = "append_data(runtime->current_chunks, ";
-static char symbol_531[] = "x";
-static char symbol_532[] = ", 0, NULL);\n";
-static char symbol_533[] = "#";
+static char symbol_508[] = " = chunks;\n";
+static char symbol_509[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_510[] = "x";
+static char symbol_511[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_512[] = "x";
+static char symbol_513[] = "), 0, NULL);\n";
+static char symbol_514[] = "x";
+static char symbol_515[] = "run_action(lookup_action(variables, ";
+static char symbol_516[] = "x";
+static char symbol_517[] = "), runtime);\n";
+static char symbol_518[] = "x";
+static char symbol_519[] = "void placeholder_";
+static char symbol_520[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_521[] = "void placeholder_";
+static char symbol_522[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_523[] = "x";
+static char symbol_524[] = "}\n";
+static char symbol_525[] = "\n";
+static char symbol_526[] = "struct Chunks* chunks;\n";
+static char symbol_527[] = "struct Chunks* chunks;\n";
+static char symbol_528[] = "chunks = create_chunks();\n";
+static char symbol_529[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_530[] = ", variables, NULL, 0, 0));\n";
+static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_532[] = "x";
+static char symbol_533[] = "append_data(runtime->current_chunks, ";
 static char symbol_534[] = "x";
-static char symbol_535[] = "(";
-static char symbol_536[] = "y";
-static char symbol_537[] = " ";
-static char symbol_538[] = "z";
-static char symbol_539[] = ")";
-static char symbol_540[] = "runtime->W_";
-static char symbol_541[] = "y";
-static char symbol_542[] = " = ";
-static char symbol_543[] = "x";
-static char symbol_544[] = "(runtime->W_";
-static char symbol_545[] = "y";
-static char symbol_546[] = " ? runtime->W_";
-static char symbol_547[] = "y";
-static char symbol_548[] = " : 0, ";
-static char symbol_549[] = "z";
-static char symbol_550[] = ");\n";
-static char symbol_551[] = ">";
-static char symbol_552[] = "xs";
-static char symbol_553[] = "<";
-static char symbol_554[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_535[] = ", 0, NULL);\n";
+static char symbol_536[] = "#";
+static char symbol_537[] = "x";
+static char symbol_538[] = "(";
+static char symbol_539[] = "y";
+static char symbol_540[] = " ";
+static char symbol_541[] = "z";
+static char symbol_542[] = ")";
+static char symbol_543[] = "runtime->W_";
+static char symbol_544[] = "y";
+static char symbol_545[] = " = ";
+static char symbol_546[] = "x";
+static char symbol_547[] = "(runtime->W_";
+static char symbol_548[] = "y";
+static char symbol_549[] = " ? runtime->W_";
+static char symbol_550[] = "y";
+static char symbol_551[] = " : 0, ";
+static char symbol_552[] = "z";
+static char symbol_553[] = ");\n";
+static char symbol_554[] = ">";
 static char symbol_555[] = "xs";
-static char symbol_556[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_557[] = "x";
-static char symbol_558[] = "x";
-static char symbol_559[] = "struct Chunks* named_chunks_";
+static char symbol_556[] = "<";
+static char symbol_557[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_558[] = "xs";
+static char symbol_559[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_560[] = "x";
-static char symbol_561[] = ";\n";
-static char symbol_562[] = "x";
+static char symbol_561[] = "x";
+static char symbol_562[] = "struct Chunks* named_chunks_";
 static char symbol_563[] = "x";
-static char symbol_564[] = "x";
-static char symbol_565[] = "0";
-static char symbol_566[] = "1";
-static char symbol_567[] = "2";
-static char symbol_568[] = "3";
-static char symbol_569[] = "4";
-static char symbol_570[] = "5";
-static char symbol_571[] = "6";
-static char symbol_572[] = "7";
-static char symbol_573[] = "8";
-static char symbol_574[] = "9";
-static char symbol_575[] = "{";
-static char symbol_576[] = "x";
-static char symbol_577[] = "*";
-static char symbol_578[] = "y";
-static char symbol_579[] = "}";
-static char symbol_580[] = "int i;\n";
-static char symbol_581[] = "int i;\n";
-static char symbol_582[] = "for (i=0; i < ";
-static char symbol_583[] = "y";
-static char symbol_584[] = "; i++) {\n";
-static char symbol_585[] = "append_data(runtime->current_chunks, ";
-static char symbol_586[] = "x";
-static char symbol_587[] = ", 0, NULL);\n";
-static char symbol_588[] = "}\n";
+static char symbol_564[] = ";\n";
+static char symbol_565[] = "x";
+static char symbol_566[] = "x";
+static char symbol_567[] = "x";
+static char symbol_568[] = "0";
+static char symbol_569[] = "1";
+static char symbol_570[] = "2";
+static char symbol_571[] = "3";
+static char symbol_572[] = "4";
+static char symbol_573[] = "5";
+static char symbol_574[] = "6";
+static char symbol_575[] = "7";
+static char symbol_576[] = "8";
+static char symbol_577[] = "9";
+static char symbol_578[] = "{";
+static char symbol_579[] = "x";
+static char symbol_580[] = "*";
+static char symbol_581[] = "y";
+static char symbol_582[] = "}";
+static char symbol_583[] = "int i;\n";
+static char symbol_584[] = "int i;\n";
+static char symbol_585[] = "for (i=0; i < ";
+static char symbol_586[] = "y";
+static char symbol_587[] = "; i++) {\n";
+static char symbol_588[] = "append_data(runtime->current_chunks, ";
 static char symbol_589[] = "x";
-static char symbol_590[] = "(runtime->W_";
-static char symbol_591[] = "x";
-static char symbol_592[] = " ? runtime->W_";
-static char symbol_593[] = "x";
-static char symbol_594[] = " : 0)";
-static char symbol_595[] = "(";
+static char symbol_590[] = ", 0, NULL);\n";
+static char symbol_591[] = "}\n";
+static char symbol_592[] = "x";
+static char symbol_593[] = "(runtime->W_";
+static char symbol_594[] = "x";
+static char symbol_595[] = " ? runtime->W_";
 static char symbol_596[] = "x";
-static char symbol_597[] = "-";
-static char symbol_598[] = "y";
-static char symbol_599[] = ")";
-static char symbol_600[] = "((runtime->W_";
-static char symbol_601[] = "x";
-static char symbol_602[] = " ? runtime->W_";
-static char symbol_603[] = "x";
-static char symbol_604[] = " : 0)-";
-static char symbol_605[] = "y";
-static char symbol_606[] = ")";
-static char symbol_607[] = "\"";
-static char symbol_608[] = "xs";
-static char symbol_609[] = "\"";
-static char symbol_610[] = "static char symbol_";
-static char symbol_611[] = "[] = \"";
-static char symbol_612[] = "xs";
-static char symbol_613[] = "\";\n";
-static char symbol_614[] = "buffer_from_cstring(symbol_";
-static char symbol_615[] = ", sizeof(symbol_";
-static char symbol_616[] = ")-1)";
-static char symbol_617[] = "x";
-static char symbol_618[] = "xs";
-static char symbol_619[] = "lookup_action(variables, ";
+static char symbol_597[] = " : 0)";
+static char symbol_598[] = "(";
+static char symbol_599[] = "x";
+static char symbol_600[] = "-";
+static char symbol_601[] = "y";
+static char symbol_602[] = ")";
+static char symbol_603[] = "((runtime->W_";
+static char symbol_604[] = "x";
+static char symbol_605[] = " ? runtime->W_";
+static char symbol_606[] = "x";
+static char symbol_607[] = " : 0)-";
+static char symbol_608[] = "y";
+static char symbol_609[] = ")";
+static char symbol_610[] = "\"";
+static char symbol_611[] = "xs";
+static char symbol_612[] = "\"";
+static char symbol_613[] = "static char symbol_";
+static char symbol_614[] = "[] = \"";
+static char symbol_615[] = "xs";
+static char symbol_616[] = "\";\n";
+static char symbol_617[] = "buffer_from_cstring(symbol_";
+static char symbol_618[] = ", sizeof(symbol_";
+static char symbol_619[] = ")-1)";
 static char symbol_620[] = "x";
-static char symbol_621[] = ")";
-static char symbol_622[] = "xs";
-static char symbol_623[] = ".";
-static char symbol_624[] = "x";
-static char symbol_625[] = "->";
-static char symbol_626[] = "x";
-static char symbol_627[] = "W[";
-static char symbol_628[] = "x";
-static char symbol_629[] = "]";
-static char symbol_630[] = "x";
-static char symbol_631[] = "unsigned int W_";
-static char symbol_632[] = "x";
-static char symbol_633[] = ";\n";
-static char symbol_634[] = "x";
-static char symbol_635[] = "\\\"";
-static char symbol_636[] = "\"";
-static char symbol_637[] = "xs";
-static char symbol_638[] = "static char symbol_";
-static char symbol_639[] = "[] = \"";
+static char symbol_621[] = "xs";
+static char symbol_622[] = "lookup_action(variables, ";
+static char symbol_623[] = "x";
+static char symbol_624[] = ")";
+static char symbol_625[] = "xs";
+static char symbol_626[] = ".";
+static char symbol_627[] = "x";
+static char symbol_628[] = "->";
+static char symbol_629[] = "x";
+static char symbol_630[] = "W[";
+static char symbol_631[] = "x";
+static char symbol_632[] = "]";
+static char symbol_633[] = "x";
+static char symbol_634[] = "unsigned int W_";
+static char symbol_635[] = "x";
+static char symbol_636[] = ";\n";
+static char symbol_637[] = "x";
+static char symbol_638[] = "\\\"";
+static char symbol_639[] = "\"";
 static char symbol_640[] = "xs";
-static char symbol_641[] = "\";\n";
-static char symbol_642[] = "buffer_from_cstring(symbol_";
-static char symbol_643[] = ", sizeof(symbol_";
-static char symbol_644[] = ")-1)";
-static char symbol_645[] = "\'";
-static char symbol_646[] = "\\\'";
-static char symbol_647[] = "\"";
-static char symbol_648[] = "\\\"";
-static char symbol_649[] = "x";
-static char symbol_650[] = "static char symbol_";
-static char symbol_651[] = "[] = \"";
+static char symbol_641[] = "static char symbol_";
+static char symbol_642[] = "[] = \"";
+static char symbol_643[] = "xs";
+static char symbol_644[] = "\";\n";
+static char symbol_645[] = "buffer_from_cstring(symbol_";
+static char symbol_646[] = ", sizeof(symbol_";
+static char symbol_647[] = ")-1)";
+static char symbol_648[] = "\'";
+static char symbol_649[] = "\\\'";
+static char symbol_650[] = "\"";
+static char symbol_651[] = "\\\"";
 static char symbol_652[] = "x";
-static char symbol_653[] = "\";\n";
-static char symbol_654[] = "buffer_from_cstring(symbol_";
-static char symbol_655[] = ", sizeof(symbol_";
-static char symbol_656[] = ")-1)";
-static char symbol_657[] = "a";
-static char symbol_658[] = "b";
-static char symbol_659[] = "c";
-static char symbol_660[] = "d";
-static char symbol_661[] = "e";
-static char symbol_662[] = "f";
-static char symbol_663[] = "g";
-static char symbol_664[] = "h";
-static char symbol_665[] = "i";
-static char symbol_666[] = "j";
-static char symbol_667[] = "k";
-static char symbol_668[] = "l";
-static char symbol_669[] = "m";
-static char symbol_670[] = "n";
-static char symbol_671[] = "o";
-static char symbol_672[] = "p";
-static char symbol_673[] = "q";
-static char symbol_674[] = "r";
-static char symbol_675[] = "s";
-static char symbol_676[] = "t";
-static char symbol_677[] = "u";
-static char symbol_678[] = "v";
-static char symbol_679[] = "w";
-static char symbol_680[] = "x";
-static char symbol_681[] = "y";
-static char symbol_682[] = "z";
-static char symbol_683[] = "A";
-static char symbol_684[] = "B";
-static char symbol_685[] = "C";
-static char symbol_686[] = "D";
-static char symbol_687[] = "E";
-static char symbol_688[] = "F";
-static char symbol_689[] = "G";
-static char symbol_690[] = "H";
-static char symbol_691[] = "I";
-static char symbol_692[] = "J";
-static char symbol_693[] = "K";
-static char symbol_694[] = "L";
-static char symbol_695[] = "M";
-static char symbol_696[] = "N";
-static char symbol_697[] = "O";
-static char symbol_698[] = "P";
-static char symbol_699[] = "Q";
-static char symbol_700[] = "R";
-static char symbol_701[] = "S";
-static char symbol_702[] = "T";
-static char symbol_703[] = "U";
-static char symbol_704[] = "V";
-static char symbol_705[] = "W";
-static char symbol_706[] = "X";
-static char symbol_707[] = "Y";
-static char symbol_708[] = "Z";
-static char symbol_709[] = " ";
-static char symbol_710[] = "\n";
+static char symbol_653[] = "static char symbol_";
+static char symbol_654[] = "[] = \"";
+static char symbol_655[] = "x";
+static char symbol_656[] = "\";\n";
+static char symbol_657[] = "buffer_from_cstring(symbol_";
+static char symbol_658[] = ", sizeof(symbol_";
+static char symbol_659[] = ")-1)";
+static char symbol_660[] = "a";
+static char symbol_661[] = "b";
+static char symbol_662[] = "c";
+static char symbol_663[] = "d";
+static char symbol_664[] = "e";
+static char symbol_665[] = "f";
+static char symbol_666[] = "g";
+static char symbol_667[] = "h";
+static char symbol_668[] = "i";
+static char symbol_669[] = "j";
+static char symbol_670[] = "k";
+static char symbol_671[] = "l";
+static char symbol_672[] = "m";
+static char symbol_673[] = "n";
+static char symbol_674[] = "o";
+static char symbol_675[] = "p";
+static char symbol_676[] = "q";
+static char symbol_677[] = "r";
+static char symbol_678[] = "s";
+static char symbol_679[] = "t";
+static char symbol_680[] = "u";
+static char symbol_681[] = "v";
+static char symbol_682[] = "w";
+static char symbol_683[] = "x";
+static char symbol_684[] = "y";
+static char symbol_685[] = "z";
+static char symbol_686[] = "A";
+static char symbol_687[] = "B";
+static char symbol_688[] = "C";
+static char symbol_689[] = "D";
+static char symbol_690[] = "E";
+static char symbol_691[] = "F";
+static char symbol_692[] = "G";
+static char symbol_693[] = "H";
+static char symbol_694[] = "I";
+static char symbol_695[] = "J";
+static char symbol_696[] = "K";
+static char symbol_697[] = "L";
+static char symbol_698[] = "M";
+static char symbol_699[] = "N";
+static char symbol_700[] = "O";
+static char symbol_701[] = "P";
+static char symbol_702[] = "Q";
+static char symbol_703[] = "R";
+static char symbol_704[] = "S";
+static char symbol_705[] = "T";
+static char symbol_706[] = "U";
+static char symbol_707[] = "V";
+static char symbol_708[] = "W";
+static char symbol_709[] = "X";
+static char symbol_710[] = "Y";
+static char symbol_711[] = "Z";
+static char symbol_712[] = " ";
+static char symbol_713[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1459,8 +1462,11 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1469,35 +1475,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1505,25 +1511,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1532,22 +1538,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1556,33 +1562,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1594,51 +1600,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1648,13 +1654,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1663,39 +1669,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1704,23 +1710,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1730,39 +1736,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1771,30 +1777,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1803,20 +1809,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1825,27 +1831,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1855,63 +1861,63 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_placeholderVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1921,18 +1927,18 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
@@ -1941,37 +1947,37 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholderVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1981,29 +1987,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2013,14 +2019,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2030,21 +2036,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2054,17 +2060,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2147,11 +2153,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
+                data = buffer_from_cstring(symbol_306, sizeof(symbol_306)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2162,11 +2168,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_305, sizeof(symbol_305)-1);
+                                data = buffer_from_cstring(symbol_308, sizeof(symbol_308)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2201,7 +2207,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2215,7 +2221,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2236,7 +2242,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2273,7 +2279,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_326, sizeof(symbol_326)-1);
+        data = buffer_from_cstring(symbol_329, sizeof(symbol_329)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2297,7 +2303,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2316,10 +2322,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2329,7 +2335,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2346,7 +2352,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
+    data = buffer_from_cstring(symbol_342, sizeof(symbol_342)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2355,7 +2361,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2363,7 +2369,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
+    data = buffer_from_cstring(symbol_354, sizeof(symbol_354)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2372,7 +2378,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2381,10 +2387,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2402,7 +2408,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_367, sizeof(symbol_367)-1);
+    data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2411,7 +2417,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2434,9 +2440,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_373, sizeof(symbol_373)-1);
+        data = buffer_from_cstring(symbol_376, sizeof(symbol_376)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2451,7 +2457,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2475,7 +2481,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_394, sizeof(symbol_394)-1);
+        data = buffer_from_cstring(symbol_397, sizeof(symbol_397)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2491,7 +2497,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2509,7 +2515,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2533,7 +2539,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
+    data = buffer_from_cstring(symbol_405, sizeof(symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2546,7 +2552,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_403, sizeof(symbol_403)-1);
+    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2573,14 +2579,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
+    data = buffer_from_cstring(symbol_412, sizeof(symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2600,7 +2606,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2608,7 +2614,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
+    data = buffer_from_cstring(symbol_427, sizeof(symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2622,7 +2628,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2644,7 +2650,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
+        data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2654,7 +2660,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
+                data = buffer_from_cstring(symbol_447, sizeof(symbol_447)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2674,11 +2680,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
+                            data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2716,7 +2722,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2725,9 +2731,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2747,11 +2753,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                            data = buffer_from_cstring(symbol_466, sizeof(symbol_466)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2772,7 +2778,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+        data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2781,9 +2787,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2801,7 +2807,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
+        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2810,11 +2816,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
+                    data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,11 +2840,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
+                                data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2860,7 +2866,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
+        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2869,7 +2875,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2881,7 +2887,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2892,7 +2898,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2903,7 +2909,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2914,7 +2920,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2924,7 +2930,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
+        data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2933,9 +2939,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
+                data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2944,9 +2950,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
+                        data = buffer_from_cstring(symbol_540, sizeof(symbol_540)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2955,9 +2961,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
+                                data = buffer_from_cstring(symbol_542, sizeof(symbol_542)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2979,7 +2985,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
+        data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2999,11 +3005,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
+                    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3030,7 +3036,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3047,7 +3053,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3068,7 +3074,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3080,7 +3086,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3092,7 +3098,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3104,7 +3110,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3116,7 +3122,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3128,7 +3134,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3140,7 +3146,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3152,7 +3158,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3164,7 +3170,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3176,7 +3182,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+    data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3199,7 +3205,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3210,9 +3216,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+                data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3221,11 +3227,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
+                            data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3255,14 +3261,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3271,9 +3277,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+            data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3282,9 +3288,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+                    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3314,7 +3320,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
+    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3334,9 +3340,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
+            data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3364,7 +3370,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3378,7 +3384,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3396,7 +3402,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
+    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3405,7 +3411,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3423,7 +3429,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3437,9 +3443,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
+            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3463,7 +3469,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_635, sizeof(symbol_635)-1);
+    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3476,7 +3482,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
+    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3529,7 +3535,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3548,7 +3554,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3571,7 +3577,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3584,7 +3590,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3628,7 +3634,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3694,42 +3700,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4004,15 +3974,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Action* _;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
@@ -4049,6 +4010,15 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
@@ -4325,6 +4295,42 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
     return NULL;
 }
 
@@ -4364,7 +4370,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4376,7 +4382,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4411,5 +4417,8 @@ int main(void) {
         placeholder = placeholder->next;
     }
     render_chunks(runtime->main_chunks, &last_char, &indent);
+    fprintf(stderr, "Input size        = %d\n", parse_state->input_buffer->size);
+    fprintf(stderr, "Total memory size = %d\n", arena_pos);
+    fprintf(stderr, "Ratio             = %d\n", arena_pos/parse_state->input_buffer->size);
     return 0;
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index e091795..582e2fc 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -303,6 +303,9 @@ file = rule*:xs space !. -> {
             "placeholder = placeholder->next;\n"
         < "}\n"
         "render_chunks(runtime->main_chunks, &last_char, &indent);\n"
+        "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n"
+        "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n"
+        "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n"
         "return 0;\n"
     < "}\n"
 };

commit 458866cc73d790c07299278c3ecc2dbec9899c66
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Fri Nov 7 22:41:00 2025 +0100

    Call out/meta_meta.c only out/meta.c

diff --git a/accept.sh b/accept.sh
index 96fb998..5f30d7b 100755
--- a/accept.sh
+++ b/accept.sh
@@ -4,6 +4,6 @@ set -e
 
 cd "$(dirname "$0")"
 
-mv out/meta_meta.c src/meta/meta.c
+mv out/meta.c src/meta/meta.c
 
 ./make.sh
diff --git a/make.sh b/make.sh
index ed34171..34a97f2 100755
--- a/make.sh
+++ b/make.sh
@@ -50,8 +50,8 @@ test_example() {
 meta() {
     banner "Meta"
     c_compile src/meta/meta.c out/meta
-    meta_compile src/meta/meta.meta out/meta_meta.c
-    test_same src/meta/meta.c ./out/meta_meta.c
+    meta_compile src/meta/meta.meta out/meta.c
+    test_same src/meta/meta.c ./out/meta.c
     banner "Meta Performance Self"
     time out/meta <src/meta/meta.meta >/dev/null
     time out/meta <src/meta/meta.meta >/dev/null

2025-11-05 22:07 Rickard pushed to rlworkbench

commit cad7a78cd80197576b3af813110f1ec62e1096f2
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 22:05:48 2025 +0100

    Make it compile with C89

diff --git a/make.sh b/make.sh
index c4bad87..ed34171 100755
--- a/make.sh
+++ b/make.sh
@@ -77,7 +77,7 @@ meta_compile() {
 
 c_compile() {
     echo "Compiling $1 -> $2"
-    gcc -Wfatal-errors -Wall -Werror -o $2 $1
+    gcc -std=c89 -Wfatal-errors -Wall -Werror -o $2 $1
 }
 
 main
diff --git a/src/meta/meta.c b/src/meta/meta.c
index ea5c521..592270a 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -24,6 +24,7 @@ struct Runtime {
     struct Chunks* named_chunks_ruleVars;
     struct Chunks* named_chunks_orInit;
     struct Chunks* named_chunks_actionVars;
+    struct Chunks* named_chunks_placeholderVars;
     struct Chunks* current_chunks;
     unsigned int W_0;
     unsigned int W_1;
@@ -197,10 +198,11 @@ void run_action(struct Action* action, struct Runtime* runtime) {
 }
 
 int compare_buffers(struct Buffer* b1, struct Buffer* b2) {
+    int i;
     if (b1->size != b2->size) {
         return 0;
     }
-    for (int i=0; i<b1->size; i++) {
+    for (i=0; i<b1->size; i++) {
         if (b1->buffer[i] != b2->buffer[i]) {
             return 0;
         }
@@ -258,14 +260,15 @@ unsigned int max(unsigned int a, unsigned int b) {
 }
 
 void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {
+    int i, j;
     if (chunks) {
         struct Chunk* chunk = chunks->pre_first->next;
         while (chunk) {
             *indent += chunk->indentation_delta;
             if (chunk->data) {
-                for (int i=0; i<chunk->data->size; i++) {
+                for (i=0; i<chunk->data->size; i++) {
                     if (*last_char == '\n') {
-                        for (int j=0; j<*indent; j++) {
+                        for (j=0; j<*indent; j++) {
                             printf("    ");
                         }
                     }
@@ -469,521 +472,526 @@ static char symbol_187[] = "}\n";
 static char symbol_188[] = "}\n";
 static char symbol_189[] = "\n";
 static char symbol_190[] = "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n";
-static char symbol_191[] = "if (b1->size != b2->size) {\n";
-static char symbol_192[] = "return 0;\n";
-static char symbol_193[] = "}\n";
-static char symbol_194[] = "for (int i=0; i<b1->size; i++) {\n";
-static char symbol_195[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
-static char symbol_196[] = "return 0;\n";
-static char symbol_197[] = "}\n";
+static char symbol_191[] = "int i;\n";
+static char symbol_192[] = "if (b1->size != b2->size) {\n";
+static char symbol_193[] = "return 0;\n";
+static char symbol_194[] = "}\n";
+static char symbol_195[] = "for (i=0; i<b1->size; i++) {\n";
+static char symbol_196[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
+static char symbol_197[] = "return 0;\n";
 static char symbol_198[] = "}\n";
-static char symbol_199[] = "return 1;";
-static char symbol_200[] = "}\n";
-static char symbol_201[] = "\n";
-static char symbol_202[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
-static char symbol_203[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_204[] = "while (chunk) {\n";
-static char symbol_205[] = "if (compare_buffers(chunk->data, data)) {\n";
-static char symbol_206[] = "return 1;\n";
-static char symbol_207[] = "}\n";
-static char symbol_208[] = "chunk = chunk->next;\n";
-static char symbol_209[] = "}\n";
-static char symbol_210[] = "return 0;\n";
-static char symbol_211[] = "}\n";
-static char symbol_212[] = "\n";
-static char symbol_213[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
-static char symbol_214[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
-static char symbol_215[] = "next_variable->next = NULL;\n";
-static char symbol_216[] = "next_variable->name = name;\n";
-static char symbol_217[] = "next_variable->action = action;\n";
-static char symbol_218[] = "variables->last->next = next_variable;\n";
-static char symbol_219[] = "variables->last = next_variable;\n";
-static char symbol_220[] = "}\n";
-static char symbol_221[] = "\n";
-static char symbol_222[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
-static char symbol_223[] = "struct Variable* variable = variables->pre_first->next;\n";
-static char symbol_224[] = "while (variable) {\n";
-static char symbol_225[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
-static char symbol_226[] = "return variable->action;\n";
-static char symbol_227[] = "} else {\n";
-static char symbol_228[] = "variable = variable->next;\n";
-static char symbol_229[] = "}\n";
+static char symbol_199[] = "}\n";
+static char symbol_200[] = "return 1;";
+static char symbol_201[] = "}\n";
+static char symbol_202[] = "\n";
+static char symbol_203[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
+static char symbol_204[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_205[] = "while (chunk) {\n";
+static char symbol_206[] = "if (compare_buffers(chunk->data, data)) {\n";
+static char symbol_207[] = "return 1;\n";
+static char symbol_208[] = "}\n";
+static char symbol_209[] = "chunk = chunk->next;\n";
+static char symbol_210[] = "}\n";
+static char symbol_211[] = "return 0;\n";
+static char symbol_212[] = "}\n";
+static char symbol_213[] = "\n";
+static char symbol_214[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
+static char symbol_215[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
+static char symbol_216[] = "next_variable->next = NULL;\n";
+static char symbol_217[] = "next_variable->name = name;\n";
+static char symbol_218[] = "next_variable->action = action;\n";
+static char symbol_219[] = "variables->last->next = next_variable;\n";
+static char symbol_220[] = "variables->last = next_variable;\n";
+static char symbol_221[] = "}\n";
+static char symbol_222[] = "\n";
+static char symbol_223[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
+static char symbol_224[] = "struct Variable* variable = variables->pre_first->next;\n";
+static char symbol_225[] = "while (variable) {\n";
+static char symbol_226[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
+static char symbol_227[] = "return variable->action;\n";
+static char symbol_228[] = "} else {\n";
+static char symbol_229[] = "variable = variable->next;\n";
 static char symbol_230[] = "}\n";
-static char symbol_231[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
-static char symbol_232[] = "exit(1);\n";
-static char symbol_233[] = "}\n";
-static char symbol_234[] = "\n";
-static char symbol_235[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
-static char symbol_236[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
-static char symbol_237[] = "next_placeholder->next = NULL;\n";
-static char symbol_238[] = "next_placeholder->chunks = chunks;\n";
-static char symbol_239[] = "next_placeholder->action = action;\n";
-static char symbol_240[] = "placeholders->last->next = next_placeholder;\n";
-static char symbol_241[] = "placeholders->last = next_placeholder;\n";
-static char symbol_242[] = "}\n";
-static char symbol_243[] = "\n";
-static char symbol_244[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
-static char symbol_245[] = "return value + amount;\n";
-static char symbol_246[] = "}\n";
-static char symbol_247[] = "\n";
-static char symbol_248[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
-static char symbol_249[] = "return a > b ? a : b;\n";
-static char symbol_250[] = "}\n";
-static char symbol_251[] = "\n";
-static char symbol_252[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
-static char symbol_253[] = "if (chunks) {\n";
-static char symbol_254[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_255[] = "while (chunk) {\n";
-static char symbol_256[] = "*indent += chunk->indentation_delta;\n";
-static char symbol_257[] = "if (chunk->data) {\n";
-static char symbol_258[] = "for (int i=0; i<chunk->data->size; i++) {\n";
-static char symbol_259[] = "if (*last_char == '\\n') {\n";
-static char symbol_260[] = "for (int j=0; j<*indent; j++) {\n";
-static char symbol_261[] = "printf(\"    \");\n";
-static char symbol_262[] = "}\n";
-static char symbol_263[] = "}\n";
-static char symbol_264[] = "*last_char = chunk->data->buffer[i];\n";
-static char symbol_265[] = "putchar(*last_char);\n";
-static char symbol_266[] = "}\n";
-static char symbol_267[] = "}\n";
-static char symbol_268[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_269[] = "chunk = chunk->next;\n";
-static char symbol_270[] = "}\n";
-static char symbol_271[] = "}\n";
+static char symbol_231[] = "}\n";
+static char symbol_232[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
+static char symbol_233[] = "exit(1);\n";
+static char symbol_234[] = "}\n";
+static char symbol_235[] = "\n";
+static char symbol_236[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
+static char symbol_237[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
+static char symbol_238[] = "next_placeholder->next = NULL;\n";
+static char symbol_239[] = "next_placeholder->chunks = chunks;\n";
+static char symbol_240[] = "next_placeholder->action = action;\n";
+static char symbol_241[] = "placeholders->last->next = next_placeholder;\n";
+static char symbol_242[] = "placeholders->last = next_placeholder;\n";
+static char symbol_243[] = "}\n";
+static char symbol_244[] = "\n";
+static char symbol_245[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
+static char symbol_246[] = "return value + amount;\n";
+static char symbol_247[] = "}\n";
+static char symbol_248[] = "\n";
+static char symbol_249[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
+static char symbol_250[] = "return a > b ? a : b;\n";
+static char symbol_251[] = "}\n";
+static char symbol_252[] = "\n";
+static char symbol_253[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
+static char symbol_254[] = "int i, j;\n";
+static char symbol_255[] = "if (chunks) {\n";
+static char symbol_256[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_257[] = "while (chunk) {\n";
+static char symbol_258[] = "*indent += chunk->indentation_delta;\n";
+static char symbol_259[] = "if (chunk->data) {\n";
+static char symbol_260[] = "for (i=0; i<chunk->data->size; i++) {\n";
+static char symbol_261[] = "if (*last_char == '\\n') {\n";
+static char symbol_262[] = "for (j=0; j<*indent; j++) {\n";
+static char symbol_263[] = "printf(\"    \");\n";
+static char symbol_264[] = "}\n";
+static char symbol_265[] = "}\n";
+static char symbol_266[] = "*last_char = chunk->data->buffer[i];\n";
+static char symbol_267[] = "putchar(*last_char);\n";
+static char symbol_268[] = "}\n";
+static char symbol_269[] = "}\n";
+static char symbol_270[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_271[] = "chunk = chunk->next;\n";
 static char symbol_272[] = "}\n";
-static char symbol_273[] = "\n";
-static char symbol_274[] = "\n";
-static char symbol_275[] = "xs";
-static char symbol_276[] = "int main(void) {\n";
-static char symbol_277[] = "arena_limit = 2<<25;\n";
-static char symbol_278[] = "arena_pos = 0;\n";
-static char symbol_279[] = "arena = malloc(arena_limit);\n";
-static char symbol_280[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_281[] = "char last_char = '\\n';\n";
-static char symbol_282[] = "int indent = 0;\n";
-static char symbol_283[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_284[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_285[] = "struct Placeholder* placeholder;\n";
-static char symbol_286[] = "if (action == NULL) {\n";
-static char symbol_287[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_288[] = "exit(1);\n";
-static char symbol_289[] = "}\n";
-static char symbol_290[] = "run_action(action, runtime);\n";
-static char symbol_291[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_292[] = "while (placeholder) {\n";
-static char symbol_293[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_294[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_295[] = "placeholder = placeholder->next;\n";
-static char symbol_296[] = "}\n";
-static char symbol_297[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_273[] = "}\n";
+static char symbol_274[] = "}\n";
+static char symbol_275[] = "\n";
+static char symbol_276[] = "\n";
+static char symbol_277[] = "xs";
+static char symbol_278[] = "int main(void) {\n";
+static char symbol_279[] = "arena_limit = 2<<25;\n";
+static char symbol_280[] = "arena_pos = 0;\n";
+static char symbol_281[] = "arena = malloc(arena_limit);\n";
+static char symbol_282[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_283[] = "char last_char = '\\n';\n";
+static char symbol_284[] = "int indent = 0;\n";
+static char symbol_285[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_286[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_287[] = "struct Placeholder* placeholder;\n";
+static char symbol_288[] = "if (action == NULL) {\n";
+static char symbol_289[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_290[] = "exit(1);\n";
+static char symbol_291[] = "}\n";
+static char symbol_292[] = "run_action(action, runtime);\n";
+static char symbol_293[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_294[] = "while (placeholder) {\n";
+static char symbol_295[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_296[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_297[] = "placeholder = placeholder->next;\n";
 static char symbol_298[] = "}\n";
-static char symbol_299[] = "x";
-static char symbol_300[] = "=";
-static char symbol_301[] = "y";
-static char symbol_302[] = ";";
-static char symbol_303[] = "struct Action* rule_";
-static char symbol_304[] = "x";
-static char symbol_305[] = "(struct ParseState* parse_state);\n";
+static char symbol_299[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_300[] = "return 0;\n";
+static char symbol_301[] = "}\n";
+static char symbol_302[] = "x";
+static char symbol_303[] = "=";
+static char symbol_304[] = "y";
+static char symbol_305[] = ";";
 static char symbol_306[] = "struct Action* rule_";
 static char symbol_307[] = "x";
-static char symbol_308[] = "(struct ParseState* parse_state) {\n";
-static char symbol_309[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_310[] = "unsigned int action_start_pos;\n";
-static char symbol_311[] = "struct Action* _;\n";
-static char symbol_312[] = "y";
-static char symbol_313[] = "return NULL;\n";
-static char symbol_314[] = "}\n";
-static char symbol_315[] = "\n";
-static char symbol_316[] = "x";
-static char symbol_317[] = "xs";
-static char symbol_318[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_308[] = "(struct ParseState* parse_state);\n";
+static char symbol_309[] = "struct Action* rule_";
+static char symbol_310[] = "x";
+static char symbol_311[] = "(struct ParseState* parse_state) {\n";
+static char symbol_312[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_313[] = "unsigned int action_start_pos;\n";
+static char symbol_314[] = "struct Action* _;\n";
+static char symbol_315[] = "y";
+static char symbol_316[] = "return NULL;\n";
+static char symbol_317[] = "}\n";
+static char symbol_318[] = "\n";
 static char symbol_319[] = "x";
 static char symbol_320[] = "xs";
-static char symbol_321[] = "x";
+static char symbol_321[] = "or_backtrack_pos = parse_state->pos;\n";
 static char symbol_322[] = "x";
-static char symbol_323[] = "|";
+static char symbol_323[] = "xs";
 static char symbol_324[] = "x";
-static char symbol_325[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_326[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_325[] = "x";
+static char symbol_326[] = "|";
 static char symbol_327[] = "x";
-static char symbol_328[] = "x";
-static char symbol_329[] = "y";
+static char symbol_328[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_329[] = "action_start_pos = parse_state->pos;\n";
 static char symbol_330[] = "x";
-static char symbol_331[] = "if (_) {\n";
+static char symbol_331[] = "x";
 static char symbol_332[] = "y";
-static char symbol_333[] = "}\n";
-static char symbol_334[] = "y";
+static char symbol_333[] = "x";
+static char symbol_334[] = "if (_) {\n";
 static char symbol_335[] = "y";
-static char symbol_336[] = "!";
-static char symbol_337[] = "x";
-static char symbol_338[] = "unsigned int nlookahead_pos;\n";
-static char symbol_339[] = "unsigned int nlookahead_pos;\n";
-static char symbol_340[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_341[] = "x";
-static char symbol_342[] = "if (_ == NULL) {\n";
-static char symbol_343[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_344[] = "} else {\n";
-static char symbol_345[] = "_ = NULL;\n";
-static char symbol_346[] = "}\n";
-static char symbol_347[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_348[] = "&";
-static char symbol_349[] = "x";
-static char symbol_350[] = "unsigned int lookahead_pos;\n";
-static char symbol_351[] = "unsigned int lookahead_pos;\n";
-static char symbol_352[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_353[] = "x";
-static char symbol_354[] = "if (_ == NULL) {\n";
-static char symbol_355[] = "_ = NULL;\n";
-static char symbol_356[] = "} else {\n";
-static char symbol_357[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_358[] = "}\n";
-static char symbol_359[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_360[] = "x";
-static char symbol_361[] = "y";
-static char symbol_362[] = "x";
-static char symbol_363[] = "y";
-static char symbol_364[] = ":";
+static char symbol_336[] = "}\n";
+static char symbol_337[] = "y";
+static char symbol_338[] = "y";
+static char symbol_339[] = "!";
+static char symbol_340[] = "x";
+static char symbol_341[] = "unsigned int nlookahead_pos;\n";
+static char symbol_342[] = "unsigned int nlookahead_pos;\n";
+static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_344[] = "x";
+static char symbol_345[] = "if (_ == NULL) {\n";
+static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_347[] = "} else {\n";
+static char symbol_348[] = "_ = NULL;\n";
+static char symbol_349[] = "}\n";
+static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_351[] = "&";
+static char symbol_352[] = "x";
+static char symbol_353[] = "unsigned int lookahead_pos;\n";
+static char symbol_354[] = "unsigned int lookahead_pos;\n";
+static char symbol_355[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_356[] = "x";
+static char symbol_357[] = "if (_ == NULL) {\n";
+static char symbol_358[] = "_ = NULL;\n";
+static char symbol_359[] = "} else {\n";
+static char symbol_360[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_361[] = "}\n";
+static char symbol_362[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_363[] = "x";
+static char symbol_364[] = "y";
 static char symbol_365[] = "x";
-static char symbol_366[] = "append_named_action(variables, ";
-static char symbol_367[] = "x";
-static char symbol_368[] = ", _);\n";
-static char symbol_369[] = "x";
-static char symbol_370[] = "*";
-static char symbol_371[] = "struct Variables* star_variables;\n";
-static char symbol_372[] = "struct Variables* star_variables;\n";
-static char symbol_373[] = "unsigned int star_pos;\n";
-static char symbol_374[] = "unsigned int star_pos;\n";
-static char symbol_375[] = "unsigned int star_start_pos;\n";
-static char symbol_376[] = "unsigned int star_start_pos;\n";
-static char symbol_377[] = "star_variables = create_variables();\n";
-static char symbol_378[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_379[] = "while (1) {\n";
-static char symbol_380[] = "star_pos = parse_state->pos;\n";
-static char symbol_381[] = "x";
-static char symbol_382[] = "if (_ == NULL) {\n";
-static char symbol_383[] = "parse_state->pos = star_pos;\n";
-static char symbol_384[] = "break;\n";
-static char symbol_385[] = "}\n";
-static char symbol_386[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_387[] = "}\n";
-static char symbol_388[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_389[] = "x";
-static char symbol_390[] = "x";
-static char symbol_391[] = "_";
+static char symbol_366[] = "y";
+static char symbol_367[] = ":";
+static char symbol_368[] = "x";
+static char symbol_369[] = "append_named_action(variables, ";
+static char symbol_370[] = "x";
+static char symbol_371[] = ", _);\n";
+static char symbol_372[] = "x";
+static char symbol_373[] = "*";
+static char symbol_374[] = "struct Variables* star_variables;\n";
+static char symbol_375[] = "struct Variables* star_variables;\n";
+static char symbol_376[] = "unsigned int star_pos;\n";
+static char symbol_377[] = "unsigned int star_pos;\n";
+static char symbol_378[] = "unsigned int star_start_pos;\n";
+static char symbol_379[] = "unsigned int star_start_pos;\n";
+static char symbol_380[] = "star_variables = create_variables();\n";
+static char symbol_381[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_382[] = "while (1) {\n";
+static char symbol_383[] = "star_pos = parse_state->pos;\n";
+static char symbol_384[] = "x";
+static char symbol_385[] = "if (_ == NULL) {\n";
+static char symbol_386[] = "parse_state->pos = star_pos;\n";
+static char symbol_387[] = "break;\n";
+static char symbol_388[] = "}\n";
+static char symbol_389[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_390[] = "}\n";
+static char symbol_391[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_392[] = "x";
-static char symbol_393[] = "bitpattern <<= 1;\n";
-static char symbol_394[] = "bitmask <<= 1;\n";
+static char symbol_393[] = "x";
+static char symbol_394[] = "_";
 static char symbol_395[] = "x";
-static char symbol_396[] = "x";
-static char symbol_397[] = "x";
-static char symbol_398[] = "bitmask |= 1;\n";
-static char symbol_399[] = "0";
-static char symbol_400[] = "1";
-static char symbol_401[] = "bitpattern |= 1;\n";
-static char symbol_402[] = "x";
-static char symbol_403[] = "_ = rule_";
-static char symbol_404[] = "x";
-static char symbol_405[] = "(parse_state);\n";
-static char symbol_406[] = "0b";
-static char symbol_407[] = "xs";
-static char symbol_408[] = "unsigned char bitpattern;\n";
-static char symbol_409[] = "unsigned char bitpattern;\n";
-static char symbol_410[] = "unsigned char bitmask;\n";
-static char symbol_411[] = "unsigned char bitmask;\n";
-static char symbol_412[] = "bitpattern = 0;\n";
-static char symbol_413[] = "bitmask = 0;\n";
-static char symbol_414[] = "xs";
-static char symbol_415[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_416[] = "parse_state->pos += 1;\n";
-static char symbol_417[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_418[] = "} else {\n";
-static char symbol_419[] = "_ = NULL;\n";
-static char symbol_420[] = "}\n";
-static char symbol_421[] = ".";
-static char symbol_422[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_423[] = "parse_state->pos += 1;\n";
-static char symbol_424[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_425[] = "} else {\n";
-static char symbol_426[] = "_ = NULL;\n";
-static char symbol_427[] = "}\n";
-static char symbol_428[] = "x";
-static char symbol_429[] = "struct Buffer* data;\n";
-static char symbol_430[] = "struct Buffer* data;\n";
-static char symbol_431[] = "data = ";
-static char symbol_432[] = "x";
-static char symbol_433[] = ";\n";
-static char symbol_434[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_435[] = "parse_state->pos += data->size;\n";
-static char symbol_436[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_437[] = "} else {\n";
-static char symbol_438[] = "_ = NULL;\n";
-static char symbol_439[] = "}\n";
-static char symbol_440[] = "->";
-static char symbol_441[] = "{";
-static char symbol_442[] = "xs";
-static char symbol_443[] = "}";
-static char symbol_444[] = "void action_";
-static char symbol_445[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_446[] = "xs";
-static char symbol_447[] = "}\n";
-static char symbol_448[] = "\n";
-static char symbol_449[] = "struct Variables* variables;\n";
-static char symbol_450[] = "struct Variables* variables;\n";
-static char symbol_451[] = "variables = create_variables();\n";
-static char symbol_452[] = "variables = create_variables();\n";
-static char symbol_453[] = "return create_action(action_";
-static char symbol_454[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_455[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_456[] = "unseen(";
-static char symbol_457[] = "x";
-static char symbol_458[] = ") -> {";
-static char symbol_459[] = "ys";
-static char symbol_460[] = "}";
-static char symbol_461[] = "struct Action* action;\n";
-static char symbol_462[] = "struct Action* action;\n";
-static char symbol_463[] = "action = lookup_action(variables, ";
-static char symbol_464[] = "x";
-static char symbol_465[] = ");\n";
-static char symbol_466[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_467[] = "ys";
-static char symbol_468[] = "}\n";
-static char symbol_469[] = "unique(";
-static char symbol_470[] = "x";
-static char symbol_471[] = ")";
-static char symbol_472[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_396[] = "bitpattern <<= 1;\n";
+static char symbol_397[] = "bitmask <<= 1;\n";
+static char symbol_398[] = "x";
+static char symbol_399[] = "x";
+static char symbol_400[] = "x";
+static char symbol_401[] = "bitmask |= 1;\n";
+static char symbol_402[] = "0";
+static char symbol_403[] = "1";
+static char symbol_404[] = "bitpattern |= 1;\n";
+static char symbol_405[] = "x";
+static char symbol_406[] = "_ = rule_";
+static char symbol_407[] = "x";
+static char symbol_408[] = "(parse_state);\n";
+static char symbol_409[] = "0b";
+static char symbol_410[] = "xs";
+static char symbol_411[] = "unsigned char bitpattern;\n";
+static char symbol_412[] = "unsigned char bitpattern;\n";
+static char symbol_413[] = "unsigned char bitmask;\n";
+static char symbol_414[] = "unsigned char bitmask;\n";
+static char symbol_415[] = "bitpattern = 0;\n";
+static char symbol_416[] = "bitmask = 0;\n";
+static char symbol_417[] = "xs";
+static char symbol_418[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_419[] = "parse_state->pos += 1;\n";
+static char symbol_420[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_421[] = "} else {\n";
+static char symbol_422[] = "_ = NULL;\n";
+static char symbol_423[] = "}\n";
+static char symbol_424[] = ".";
+static char symbol_425[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_426[] = "parse_state->pos += 1;\n";
+static char symbol_427[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_428[] = "} else {\n";
+static char symbol_429[] = "_ = NULL;\n";
+static char symbol_430[] = "}\n";
+static char symbol_431[] = "x";
+static char symbol_432[] = "struct Buffer* data;\n";
+static char symbol_433[] = "struct Buffer* data;\n";
+static char symbol_434[] = "data = ";
+static char symbol_435[] = "x";
+static char symbol_436[] = ";\n";
+static char symbol_437[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_438[] = "parse_state->pos += data->size;\n";
+static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_440[] = "} else {\n";
+static char symbol_441[] = "_ = NULL;\n";
+static char symbol_442[] = "}\n";
+static char symbol_443[] = "->";
+static char symbol_444[] = "{";
+static char symbol_445[] = "xs";
+static char symbol_446[] = "}";
+static char symbol_447[] = "void action_";
+static char symbol_448[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_449[] = "xs";
+static char symbol_450[] = "}\n";
+static char symbol_451[] = "\n";
+static char symbol_452[] = "struct Variables* variables;\n";
+static char symbol_453[] = "struct Variables* variables;\n";
+static char symbol_454[] = "variables = create_variables();\n";
+static char symbol_455[] = "variables = create_variables();\n";
+static char symbol_456[] = "return create_action(action_";
+static char symbol_457[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_458[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_459[] = "unseen(";
+static char symbol_460[] = "x";
+static char symbol_461[] = ") -> {";
+static char symbol_462[] = "ys";
+static char symbol_463[] = "}";
+static char symbol_464[] = "struct Action* action;\n";
+static char symbol_465[] = "struct Action* action;\n";
+static char symbol_466[] = "action = lookup_action(variables, ";
+static char symbol_467[] = "x";
+static char symbol_468[] = ");\n";
+static char symbol_469[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_470[] = "ys";
+static char symbol_471[] = "}\n";
+static char symbol_472[] = "unique(";
 static char symbol_473[] = "x";
-static char symbol_474[] = ")) {\n";
-static char symbol_475[] = "append_data(runtime->current_chunks, ";
+static char symbol_474[] = ")";
+static char symbol_475[] = "if (!seen(runtime->current_chunks, ";
 static char symbol_476[] = "x";
-static char symbol_477[] = ", 0, NULL);\n";
-static char symbol_478[] = "}\n";
-static char symbol_479[] = ">";
-static char symbol_480[] = "x";
-static char symbol_481[] = "{";
-static char symbol_482[] = "ys";
-static char symbol_483[] = "}";
-static char symbol_484[] = "struct Chunks* last_chunks;\n";
-static char symbol_485[] = "struct Chunks* last_chunks;\n";
-static char symbol_486[] = "struct Chunks* chunks;\n";
-static char symbol_487[] = "struct Chunks* chunks;\n";
-static char symbol_488[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_489[] = "chunks = runtime->named_chunks_";
-static char symbol_490[] = "x";
-static char symbol_491[] = ";\n";
-static char symbol_492[] = "runtime->current_chunks = chunks;\n";
-static char symbol_493[] = "ys";
-static char symbol_494[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_495[] = "<";
-static char symbol_496[] = "x";
-static char symbol_497[] = "struct Chunks* chunks;\n";
-static char symbol_498[] = "struct Chunks* chunks;\n";
-static char symbol_499[] = "chunks = create_chunks();\n";
-static char symbol_500[] = "runtime->named_chunks_";
-static char symbol_501[] = "x";
-static char symbol_502[] = " = chunks;\n";
-static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_477[] = ")) {\n";
+static char symbol_478[] = "append_data(runtime->current_chunks, ";
+static char symbol_479[] = "x";
+static char symbol_480[] = ", 0, NULL);\n";
+static char symbol_481[] = "}\n";
+static char symbol_482[] = ">";
+static char symbol_483[] = "x";
+static char symbol_484[] = "{";
+static char symbol_485[] = "ys";
+static char symbol_486[] = "}";
+static char symbol_487[] = "struct Chunks* last_chunks;\n";
+static char symbol_488[] = "struct Chunks* last_chunks;\n";
+static char symbol_489[] = "struct Chunks* chunks;\n";
+static char symbol_490[] = "struct Chunks* chunks;\n";
+static char symbol_491[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_492[] = "chunks = runtime->named_chunks_";
+static char symbol_493[] = "x";
+static char symbol_494[] = ";\n";
+static char symbol_495[] = "runtime->current_chunks = chunks;\n";
+static char symbol_496[] = "ys";
+static char symbol_497[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_498[] = "<";
+static char symbol_499[] = "x";
+static char symbol_500[] = "struct Chunks* chunks;\n";
+static char symbol_501[] = "struct Chunks* chunks;\n";
+static char symbol_502[] = "chunks = create_chunks();\n";
+static char symbol_503[] = "runtime->named_chunks_";
 static char symbol_504[] = "x";
-static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_506[] = "x";
-static char symbol_507[] = "), 0, NULL);\n";
-static char symbol_508[] = "x";
-static char symbol_509[] = "run_action(lookup_action(variables, ";
-static char symbol_510[] = "x";
-static char symbol_511[] = "), runtime);\n";
-static char symbol_512[] = "x";
-static char symbol_513[] = "void placeholder_";
-static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_515[] = "void placeholder_";
-static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_517[] = "x";
-static char symbol_518[] = "}\n";
-static char symbol_519[] = "\n";
-static char symbol_520[] = "struct Chunks* chunks;\n";
-static char symbol_521[] = "struct Chunks* chunks;\n";
-static char symbol_522[] = "chunks = create_chunks();\n";
-static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_524[] = ", variables, NULL, 0, 0));\n";
-static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_526[] = "x";
-static char symbol_527[] = "append_data(runtime->current_chunks, ";
-static char symbol_528[] = "x";
-static char symbol_529[] = ", 0, NULL);\n";
-static char symbol_530[] = "#";
+static char symbol_505[] = " = chunks;\n";
+static char symbol_506[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_507[] = "x";
+static char symbol_508[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_509[] = "x";
+static char symbol_510[] = "), 0, NULL);\n";
+static char symbol_511[] = "x";
+static char symbol_512[] = "run_action(lookup_action(variables, ";
+static char symbol_513[] = "x";
+static char symbol_514[] = "), runtime);\n";
+static char symbol_515[] = "x";
+static char symbol_516[] = "void placeholder_";
+static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_518[] = "void placeholder_";
+static char symbol_519[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_520[] = "x";
+static char symbol_521[] = "}\n";
+static char symbol_522[] = "\n";
+static char symbol_523[] = "struct Chunks* chunks;\n";
+static char symbol_524[] = "struct Chunks* chunks;\n";
+static char symbol_525[] = "chunks = create_chunks();\n";
+static char symbol_526[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_527[] = ", variables, NULL, 0, 0));\n";
+static char symbol_528[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_529[] = "x";
+static char symbol_530[] = "append_data(runtime->current_chunks, ";
 static char symbol_531[] = "x";
-static char symbol_532[] = "(";
-static char symbol_533[] = "y";
-static char symbol_534[] = " ";
-static char symbol_535[] = "z";
-static char symbol_536[] = ")";
-static char symbol_537[] = "runtime->W_";
-static char symbol_538[] = "y";
-static char symbol_539[] = " = ";
-static char symbol_540[] = "x";
-static char symbol_541[] = "(runtime->W_";
-static char symbol_542[] = "y";
-static char symbol_543[] = " ? runtime->W_";
-static char symbol_544[] = "y";
-static char symbol_545[] = " : 0, ";
-static char symbol_546[] = "z";
-static char symbol_547[] = ");\n";
-static char symbol_548[] = ">";
-static char symbol_549[] = "xs";
-static char symbol_550[] = "<";
-static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_532[] = ", 0, NULL);\n";
+static char symbol_533[] = "#";
+static char symbol_534[] = "x";
+static char symbol_535[] = "(";
+static char symbol_536[] = "y";
+static char symbol_537[] = " ";
+static char symbol_538[] = "z";
+static char symbol_539[] = ")";
+static char symbol_540[] = "runtime->W_";
+static char symbol_541[] = "y";
+static char symbol_542[] = " = ";
+static char symbol_543[] = "x";
+static char symbol_544[] = "(runtime->W_";
+static char symbol_545[] = "y";
+static char symbol_546[] = " ? runtime->W_";
+static char symbol_547[] = "y";
+static char symbol_548[] = " : 0, ";
+static char symbol_549[] = "z";
+static char symbol_550[] = ");\n";
+static char symbol_551[] = ">";
 static char symbol_552[] = "xs";
-static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_554[] = "x";
-static char symbol_555[] = "x";
-static char symbol_556[] = "struct Chunks* named_chunks_";
+static char symbol_553[] = "<";
+static char symbol_554[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_555[] = "xs";
+static char symbol_556[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_557[] = "x";
-static char symbol_558[] = ";\n";
-static char symbol_559[] = "x";
+static char symbol_558[] = "x";
+static char symbol_559[] = "struct Chunks* named_chunks_";
 static char symbol_560[] = "x";
-static char symbol_561[] = "x";
-static char symbol_562[] = "0";
-static char symbol_563[] = "1";
-static char symbol_564[] = "2";
-static char symbol_565[] = "3";
-static char symbol_566[] = "4";
-static char symbol_567[] = "5";
-static char symbol_568[] = "6";
-static char symbol_569[] = "7";
-static char symbol_570[] = "8";
-static char symbol_571[] = "9";
-static char symbol_572[] = "{";
-static char symbol_573[] = "x";
-static char symbol_574[] = "*";
-static char symbol_575[] = "y";
-static char symbol_576[] = "}";
-static char symbol_577[] = "for (int i=0; i < ";
+static char symbol_561[] = ";\n";
+static char symbol_562[] = "x";
+static char symbol_563[] = "x";
+static char symbol_564[] = "x";
+static char symbol_565[] = "0";
+static char symbol_566[] = "1";
+static char symbol_567[] = "2";
+static char symbol_568[] = "3";
+static char symbol_569[] = "4";
+static char symbol_570[] = "5";
+static char symbol_571[] = "6";
+static char symbol_572[] = "7";
+static char symbol_573[] = "8";
+static char symbol_574[] = "9";
+static char symbol_575[] = "{";
+static char symbol_576[] = "x";
+static char symbol_577[] = "*";
 static char symbol_578[] = "y";
-static char symbol_579[] = "; i++) {\n";
-static char symbol_580[] = "append_data(runtime->current_chunks, ";
-static char symbol_581[] = "x";
-static char symbol_582[] = ", 0, NULL);\n";
-static char symbol_583[] = "}\n";
-static char symbol_584[] = "x";
-static char symbol_585[] = "(runtime->W_";
+static char symbol_579[] = "}";
+static char symbol_580[] = "int i;\n";
+static char symbol_581[] = "int i;\n";
+static char symbol_582[] = "for (i=0; i < ";
+static char symbol_583[] = "y";
+static char symbol_584[] = "; i++) {\n";
+static char symbol_585[] = "append_data(runtime->current_chunks, ";
 static char symbol_586[] = "x";
-static char symbol_587[] = " ? runtime->W_";
-static char symbol_588[] = "x";
-static char symbol_589[] = " : 0)";
-static char symbol_590[] = "(";
+static char symbol_587[] = ", 0, NULL);\n";
+static char symbol_588[] = "}\n";
+static char symbol_589[] = "x";
+static char symbol_590[] = "(runtime->W_";
 static char symbol_591[] = "x";
-static char symbol_592[] = "-";
-static char symbol_593[] = "y";
-static char symbol_594[] = ")";
-static char symbol_595[] = "((runtime->W_";
+static char symbol_592[] = " ? runtime->W_";
+static char symbol_593[] = "x";
+static char symbol_594[] = " : 0)";
+static char symbol_595[] = "(";
 static char symbol_596[] = "x";
-static char symbol_597[] = " ? runtime->W_";
-static char symbol_598[] = "x";
-static char symbol_599[] = " : 0)-";
-static char symbol_600[] = "y";
-static char symbol_601[] = ")";
-static char symbol_602[] = "\"";
-static char symbol_603[] = "xs";
-static char symbol_604[] = "\"";
-static char symbol_605[] = "static char symbol_";
-static char symbol_606[] = "[] = \"";
-static char symbol_607[] = "xs";
-static char symbol_608[] = "\";\n";
-static char symbol_609[] = "buffer_from_cstring(symbol_";
-static char symbol_610[] = ", sizeof(symbol_";
-static char symbol_611[] = ")-1)";
-static char symbol_612[] = "x";
-static char symbol_613[] = "xs";
-static char symbol_614[] = "lookup_action(variables, ";
-static char symbol_615[] = "x";
-static char symbol_616[] = ")";
-static char symbol_617[] = "xs";
-static char symbol_618[] = ".";
-static char symbol_619[] = "x";
-static char symbol_620[] = "->";
-static char symbol_621[] = "x";
-static char symbol_622[] = "W[";
-static char symbol_623[] = "x";
-static char symbol_624[] = "]";
-static char symbol_625[] = "x";
-static char symbol_626[] = "unsigned int W_";
-static char symbol_627[] = "x";
-static char symbol_628[] = ";\n";
-static char symbol_629[] = "x";
-static char symbol_630[] = "\\\"";
-static char symbol_631[] = "\"";
-static char symbol_632[] = "xs";
-static char symbol_633[] = "static char symbol_";
-static char symbol_634[] = "[] = \"";
-static char symbol_635[] = "xs";
-static char symbol_636[] = "\";\n";
-static char symbol_637[] = "buffer_from_cstring(symbol_";
-static char symbol_638[] = ", sizeof(symbol_";
-static char symbol_639[] = ")-1)";
-static char symbol_640[] = "\'";
-static char symbol_641[] = "\\\'";
-static char symbol_642[] = "\"";
-static char symbol_643[] = "\\\"";
-static char symbol_644[] = "x";
-static char symbol_645[] = "static char symbol_";
-static char symbol_646[] = "[] = \"";
-static char symbol_647[] = "x";
-static char symbol_648[] = "\";\n";
-static char symbol_649[] = "buffer_from_cstring(symbol_";
-static char symbol_650[] = ", sizeof(symbol_";
-static char symbol_651[] = ")-1)";
-static char symbol_652[] = "a";
-static char symbol_653[] = "b";
-static char symbol_654[] = "c";
-static char symbol_655[] = "d";
-static char symbol_656[] = "e";
-static char symbol_657[] = "f";
-static char symbol_658[] = "g";
-static char symbol_659[] = "h";
-static char symbol_660[] = "i";
-static char symbol_661[] = "j";
-static char symbol_662[] = "k";
-static char symbol_663[] = "l";
-static char symbol_664[] = "m";
-static char symbol_665[] = "n";
-static char symbol_666[] = "o";
-static char symbol_667[] = "p";
-static char symbol_668[] = "q";
-static char symbol_669[] = "r";
-static char symbol_670[] = "s";
-static char symbol_671[] = "t";
-static char symbol_672[] = "u";
-static char symbol_673[] = "v";
-static char symbol_674[] = "w";
-static char symbol_675[] = "x";
-static char symbol_676[] = "y";
-static char symbol_677[] = "z";
-static char symbol_678[] = "A";
-static char symbol_679[] = "B";
-static char symbol_680[] = "C";
-static char symbol_681[] = "D";
-static char symbol_682[] = "E";
-static char symbol_683[] = "F";
-static char symbol_684[] = "G";
-static char symbol_685[] = "H";
-static char symbol_686[] = "I";
-static char symbol_687[] = "J";
-static char symbol_688[] = "K";
-static char symbol_689[] = "L";
-static char symbol_690[] = "M";
-static char symbol_691[] = "N";
-static char symbol_692[] = "O";
-static char symbol_693[] = "P";
-static char symbol_694[] = "Q";
-static char symbol_695[] = "R";
-static char symbol_696[] = "S";
-static char symbol_697[] = "T";
-static char symbol_698[] = "U";
-static char symbol_699[] = "V";
-static char symbol_700[] = "W";
-static char symbol_701[] = "X";
-static char symbol_702[] = "Y";
-static char symbol_703[] = "Z";
-static char symbol_704[] = " ";
-static char symbol_705[] = "\n";
+static char symbol_597[] = "-";
+static char symbol_598[] = "y";
+static char symbol_599[] = ")";
+static char symbol_600[] = "((runtime->W_";
+static char symbol_601[] = "x";
+static char symbol_602[] = " ? runtime->W_";
+static char symbol_603[] = "x";
+static char symbol_604[] = " : 0)-";
+static char symbol_605[] = "y";
+static char symbol_606[] = ")";
+static char symbol_607[] = "\"";
+static char symbol_608[] = "xs";
+static char symbol_609[] = "\"";
+static char symbol_610[] = "static char symbol_";
+static char symbol_611[] = "[] = \"";
+static char symbol_612[] = "xs";
+static char symbol_613[] = "\";\n";
+static char symbol_614[] = "buffer_from_cstring(symbol_";
+static char symbol_615[] = ", sizeof(symbol_";
+static char symbol_616[] = ")-1)";
+static char symbol_617[] = "x";
+static char symbol_618[] = "xs";
+static char symbol_619[] = "lookup_action(variables, ";
+static char symbol_620[] = "x";
+static char symbol_621[] = ")";
+static char symbol_622[] = "xs";
+static char symbol_623[] = ".";
+static char symbol_624[] = "x";
+static char symbol_625[] = "->";
+static char symbol_626[] = "x";
+static char symbol_627[] = "W[";
+static char symbol_628[] = "x";
+static char symbol_629[] = "]";
+static char symbol_630[] = "x";
+static char symbol_631[] = "unsigned int W_";
+static char symbol_632[] = "x";
+static char symbol_633[] = ";\n";
+static char symbol_634[] = "x";
+static char symbol_635[] = "\\\"";
+static char symbol_636[] = "\"";
+static char symbol_637[] = "xs";
+static char symbol_638[] = "static char symbol_";
+static char symbol_639[] = "[] = \"";
+static char symbol_640[] = "xs";
+static char symbol_641[] = "\";\n";
+static char symbol_642[] = "buffer_from_cstring(symbol_";
+static char symbol_643[] = ", sizeof(symbol_";
+static char symbol_644[] = ")-1)";
+static char symbol_645[] = "\'";
+static char symbol_646[] = "\\\'";
+static char symbol_647[] = "\"";
+static char symbol_648[] = "\\\"";
+static char symbol_649[] = "x";
+static char symbol_650[] = "static char symbol_";
+static char symbol_651[] = "[] = \"";
+static char symbol_652[] = "x";
+static char symbol_653[] = "\";\n";
+static char symbol_654[] = "buffer_from_cstring(symbol_";
+static char symbol_655[] = ", sizeof(symbol_";
+static char symbol_656[] = ")-1)";
+static char symbol_657[] = "a";
+static char symbol_658[] = "b";
+static char symbol_659[] = "c";
+static char symbol_660[] = "d";
+static char symbol_661[] = "e";
+static char symbol_662[] = "f";
+static char symbol_663[] = "g";
+static char symbol_664[] = "h";
+static char symbol_665[] = "i";
+static char symbol_666[] = "j";
+static char symbol_667[] = "k";
+static char symbol_668[] = "l";
+static char symbol_669[] = "m";
+static char symbol_670[] = "n";
+static char symbol_671[] = "o";
+static char symbol_672[] = "p";
+static char symbol_673[] = "q";
+static char symbol_674[] = "r";
+static char symbol_675[] = "s";
+static char symbol_676[] = "t";
+static char symbol_677[] = "u";
+static char symbol_678[] = "v";
+static char symbol_679[] = "w";
+static char symbol_680[] = "x";
+static char symbol_681[] = "y";
+static char symbol_682[] = "z";
+static char symbol_683[] = "A";
+static char symbol_684[] = "B";
+static char symbol_685[] = "C";
+static char symbol_686[] = "D";
+static char symbol_687[] = "E";
+static char symbol_688[] = "F";
+static char symbol_689[] = "G";
+static char symbol_690[] = "H";
+static char symbol_691[] = "I";
+static char symbol_692[] = "J";
+static char symbol_693[] = "K";
+static char symbol_694[] = "L";
+static char symbol_695[] = "M";
+static char symbol_696[] = "N";
+static char symbol_697[] = "O";
+static char symbol_698[] = "P";
+static char symbol_699[] = "Q";
+static char symbol_700[] = "R";
+static char symbol_701[] = "S";
+static char symbol_702[] = "T";
+static char symbol_703[] = "U";
+static char symbol_704[] = "V";
+static char symbol_705[] = "W";
+static char symbol_706[] = "X";
+static char symbol_707[] = "Y";
+static char symbol_708[] = "Z";
+static char symbol_709[] = " ";
+static char symbol_710[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1282,97 +1290,96 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_190, sizeof(symbol_190)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_191, sizeof(symbol_191)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_192, sizeof(symbol_192)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_193, sizeof(symbol_193)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_194, sizeof(symbol_194)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_195, sizeof(symbol_195)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_196, sizeof(symbol_196)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_197, sizeof(symbol_197)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_198, sizeof(symbol_198)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_199, sizeof(symbol_199)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_199, sizeof(symbol_199)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_200, sizeof(symbol_200)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_201, sizeof(symbol_201)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_202, sizeof(symbol_202)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_203, sizeof(symbol_203)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_204, sizeof(symbol_204)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_204, sizeof(symbol_204)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_205, sizeof(symbol_205)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_206, sizeof(symbol_206)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_207, sizeof(symbol_207)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_209, sizeof(symbol_209)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_211, sizeof(symbol_211)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_212, sizeof(symbol_212)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_213, sizeof(symbol_213)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_214, sizeof(symbol_214)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_215, sizeof(symbol_215)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_216, sizeof(symbol_216)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_217, sizeof(symbol_217)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_218, sizeof(symbol_218)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_219, sizeof(symbol_219)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_220, sizeof(symbol_220)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_221, sizeof(symbol_221)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_222, sizeof(symbol_222)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_223, sizeof(symbol_223)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_225, sizeof(symbol_225)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_226, sizeof(symbol_226)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_229, sizeof(symbol_229)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_230, sizeof(symbol_230)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_231, sizeof(symbol_231)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_232, sizeof(symbol_232)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_233, sizeof(symbol_233)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_234, sizeof(symbol_234)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_235, sizeof(symbol_235)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_236, sizeof(symbol_236)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_237, sizeof(symbol_237)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_238, sizeof(symbol_238)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_239, sizeof(symbol_239)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_240, sizeof(symbol_240)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_241, sizeof(symbol_241)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_242, sizeof(symbol_242)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_243, sizeof(symbol_243)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_244, sizeof(symbol_244)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_245, sizeof(symbol_245)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_246, sizeof(symbol_246)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_247, sizeof(symbol_247)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_248, sizeof(symbol_248)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_249, sizeof(symbol_249)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_250, sizeof(symbol_250)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_251, sizeof(symbol_251)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_252, sizeof(symbol_252)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_253, sizeof(symbol_253)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_254, sizeof(symbol_254)-1), 0, NULL);
@@ -1382,49 +1389,50 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_257, sizeof(symbol_257)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_258, sizeof(symbol_258)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_259, sizeof(symbol_259)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_260, sizeof(symbol_260)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_261, sizeof(symbol_261)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_262, sizeof(symbol_262)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_272, sizeof(symbol_272)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_273, sizeof(symbol_273)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_281, sizeof(symbol_281)-1), 0, NULL);
@@ -1433,23 +1441,26 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_284, sizeof(symbol_284)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_285, sizeof(symbol_285)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_288, sizeof(symbol_288)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1458,35 +1469,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1494,25 +1505,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1521,22 +1532,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1545,33 +1556,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1583,51 +1594,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1637,13 +1648,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1652,39 +1663,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1693,23 +1704,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1719,39 +1730,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1760,30 +1771,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1792,20 +1803,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1814,27 +1825,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1844,60 +1855,63 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    chunks = create_chunks();
+    runtime->named_chunks_placeholderVars = chunks;
+    append_data(runtime->current_chunks, NULL, 0, chunks);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1907,48 +1921,57 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_placeholderVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1958,29 +1981,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1990,14 +2013,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2007,21 +2030,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2031,17 +2054,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2124,11 +2147,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_300, sizeof(symbol_300)-1);
+                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2139,11 +2162,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_302, sizeof(symbol_302)-1);
+                                data = buffer_from_cstring(symbol_305, sizeof(symbol_305)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2178,7 +2201,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2192,7 +2215,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2213,7 +2236,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2250,7 +2273,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_323, sizeof(symbol_323)-1);
+        data = buffer_from_cstring(symbol_326, sizeof(symbol_326)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2274,7 +2297,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2293,10 +2316,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2306,7 +2329,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2323,7 +2346,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_336, sizeof(symbol_336)-1);
+    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2332,7 +2355,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2340,7 +2363,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_348, sizeof(symbol_348)-1);
+    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2349,7 +2372,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2358,10 +2381,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2379,7 +2402,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
+    data = buffer_from_cstring(symbol_367, sizeof(symbol_367)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2388,7 +2411,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2411,9 +2434,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
+        data = buffer_from_cstring(symbol_373, sizeof(symbol_373)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2428,7 +2451,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2452,7 +2475,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_391, sizeof(symbol_391)-1);
+        data = buffer_from_cstring(symbol_394, sizeof(symbol_394)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2468,7 +2491,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2486,7 +2509,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2510,7 +2533,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_399, sizeof(symbol_399)-1);
+    data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2523,7 +2546,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
+    data = buffer_from_cstring(symbol_403, sizeof(symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2550,14 +2573,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
+    data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2577,7 +2600,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2585,7 +2608,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_421, sizeof(symbol_421)-1);
+    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2599,7 +2622,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2621,7 +2644,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_440, sizeof(symbol_440)-1);
+        data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2631,7 +2654,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
+                data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2651,11 +2674,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
+                            data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2693,7 +2716,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
+        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2702,9 +2725,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
+                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2724,11 +2747,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2749,7 +2772,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_469, sizeof(symbol_469)-1);
+        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2758,9 +2781,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
+                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,7 +2801,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_479, sizeof(symbol_479)-1);
+        data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2787,11 +2810,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_481, sizeof(symbol_481)-1);
+                    data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2811,11 +2834,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_483, sizeof(symbol_483)-1);
+                                data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2837,7 +2860,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
+        data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2846,7 +2869,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2858,7 +2881,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2869,7 +2892,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2880,7 +2903,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2891,7 +2914,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2901,7 +2924,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
+        data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2910,9 +2933,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
+                data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2921,9 +2944,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
+                        data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,9 +2955,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+                                data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2956,7 +2979,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+        data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2976,11 +2999,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+                    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3007,7 +3030,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3024,7 +3047,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3045,7 +3068,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3057,7 +3080,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3069,7 +3092,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3081,7 +3104,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3093,7 +3116,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3105,7 +3128,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3117,7 +3140,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3129,7 +3152,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3141,7 +3164,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3153,7 +3176,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3176,7 +3199,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3187,9 +3210,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+                data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3198,11 +3221,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                            data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3232,14 +3255,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3248,9 +3271,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+            data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3259,9 +3282,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+                    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3291,7 +3314,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3311,9 +3334,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+            data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3341,7 +3364,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3355,7 +3378,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3373,7 +3396,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
+    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3382,7 +3405,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3400,7 +3423,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3414,9 +3437,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3440,7 +3463,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_635, sizeof(symbol_635)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3453,7 +3476,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3506,7 +3529,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3525,7 +3548,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3548,7 +3571,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3561,7 +3584,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3605,7 +3628,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3671,7 +3694,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3683,7 +3706,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3695,7 +3718,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3707,7 +3730,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3719,7 +3742,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3731,7 +3754,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3743,7 +3766,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3755,7 +3778,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3767,7 +3790,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3779,7 +3802,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3791,7 +3814,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3803,7 +3826,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3815,7 +3838,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3827,7 +3850,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3839,7 +3862,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3851,7 +3874,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3863,7 +3886,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3875,7 +3898,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3887,7 +3910,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3899,7 +3922,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3911,7 +3934,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3923,7 +3946,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3935,7 +3958,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3947,7 +3970,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3959,7 +3982,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3971,7 +3994,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3992,7 +4015,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4004,7 +4027,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4016,7 +4039,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4028,7 +4051,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4040,7 +4063,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4052,7 +4075,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4064,7 +4087,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4076,7 +4099,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4088,7 +4111,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4100,7 +4123,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4112,7 +4135,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4124,7 +4147,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4136,7 +4159,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4148,7 +4171,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4160,7 +4183,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4172,7 +4195,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4184,7 +4207,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4196,7 +4219,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4208,7 +4231,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4220,7 +4243,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4232,7 +4255,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4244,7 +4267,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4256,7 +4279,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4268,7 +4291,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4280,7 +4303,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4292,7 +4315,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4341,7 +4364,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4353,7 +4376,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4388,4 +4411,5 @@ int main(void) {
         placeholder = placeholder->next;
     }
     render_chunks(runtime->main_chunks, &last_char, &indent);
+    return 0;
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 4a05bd3..e091795 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -190,10 +190,11 @@ file = rule*:xs space !. -> {
     < "}\n"
     "\n"
     "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n" >
+        "int i;\n"
         "if (b1->size != b2->size) {\n" >
             "return 0;\n"
         < "}\n"
-        "for (int i=0; i<b1->size; i++) {\n" >
+        "for (i=0; i<b1->size; i++) {\n" >
             "if (b1->buffer[i] != b2->buffer[i]) {\n" >
                 "return 0;\n"
             < "}\n"
@@ -252,14 +253,15 @@ file = rule*:xs space !. -> {
     < "}\n"
     "\n"
     "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n" >
+        "int i, j;\n"
         "if (chunks) {\n" >
             "struct Chunk* chunk = chunks->pre_first->next;\n"
             "while (chunk) {\n" >
                 "*indent += chunk->indentation_delta;\n"
                 "if (chunk->data) {\n" >
-                    "for (int i=0; i<chunk->data->size; i++) {\n" >
+                    "for (i=0; i<chunk->data->size; i++) {\n" >
                         "if (*last_char == '\\n') {\n" >
-                            "for (int j=0; j<*indent; j++) {\n" >
+                            "for (j=0; j<*indent; j++) {\n" >
                                 "printf(\"    \");\n"
                             < "}\n"
                         < "}\n"
@@ -301,6 +303,7 @@ file = rule*:xs space !. -> {
             "placeholder = placeholder->next;\n"
         < "}\n"
         "render_chunks(runtime->main_chunks, &last_char, &indent);\n"
+        "return 0;\n"
     < "}\n"
 };
 
@@ -536,7 +539,8 @@ actionexpr =
             "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables);"
         }
         >placeholders {
-            "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables) {" >
+            "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables) {\n" >
+                <placeholderVars
                 x
             < "}\n"
             "\n"
@@ -590,7 +594,10 @@ digit =
 
 placeholder
     = '{' space string:x '*' expr:y space '}' -> {
-        "for (int i=0; i < " y "; i++) {\n" >
+        >placeholderVars {
+            unique("int i;\n")
+        }
+        "for (i=0; i < " y "; i++) {\n" >
             "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
         < "}\n"
     }

commit 077724335a0cc15d88f66b610dd9b81226e49d28
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 22:01:06 2025 +0100

    Fix some c89 problems

diff --git a/src/experiments/bitmanipulation.c b/src/experiments/bitmanipulation.c
index f15a3d9..073fbe1 100644
--- a/src/experiments/bitmanipulation.c
+++ b/src/experiments/bitmanipulation.c
@@ -15,4 +15,5 @@ int main(void) {
     printf("value     = %d\n", (unsigned char)bitmask);
     printf("xor same  = %d\n", 18 ^ 18);
     printf("xor diff  = %d\n", 18 ^ 17);
+    return 0;
 }
diff --git a/src/experiments/fork.c b/src/experiments/fork.c
index 17270ec..cc835d4 100644
--- a/src/experiments/fork.c
+++ b/src/experiments/fork.c
@@ -25,9 +25,10 @@ int main(void) {
         printf("returncode = %d\n", returncode);
     }
     {
-        //char *const command[] = {"bash", "-c", "exit 5"};
+        /* char *const command[] = {"bash", "-c", "exit 5"}; */
         char *const command[] = {"exit", "5"};
         int returncode = platform_run_command(command);
         printf("returncode second = %d\n", returncode);
     }
+    return 0;
 }
diff --git a/src/experiments/sizes.c b/src/experiments/sizes.c
index af502b7..a63afe8 100644
--- a/src/experiments/sizes.c
+++ b/src/experiments/sizes.c
@@ -23,4 +23,5 @@ int main(void) {
     printf("Sizeof pointer   = %ld\n", sizeof(void *));
     printf("Sizeof Foo       = %ld\n", sizeof(Foo));
     printf("Sizeof Bar       = %ld\n", sizeof(Bar));
+    return 0;
 }
diff --git a/src/experiments/strings.c b/src/experiments/strings.c
index 67d9352..96a3ad7 100644
--- a/src/experiments/strings.c
+++ b/src/experiments/strings.c
@@ -8,4 +8,5 @@ int main(void) {
     printf("äpple\n");
     printf("string foo = %s\n", foo);
     printf("string bar = %s\n", bar);
+    return 0;
 }

2025-11-05 21:37 Rickard pushed to rlworkbench

commit 68832cfcb0f80ce65dc7d2357c6ce11c4752bfa9
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 21:37:35 2025 +0100

    Refine fork example

diff --git a/src/experiments/fork.c b/src/experiments/fork.c
index 27e32d7..17270ec 100644
--- a/src/experiments/fork.c
+++ b/src/experiments/fork.c
@@ -1,17 +1,33 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/wait.h>
 #include <unistd.h>
 
-int main(void) {
+int platform_run_command(char *const command[]) {
     pid_t pid = fork();
     if (pid) {
         int status;
-        printf("in parent\n");
+        printf("pid = %d\n", pid);
         waitpid(pid, &status, 0);
-        printf("status = %d\n", WEXITSTATUS(status));
-        return 0;
+        return WEXITSTATUS(status);
     } else {
-        printf("in fork\n");
-        return 2;
+        if (execvp(command[0], command) == -1) {
+            exit(1);
+        }
+        return 1;
+    }
+}
+
+int main(void) {
+    {
+        char *const command[] = {"echo", "hello there"};
+        int returncode = platform_run_command(command);
+        printf("returncode = %d\n", returncode);
+    }
+    {
+        //char *const command[] = {"bash", "-c", "exit 5"};
+        char *const command[] = {"exit", "5"};
+        int returncode = platform_run_command(command);
+        printf("returncode second = %d\n", returncode);
     }
 }

2025-11-05 20:50 Rickard pushed to rlworkbench

commit ba194d974b45d2ed9237ca8db679d5e93340ac96
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 20:48:22 2025 +0100

    Don't fflush

diff --git a/src/meta/meta.c b/src/meta/meta.c
index ee90119..ea5c521 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -271,7 +271,6 @@ void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {
                     }
                     *last_char = chunk->data->buffer[i];
                     putchar(*last_char);
-                    fflush(stdout);
                 }
             }
             render_chunks(chunk->chunks, last_char, indent);
@@ -545,447 +544,446 @@ static char symbol_262[] = "}\n";
 static char symbol_263[] = "}\n";
 static char symbol_264[] = "*last_char = chunk->data->buffer[i];\n";
 static char symbol_265[] = "putchar(*last_char);\n";
-static char symbol_266[] = "fflush(stdout);\n";
+static char symbol_266[] = "}\n";
 static char symbol_267[] = "}\n";
-static char symbol_268[] = "}\n";
-static char symbol_269[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_270[] = "chunk = chunk->next;\n";
+static char symbol_268[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_269[] = "chunk = chunk->next;\n";
+static char symbol_270[] = "}\n";
 static char symbol_271[] = "}\n";
 static char symbol_272[] = "}\n";
-static char symbol_273[] = "}\n";
+static char symbol_273[] = "\n";
 static char symbol_274[] = "\n";
-static char symbol_275[] = "\n";
-static char symbol_276[] = "xs";
-static char symbol_277[] = "int main(void) {\n";
-static char symbol_278[] = "arena_limit = 2<<25;\n";
-static char symbol_279[] = "arena_pos = 0;\n";
-static char symbol_280[] = "arena = malloc(arena_limit);\n";
-static char symbol_281[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_282[] = "char last_char = '\\n';\n";
-static char symbol_283[] = "int indent = 0;\n";
-static char symbol_284[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_285[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_286[] = "struct Placeholder* placeholder;\n";
-static char symbol_287[] = "if (action == NULL) {\n";
-static char symbol_288[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_289[] = "exit(1);\n";
-static char symbol_290[] = "}\n";
-static char symbol_291[] = "run_action(action, runtime);\n";
-static char symbol_292[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_293[] = "while (placeholder) {\n";
-static char symbol_294[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_295[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_296[] = "placeholder = placeholder->next;\n";
-static char symbol_297[] = "}\n";
-static char symbol_298[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_299[] = "}\n";
-static char symbol_300[] = "x";
-static char symbol_301[] = "=";
-static char symbol_302[] = "y";
-static char symbol_303[] = ";";
-static char symbol_304[] = "struct Action* rule_";
-static char symbol_305[] = "x";
-static char symbol_306[] = "(struct ParseState* parse_state);\n";
-static char symbol_307[] = "struct Action* rule_";
-static char symbol_308[] = "x";
-static char symbol_309[] = "(struct ParseState* parse_state) {\n";
-static char symbol_310[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_311[] = "unsigned int action_start_pos;\n";
-static char symbol_312[] = "struct Action* _;\n";
-static char symbol_313[] = "y";
-static char symbol_314[] = "return NULL;\n";
-static char symbol_315[] = "}\n";
-static char symbol_316[] = "\n";
-static char symbol_317[] = "x";
-static char symbol_318[] = "xs";
-static char symbol_319[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_320[] = "x";
-static char symbol_321[] = "xs";
+static char symbol_275[] = "xs";
+static char symbol_276[] = "int main(void) {\n";
+static char symbol_277[] = "arena_limit = 2<<25;\n";
+static char symbol_278[] = "arena_pos = 0;\n";
+static char symbol_279[] = "arena = malloc(arena_limit);\n";
+static char symbol_280[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_281[] = "char last_char = '\\n';\n";
+static char symbol_282[] = "int indent = 0;\n";
+static char symbol_283[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_284[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_285[] = "struct Placeholder* placeholder;\n";
+static char symbol_286[] = "if (action == NULL) {\n";
+static char symbol_287[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_288[] = "exit(1);\n";
+static char symbol_289[] = "}\n";
+static char symbol_290[] = "run_action(action, runtime);\n";
+static char symbol_291[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_292[] = "while (placeholder) {\n";
+static char symbol_293[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_294[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_295[] = "placeholder = placeholder->next;\n";
+static char symbol_296[] = "}\n";
+static char symbol_297[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_298[] = "}\n";
+static char symbol_299[] = "x";
+static char symbol_300[] = "=";
+static char symbol_301[] = "y";
+static char symbol_302[] = ";";
+static char symbol_303[] = "struct Action* rule_";
+static char symbol_304[] = "x";
+static char symbol_305[] = "(struct ParseState* parse_state);\n";
+static char symbol_306[] = "struct Action* rule_";
+static char symbol_307[] = "x";
+static char symbol_308[] = "(struct ParseState* parse_state) {\n";
+static char symbol_309[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_310[] = "unsigned int action_start_pos;\n";
+static char symbol_311[] = "struct Action* _;\n";
+static char symbol_312[] = "y";
+static char symbol_313[] = "return NULL;\n";
+static char symbol_314[] = "}\n";
+static char symbol_315[] = "\n";
+static char symbol_316[] = "x";
+static char symbol_317[] = "xs";
+static char symbol_318[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_319[] = "x";
+static char symbol_320[] = "xs";
+static char symbol_321[] = "x";
 static char symbol_322[] = "x";
-static char symbol_323[] = "x";
-static char symbol_324[] = "|";
-static char symbol_325[] = "x";
-static char symbol_326[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_327[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_323[] = "|";
+static char symbol_324[] = "x";
+static char symbol_325[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_326[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_327[] = "x";
 static char symbol_328[] = "x";
-static char symbol_329[] = "x";
-static char symbol_330[] = "y";
-static char symbol_331[] = "x";
-static char symbol_332[] = "if (_) {\n";
-static char symbol_333[] = "y";
-static char symbol_334[] = "}\n";
+static char symbol_329[] = "y";
+static char symbol_330[] = "x";
+static char symbol_331[] = "if (_) {\n";
+static char symbol_332[] = "y";
+static char symbol_333[] = "}\n";
+static char symbol_334[] = "y";
 static char symbol_335[] = "y";
-static char symbol_336[] = "y";
-static char symbol_337[] = "!";
-static char symbol_338[] = "x";
+static char symbol_336[] = "!";
+static char symbol_337[] = "x";
+static char symbol_338[] = "unsigned int nlookahead_pos;\n";
 static char symbol_339[] = "unsigned int nlookahead_pos;\n";
-static char symbol_340[] = "unsigned int nlookahead_pos;\n";
-static char symbol_341[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_342[] = "x";
-static char symbol_343[] = "if (_ == NULL) {\n";
-static char symbol_344[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_345[] = "} else {\n";
-static char symbol_346[] = "_ = NULL;\n";
-static char symbol_347[] = "}\n";
-static char symbol_348[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_349[] = "&";
-static char symbol_350[] = "x";
+static char symbol_340[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_341[] = "x";
+static char symbol_342[] = "if (_ == NULL) {\n";
+static char symbol_343[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_344[] = "} else {\n";
+static char symbol_345[] = "_ = NULL;\n";
+static char symbol_346[] = "}\n";
+static char symbol_347[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_348[] = "&";
+static char symbol_349[] = "x";
+static char symbol_350[] = "unsigned int lookahead_pos;\n";
 static char symbol_351[] = "unsigned int lookahead_pos;\n";
-static char symbol_352[] = "unsigned int lookahead_pos;\n";
-static char symbol_353[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_354[] = "x";
-static char symbol_355[] = "if (_ == NULL) {\n";
-static char symbol_356[] = "_ = NULL;\n";
-static char symbol_357[] = "} else {\n";
-static char symbol_358[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_359[] = "}\n";
-static char symbol_360[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_361[] = "x";
-static char symbol_362[] = "y";
-static char symbol_363[] = "x";
-static char symbol_364[] = "y";
-static char symbol_365[] = ":";
-static char symbol_366[] = "x";
-static char symbol_367[] = "append_named_action(variables, ";
-static char symbol_368[] = "x";
-static char symbol_369[] = ", _);\n";
-static char symbol_370[] = "x";
-static char symbol_371[] = "*";
+static char symbol_352[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_353[] = "x";
+static char symbol_354[] = "if (_ == NULL) {\n";
+static char symbol_355[] = "_ = NULL;\n";
+static char symbol_356[] = "} else {\n";
+static char symbol_357[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_358[] = "}\n";
+static char symbol_359[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_360[] = "x";
+static char symbol_361[] = "y";
+static char symbol_362[] = "x";
+static char symbol_363[] = "y";
+static char symbol_364[] = ":";
+static char symbol_365[] = "x";
+static char symbol_366[] = "append_named_action(variables, ";
+static char symbol_367[] = "x";
+static char symbol_368[] = ", _);\n";
+static char symbol_369[] = "x";
+static char symbol_370[] = "*";
+static char symbol_371[] = "struct Variables* star_variables;\n";
 static char symbol_372[] = "struct Variables* star_variables;\n";
-static char symbol_373[] = "struct Variables* star_variables;\n";
+static char symbol_373[] = "unsigned int star_pos;\n";
 static char symbol_374[] = "unsigned int star_pos;\n";
-static char symbol_375[] = "unsigned int star_pos;\n";
+static char symbol_375[] = "unsigned int star_start_pos;\n";
 static char symbol_376[] = "unsigned int star_start_pos;\n";
-static char symbol_377[] = "unsigned int star_start_pos;\n";
-static char symbol_378[] = "star_variables = create_variables();\n";
-static char symbol_379[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_380[] = "while (1) {\n";
-static char symbol_381[] = "star_pos = parse_state->pos;\n";
-static char symbol_382[] = "x";
-static char symbol_383[] = "if (_ == NULL) {\n";
-static char symbol_384[] = "parse_state->pos = star_pos;\n";
-static char symbol_385[] = "break;\n";
-static char symbol_386[] = "}\n";
-static char symbol_387[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_388[] = "}\n";
-static char symbol_389[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_377[] = "star_variables = create_variables();\n";
+static char symbol_378[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_379[] = "while (1) {\n";
+static char symbol_380[] = "star_pos = parse_state->pos;\n";
+static char symbol_381[] = "x";
+static char symbol_382[] = "if (_ == NULL) {\n";
+static char symbol_383[] = "parse_state->pos = star_pos;\n";
+static char symbol_384[] = "break;\n";
+static char symbol_385[] = "}\n";
+static char symbol_386[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_387[] = "}\n";
+static char symbol_388[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_389[] = "x";
 static char symbol_390[] = "x";
-static char symbol_391[] = "x";
-static char symbol_392[] = "_";
-static char symbol_393[] = "x";
-static char symbol_394[] = "bitpattern <<= 1;\n";
-static char symbol_395[] = "bitmask <<= 1;\n";
+static char symbol_391[] = "_";
+static char symbol_392[] = "x";
+static char symbol_393[] = "bitpattern <<= 1;\n";
+static char symbol_394[] = "bitmask <<= 1;\n";
+static char symbol_395[] = "x";
 static char symbol_396[] = "x";
 static char symbol_397[] = "x";
-static char symbol_398[] = "x";
-static char symbol_399[] = "bitmask |= 1;\n";
-static char symbol_400[] = "0";
-static char symbol_401[] = "1";
-static char symbol_402[] = "bitpattern |= 1;\n";
-static char symbol_403[] = "x";
-static char symbol_404[] = "_ = rule_";
-static char symbol_405[] = "x";
-static char symbol_406[] = "(parse_state);\n";
-static char symbol_407[] = "0b";
-static char symbol_408[] = "xs";
+static char symbol_398[] = "bitmask |= 1;\n";
+static char symbol_399[] = "0";
+static char symbol_400[] = "1";
+static char symbol_401[] = "bitpattern |= 1;\n";
+static char symbol_402[] = "x";
+static char symbol_403[] = "_ = rule_";
+static char symbol_404[] = "x";
+static char symbol_405[] = "(parse_state);\n";
+static char symbol_406[] = "0b";
+static char symbol_407[] = "xs";
+static char symbol_408[] = "unsigned char bitpattern;\n";
 static char symbol_409[] = "unsigned char bitpattern;\n";
-static char symbol_410[] = "unsigned char bitpattern;\n";
+static char symbol_410[] = "unsigned char bitmask;\n";
 static char symbol_411[] = "unsigned char bitmask;\n";
-static char symbol_412[] = "unsigned char bitmask;\n";
-static char symbol_413[] = "bitpattern = 0;\n";
-static char symbol_414[] = "bitmask = 0;\n";
-static char symbol_415[] = "xs";
-static char symbol_416[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_417[] = "parse_state->pos += 1;\n";
-static char symbol_418[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_419[] = "} else {\n";
-static char symbol_420[] = "_ = NULL;\n";
-static char symbol_421[] = "}\n";
-static char symbol_422[] = ".";
-static char symbol_423[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_424[] = "parse_state->pos += 1;\n";
-static char symbol_425[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_426[] = "} else {\n";
-static char symbol_427[] = "_ = NULL;\n";
-static char symbol_428[] = "}\n";
-static char symbol_429[] = "x";
+static char symbol_412[] = "bitpattern = 0;\n";
+static char symbol_413[] = "bitmask = 0;\n";
+static char symbol_414[] = "xs";
+static char symbol_415[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_416[] = "parse_state->pos += 1;\n";
+static char symbol_417[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_418[] = "} else {\n";
+static char symbol_419[] = "_ = NULL;\n";
+static char symbol_420[] = "}\n";
+static char symbol_421[] = ".";
+static char symbol_422[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_423[] = "parse_state->pos += 1;\n";
+static char symbol_424[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_425[] = "} else {\n";
+static char symbol_426[] = "_ = NULL;\n";
+static char symbol_427[] = "}\n";
+static char symbol_428[] = "x";
+static char symbol_429[] = "struct Buffer* data;\n";
 static char symbol_430[] = "struct Buffer* data;\n";
-static char symbol_431[] = "struct Buffer* data;\n";
-static char symbol_432[] = "data = ";
-static char symbol_433[] = "x";
-static char symbol_434[] = ";\n";
-static char symbol_435[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_436[] = "parse_state->pos += data->size;\n";
-static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_438[] = "} else {\n";
-static char symbol_439[] = "_ = NULL;\n";
-static char symbol_440[] = "}\n";
-static char symbol_441[] = "->";
-static char symbol_442[] = "{";
-static char symbol_443[] = "xs";
-static char symbol_444[] = "}";
-static char symbol_445[] = "void action_";
-static char symbol_446[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_447[] = "xs";
-static char symbol_448[] = "}\n";
-static char symbol_449[] = "\n";
+static char symbol_431[] = "data = ";
+static char symbol_432[] = "x";
+static char symbol_433[] = ";\n";
+static char symbol_434[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_435[] = "parse_state->pos += data->size;\n";
+static char symbol_436[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_437[] = "} else {\n";
+static char symbol_438[] = "_ = NULL;\n";
+static char symbol_439[] = "}\n";
+static char symbol_440[] = "->";
+static char symbol_441[] = "{";
+static char symbol_442[] = "xs";
+static char symbol_443[] = "}";
+static char symbol_444[] = "void action_";
+static char symbol_445[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_446[] = "xs";
+static char symbol_447[] = "}\n";
+static char symbol_448[] = "\n";
+static char symbol_449[] = "struct Variables* variables;\n";
 static char symbol_450[] = "struct Variables* variables;\n";
-static char symbol_451[] = "struct Variables* variables;\n";
+static char symbol_451[] = "variables = create_variables();\n";
 static char symbol_452[] = "variables = create_variables();\n";
-static char symbol_453[] = "variables = create_variables();\n";
-static char symbol_454[] = "return create_action(action_";
-static char symbol_455[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_456[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_457[] = "unseen(";
-static char symbol_458[] = "x";
-static char symbol_459[] = ") -> {";
-static char symbol_460[] = "ys";
-static char symbol_461[] = "}";
+static char symbol_453[] = "return create_action(action_";
+static char symbol_454[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_455[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_456[] = "unseen(";
+static char symbol_457[] = "x";
+static char symbol_458[] = ") -> {";
+static char symbol_459[] = "ys";
+static char symbol_460[] = "}";
+static char symbol_461[] = "struct Action* action;\n";
 static char symbol_462[] = "struct Action* action;\n";
-static char symbol_463[] = "struct Action* action;\n";
-static char symbol_464[] = "action = lookup_action(variables, ";
-static char symbol_465[] = "x";
-static char symbol_466[] = ");\n";
-static char symbol_467[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_468[] = "ys";
-static char symbol_469[] = "}\n";
-static char symbol_470[] = "unique(";
-static char symbol_471[] = "x";
-static char symbol_472[] = ")";
-static char symbol_473[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_474[] = "x";
-static char symbol_475[] = ")) {\n";
-static char symbol_476[] = "append_data(runtime->current_chunks, ";
-static char symbol_477[] = "x";
-static char symbol_478[] = ", 0, NULL);\n";
-static char symbol_479[] = "}\n";
-static char symbol_480[] = ">";
-static char symbol_481[] = "x";
-static char symbol_482[] = "{";
-static char symbol_483[] = "ys";
-static char symbol_484[] = "}";
+static char symbol_463[] = "action = lookup_action(variables, ";
+static char symbol_464[] = "x";
+static char symbol_465[] = ");\n";
+static char symbol_466[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_467[] = "ys";
+static char symbol_468[] = "}\n";
+static char symbol_469[] = "unique(";
+static char symbol_470[] = "x";
+static char symbol_471[] = ")";
+static char symbol_472[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_473[] = "x";
+static char symbol_474[] = ")) {\n";
+static char symbol_475[] = "append_data(runtime->current_chunks, ";
+static char symbol_476[] = "x";
+static char symbol_477[] = ", 0, NULL);\n";
+static char symbol_478[] = "}\n";
+static char symbol_479[] = ">";
+static char symbol_480[] = "x";
+static char symbol_481[] = "{";
+static char symbol_482[] = "ys";
+static char symbol_483[] = "}";
+static char symbol_484[] = "struct Chunks* last_chunks;\n";
 static char symbol_485[] = "struct Chunks* last_chunks;\n";
-static char symbol_486[] = "struct Chunks* last_chunks;\n";
+static char symbol_486[] = "struct Chunks* chunks;\n";
 static char symbol_487[] = "struct Chunks* chunks;\n";
-static char symbol_488[] = "struct Chunks* chunks;\n";
-static char symbol_489[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_490[] = "chunks = runtime->named_chunks_";
-static char symbol_491[] = "x";
-static char symbol_492[] = ";\n";
-static char symbol_493[] = "runtime->current_chunks = chunks;\n";
-static char symbol_494[] = "ys";
-static char symbol_495[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_496[] = "<";
-static char symbol_497[] = "x";
+static char symbol_488[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_489[] = "chunks = runtime->named_chunks_";
+static char symbol_490[] = "x";
+static char symbol_491[] = ";\n";
+static char symbol_492[] = "runtime->current_chunks = chunks;\n";
+static char symbol_493[] = "ys";
+static char symbol_494[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_495[] = "<";
+static char symbol_496[] = "x";
+static char symbol_497[] = "struct Chunks* chunks;\n";
 static char symbol_498[] = "struct Chunks* chunks;\n";
-static char symbol_499[] = "struct Chunks* chunks;\n";
-static char symbol_500[] = "chunks = create_chunks();\n";
-static char symbol_501[] = "runtime->named_chunks_";
-static char symbol_502[] = "x";
-static char symbol_503[] = " = chunks;\n";
-static char symbol_504[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_505[] = "x";
-static char symbol_506[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_507[] = "x";
-static char symbol_508[] = "), 0, NULL);\n";
-static char symbol_509[] = "x";
-static char symbol_510[] = "run_action(lookup_action(variables, ";
-static char symbol_511[] = "x";
-static char symbol_512[] = "), runtime);\n";
-static char symbol_513[] = "x";
-static char symbol_514[] = "void placeholder_";
-static char symbol_515[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_516[] = "void placeholder_";
-static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_518[] = "x";
-static char symbol_519[] = "}\n";
-static char symbol_520[] = "\n";
+static char symbol_499[] = "chunks = create_chunks();\n";
+static char symbol_500[] = "runtime->named_chunks_";
+static char symbol_501[] = "x";
+static char symbol_502[] = " = chunks;\n";
+static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_504[] = "x";
+static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_506[] = "x";
+static char symbol_507[] = "), 0, NULL);\n";
+static char symbol_508[] = "x";
+static char symbol_509[] = "run_action(lookup_action(variables, ";
+static char symbol_510[] = "x";
+static char symbol_511[] = "), runtime);\n";
+static char symbol_512[] = "x";
+static char symbol_513[] = "void placeholder_";
+static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_515[] = "void placeholder_";
+static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_517[] = "x";
+static char symbol_518[] = "}\n";
+static char symbol_519[] = "\n";
+static char symbol_520[] = "struct Chunks* chunks;\n";
 static char symbol_521[] = "struct Chunks* chunks;\n";
-static char symbol_522[] = "struct Chunks* chunks;\n";
-static char symbol_523[] = "chunks = create_chunks();\n";
-static char symbol_524[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_525[] = ", variables, NULL, 0, 0));\n";
-static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_527[] = "x";
-static char symbol_528[] = "append_data(runtime->current_chunks, ";
-static char symbol_529[] = "x";
-static char symbol_530[] = ", 0, NULL);\n";
-static char symbol_531[] = "#";
-static char symbol_532[] = "x";
-static char symbol_533[] = "(";
-static char symbol_534[] = "y";
-static char symbol_535[] = " ";
-static char symbol_536[] = "z";
-static char symbol_537[] = ")";
-static char symbol_538[] = "runtime->W_";
-static char symbol_539[] = "y";
-static char symbol_540[] = " = ";
-static char symbol_541[] = "x";
-static char symbol_542[] = "(runtime->W_";
-static char symbol_543[] = "y";
-static char symbol_544[] = " ? runtime->W_";
-static char symbol_545[] = "y";
-static char symbol_546[] = " : 0, ";
-static char symbol_547[] = "z";
-static char symbol_548[] = ");\n";
-static char symbol_549[] = ">";
-static char symbol_550[] = "xs";
-static char symbol_551[] = "<";
-static char symbol_552[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_553[] = "xs";
-static char symbol_554[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_522[] = "chunks = create_chunks();\n";
+static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_524[] = ", variables, NULL, 0, 0));\n";
+static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_526[] = "x";
+static char symbol_527[] = "append_data(runtime->current_chunks, ";
+static char symbol_528[] = "x";
+static char symbol_529[] = ", 0, NULL);\n";
+static char symbol_530[] = "#";
+static char symbol_531[] = "x";
+static char symbol_532[] = "(";
+static char symbol_533[] = "y";
+static char symbol_534[] = " ";
+static char symbol_535[] = "z";
+static char symbol_536[] = ")";
+static char symbol_537[] = "runtime->W_";
+static char symbol_538[] = "y";
+static char symbol_539[] = " = ";
+static char symbol_540[] = "x";
+static char symbol_541[] = "(runtime->W_";
+static char symbol_542[] = "y";
+static char symbol_543[] = " ? runtime->W_";
+static char symbol_544[] = "y";
+static char symbol_545[] = " : 0, ";
+static char symbol_546[] = "z";
+static char symbol_547[] = ");\n";
+static char symbol_548[] = ">";
+static char symbol_549[] = "xs";
+static char symbol_550[] = "<";
+static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_552[] = "xs";
+static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_554[] = "x";
 static char symbol_555[] = "x";
-static char symbol_556[] = "x";
-static char symbol_557[] = "struct Chunks* named_chunks_";
-static char symbol_558[] = "x";
-static char symbol_559[] = ";\n";
+static char symbol_556[] = "struct Chunks* named_chunks_";
+static char symbol_557[] = "x";
+static char symbol_558[] = ";\n";
+static char symbol_559[] = "x";
 static char symbol_560[] = "x";
 static char symbol_561[] = "x";
-static char symbol_562[] = "x";
-static char symbol_563[] = "0";
-static char symbol_564[] = "1";
-static char symbol_565[] = "2";
-static char symbol_566[] = "3";
-static char symbol_567[] = "4";
-static char symbol_568[] = "5";
-static char symbol_569[] = "6";
-static char symbol_570[] = "7";
-static char symbol_571[] = "8";
-static char symbol_572[] = "9";
-static char symbol_573[] = "{";
-static char symbol_574[] = "x";
-static char symbol_575[] = "*";
-static char symbol_576[] = "y";
-static char symbol_577[] = "}";
-static char symbol_578[] = "for (int i=0; i < ";
-static char symbol_579[] = "y";
-static char symbol_580[] = "; i++) {\n";
-static char symbol_581[] = "append_data(runtime->current_chunks, ";
-static char symbol_582[] = "x";
-static char symbol_583[] = ", 0, NULL);\n";
-static char symbol_584[] = "}\n";
-static char symbol_585[] = "x";
-static char symbol_586[] = "(runtime->W_";
-static char symbol_587[] = "x";
-static char symbol_588[] = " ? runtime->W_";
-static char symbol_589[] = "x";
-static char symbol_590[] = " : 0)";
-static char symbol_591[] = "(";
-static char symbol_592[] = "x";
-static char symbol_593[] = "-";
-static char symbol_594[] = "y";
-static char symbol_595[] = ")";
-static char symbol_596[] = "((runtime->W_";
-static char symbol_597[] = "x";
-static char symbol_598[] = " ? runtime->W_";
-static char symbol_599[] = "x";
-static char symbol_600[] = " : 0)-";
-static char symbol_601[] = "y";
-static char symbol_602[] = ")";
-static char symbol_603[] = "\"";
-static char symbol_604[] = "xs";
-static char symbol_605[] = "\"";
-static char symbol_606[] = "static char symbol_";
-static char symbol_607[] = "[] = \"";
-static char symbol_608[] = "xs";
-static char symbol_609[] = "\";\n";
-static char symbol_610[] = "buffer_from_cstring(symbol_";
-static char symbol_611[] = ", sizeof(symbol_";
-static char symbol_612[] = ")-1)";
-static char symbol_613[] = "x";
-static char symbol_614[] = "xs";
-static char symbol_615[] = "lookup_action(variables, ";
-static char symbol_616[] = "x";
-static char symbol_617[] = ")";
-static char symbol_618[] = "xs";
-static char symbol_619[] = ".";
-static char symbol_620[] = "x";
-static char symbol_621[] = "->";
-static char symbol_622[] = "x";
-static char symbol_623[] = "W[";
-static char symbol_624[] = "x";
-static char symbol_625[] = "]";
-static char symbol_626[] = "x";
-static char symbol_627[] = "unsigned int W_";
-static char symbol_628[] = "x";
-static char symbol_629[] = ";\n";
-static char symbol_630[] = "x";
-static char symbol_631[] = "\\\"";
-static char symbol_632[] = "\"";
-static char symbol_633[] = "xs";
-static char symbol_634[] = "static char symbol_";
-static char symbol_635[] = "[] = \"";
-static char symbol_636[] = "xs";
-static char symbol_637[] = "\";\n";
-static char symbol_638[] = "buffer_from_cstring(symbol_";
-static char symbol_639[] = ", sizeof(symbol_";
-static char symbol_640[] = ")-1)";
-static char symbol_641[] = "\'";
-static char symbol_642[] = "\\\'";
-static char symbol_643[] = "\"";
-static char symbol_644[] = "\\\"";
-static char symbol_645[] = "x";
-static char symbol_646[] = "static char symbol_";
-static char symbol_647[] = "[] = \"";
-static char symbol_648[] = "x";
-static char symbol_649[] = "\";\n";
-static char symbol_650[] = "buffer_from_cstring(symbol_";
-static char symbol_651[] = ", sizeof(symbol_";
-static char symbol_652[] = ")-1)";
-static char symbol_653[] = "a";
-static char symbol_654[] = "b";
-static char symbol_655[] = "c";
-static char symbol_656[] = "d";
-static char symbol_657[] = "e";
-static char symbol_658[] = "f";
-static char symbol_659[] = "g";
-static char symbol_660[] = "h";
-static char symbol_661[] = "i";
-static char symbol_662[] = "j";
-static char symbol_663[] = "k";
-static char symbol_664[] = "l";
-static char symbol_665[] = "m";
-static char symbol_666[] = "n";
-static char symbol_667[] = "o";
-static char symbol_668[] = "p";
-static char symbol_669[] = "q";
-static char symbol_670[] = "r";
-static char symbol_671[] = "s";
-static char symbol_672[] = "t";
-static char symbol_673[] = "u";
-static char symbol_674[] = "v";
-static char symbol_675[] = "w";
-static char symbol_676[] = "x";
-static char symbol_677[] = "y";
-static char symbol_678[] = "z";
-static char symbol_679[] = "A";
-static char symbol_680[] = "B";
-static char symbol_681[] = "C";
-static char symbol_682[] = "D";
-static char symbol_683[] = "E";
-static char symbol_684[] = "F";
-static char symbol_685[] = "G";
-static char symbol_686[] = "H";
-static char symbol_687[] = "I";
-static char symbol_688[] = "J";
-static char symbol_689[] = "K";
-static char symbol_690[] = "L";
-static char symbol_691[] = "M";
-static char symbol_692[] = "N";
-static char symbol_693[] = "O";
-static char symbol_694[] = "P";
-static char symbol_695[] = "Q";
-static char symbol_696[] = "R";
-static char symbol_697[] = "S";
-static char symbol_698[] = "T";
-static char symbol_699[] = "U";
-static char symbol_700[] = "V";
-static char symbol_701[] = "W";
-static char symbol_702[] = "X";
-static char symbol_703[] = "Y";
-static char symbol_704[] = "Z";
-static char symbol_705[] = " ";
-static char symbol_706[] = "\n";
+static char symbol_562[] = "0";
+static char symbol_563[] = "1";
+static char symbol_564[] = "2";
+static char symbol_565[] = "3";
+static char symbol_566[] = "4";
+static char symbol_567[] = "5";
+static char symbol_568[] = "6";
+static char symbol_569[] = "7";
+static char symbol_570[] = "8";
+static char symbol_571[] = "9";
+static char symbol_572[] = "{";
+static char symbol_573[] = "x";
+static char symbol_574[] = "*";
+static char symbol_575[] = "y";
+static char symbol_576[] = "}";
+static char symbol_577[] = "for (int i=0; i < ";
+static char symbol_578[] = "y";
+static char symbol_579[] = "; i++) {\n";
+static char symbol_580[] = "append_data(runtime->current_chunks, ";
+static char symbol_581[] = "x";
+static char symbol_582[] = ", 0, NULL);\n";
+static char symbol_583[] = "}\n";
+static char symbol_584[] = "x";
+static char symbol_585[] = "(runtime->W_";
+static char symbol_586[] = "x";
+static char symbol_587[] = " ? runtime->W_";
+static char symbol_588[] = "x";
+static char symbol_589[] = " : 0)";
+static char symbol_590[] = "(";
+static char symbol_591[] = "x";
+static char symbol_592[] = "-";
+static char symbol_593[] = "y";
+static char symbol_594[] = ")";
+static char symbol_595[] = "((runtime->W_";
+static char symbol_596[] = "x";
+static char symbol_597[] = " ? runtime->W_";
+static char symbol_598[] = "x";
+static char symbol_599[] = " : 0)-";
+static char symbol_600[] = "y";
+static char symbol_601[] = ")";
+static char symbol_602[] = "\"";
+static char symbol_603[] = "xs";
+static char symbol_604[] = "\"";
+static char symbol_605[] = "static char symbol_";
+static char symbol_606[] = "[] = \"";
+static char symbol_607[] = "xs";
+static char symbol_608[] = "\";\n";
+static char symbol_609[] = "buffer_from_cstring(symbol_";
+static char symbol_610[] = ", sizeof(symbol_";
+static char symbol_611[] = ")-1)";
+static char symbol_612[] = "x";
+static char symbol_613[] = "xs";
+static char symbol_614[] = "lookup_action(variables, ";
+static char symbol_615[] = "x";
+static char symbol_616[] = ")";
+static char symbol_617[] = "xs";
+static char symbol_618[] = ".";
+static char symbol_619[] = "x";
+static char symbol_620[] = "->";
+static char symbol_621[] = "x";
+static char symbol_622[] = "W[";
+static char symbol_623[] = "x";
+static char symbol_624[] = "]";
+static char symbol_625[] = "x";
+static char symbol_626[] = "unsigned int W_";
+static char symbol_627[] = "x";
+static char symbol_628[] = ";\n";
+static char symbol_629[] = "x";
+static char symbol_630[] = "\\\"";
+static char symbol_631[] = "\"";
+static char symbol_632[] = "xs";
+static char symbol_633[] = "static char symbol_";
+static char symbol_634[] = "[] = \"";
+static char symbol_635[] = "xs";
+static char symbol_636[] = "\";\n";
+static char symbol_637[] = "buffer_from_cstring(symbol_";
+static char symbol_638[] = ", sizeof(symbol_";
+static char symbol_639[] = ")-1)";
+static char symbol_640[] = "\'";
+static char symbol_641[] = "\\\'";
+static char symbol_642[] = "\"";
+static char symbol_643[] = "\\\"";
+static char symbol_644[] = "x";
+static char symbol_645[] = "static char symbol_";
+static char symbol_646[] = "[] = \"";
+static char symbol_647[] = "x";
+static char symbol_648[] = "\";\n";
+static char symbol_649[] = "buffer_from_cstring(symbol_";
+static char symbol_650[] = ", sizeof(symbol_";
+static char symbol_651[] = ")-1)";
+static char symbol_652[] = "a";
+static char symbol_653[] = "b";
+static char symbol_654[] = "c";
+static char symbol_655[] = "d";
+static char symbol_656[] = "e";
+static char symbol_657[] = "f";
+static char symbol_658[] = "g";
+static char symbol_659[] = "h";
+static char symbol_660[] = "i";
+static char symbol_661[] = "j";
+static char symbol_662[] = "k";
+static char symbol_663[] = "l";
+static char symbol_664[] = "m";
+static char symbol_665[] = "n";
+static char symbol_666[] = "o";
+static char symbol_667[] = "p";
+static char symbol_668[] = "q";
+static char symbol_669[] = "r";
+static char symbol_670[] = "s";
+static char symbol_671[] = "t";
+static char symbol_672[] = "u";
+static char symbol_673[] = "v";
+static char symbol_674[] = "w";
+static char symbol_675[] = "x";
+static char symbol_676[] = "y";
+static char symbol_677[] = "z";
+static char symbol_678[] = "A";
+static char symbol_679[] = "B";
+static char symbol_680[] = "C";
+static char symbol_681[] = "D";
+static char symbol_682[] = "E";
+static char symbol_683[] = "F";
+static char symbol_684[] = "G";
+static char symbol_685[] = "H";
+static char symbol_686[] = "I";
+static char symbol_687[] = "J";
+static char symbol_688[] = "K";
+static char symbol_689[] = "L";
+static char symbol_690[] = "M";
+static char symbol_691[] = "N";
+static char symbol_692[] = "O";
+static char symbol_693[] = "P";
+static char symbol_694[] = "Q";
+static char symbol_695[] = "R";
+static char symbol_696[] = "S";
+static char symbol_697[] = "T";
+static char symbol_698[] = "U";
+static char symbol_699[] = "V";
+static char symbol_700[] = "W";
+static char symbol_701[] = "X";
+static char symbol_702[] = "Y";
+static char symbol_703[] = "Z";
+static char symbol_704[] = " ";
+static char symbol_705[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1396,36 +1394,36 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_272, sizeof(symbol_272)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_273, sizeof(symbol_273)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
@@ -1435,24 +1433,23 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_284, sizeof(symbol_284)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_285, sizeof(symbol_285)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_288, sizeof(symbol_288)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1461,35 +1458,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1497,25 +1494,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1524,22 +1521,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1548,33 +1545,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1586,51 +1583,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1640,13 +1637,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1655,39 +1652,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1696,23 +1693,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1722,39 +1719,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1763,30 +1760,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1795,20 +1792,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1817,27 +1814,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1847,60 +1844,60 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1910,48 +1907,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1961,29 +1958,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1993,14 +1990,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2010,21 +2007,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2034,17 +2031,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2127,11 +2124,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_301, sizeof(symbol_301)-1);
+                data = buffer_from_cstring(symbol_300, sizeof(symbol_300)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2142,11 +2139,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
+                                data = buffer_from_cstring(symbol_302, sizeof(symbol_302)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2181,7 +2178,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2195,7 +2192,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2216,7 +2213,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2253,7 +2250,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_324, sizeof(symbol_324)-1);
+        data = buffer_from_cstring(symbol_323, sizeof(symbol_323)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2277,7 +2274,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2296,10 +2293,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2309,7 +2306,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2326,7 +2323,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_337, sizeof(symbol_337)-1);
+    data = buffer_from_cstring(symbol_336, sizeof(symbol_336)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2335,7 +2332,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2343,7 +2340,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_349, sizeof(symbol_349)-1);
+    data = buffer_from_cstring(symbol_348, sizeof(symbol_348)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2352,7 +2349,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2361,10 +2358,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2382,7 +2379,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_365, sizeof(symbol_365)-1);
+    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2391,7 +2388,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2414,9 +2411,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
+        data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2431,7 +2428,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2455,7 +2452,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_392, sizeof(symbol_392)-1);
+        data = buffer_from_cstring(symbol_391, sizeof(symbol_391)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2471,7 +2468,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2489,7 +2486,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2513,7 +2510,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
+    data = buffer_from_cstring(symbol_399, sizeof(symbol_399)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2526,7 +2523,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_401, sizeof(symbol_401)-1);
+    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2553,14 +2550,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
+    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2580,7 +2577,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2588,7 +2585,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
+    data = buffer_from_cstring(symbol_421, sizeof(symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2602,7 +2599,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2624,7 +2621,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
+        data = buffer_from_cstring(symbol_440, sizeof(symbol_440)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2634,7 +2631,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_442, sizeof(symbol_442)-1);
+                data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2654,11 +2651,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
+                            data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2696,7 +2693,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
+        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2705,9 +2702,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2727,11 +2724,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2752,7 +2749,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_470, sizeof(symbol_470)-1);
+        data = buffer_from_cstring(symbol_469, sizeof(symbol_469)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2761,9 +2758,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+                data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2781,7 +2778,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
+        data = buffer_from_cstring(symbol_479, sizeof(symbol_479)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2790,11 +2787,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
+                    data = buffer_from_cstring(symbol_481, sizeof(symbol_481)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2814,11 +2811,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
+                                data = buffer_from_cstring(symbol_483, sizeof(symbol_483)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2840,7 +2837,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
+        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2849,7 +2846,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2861,7 +2858,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2872,7 +2869,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2883,7 +2880,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2894,7 +2891,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2904,7 +2901,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
+        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2913,9 +2910,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
+                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2924,9 +2921,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
+                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2935,9 +2932,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
+                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2959,7 +2956,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
+        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2979,11 +2976,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
+                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3010,7 +3007,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3027,7 +3024,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3048,7 +3045,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3060,7 +3057,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3072,7 +3069,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3084,7 +3081,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3096,7 +3093,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3108,7 +3105,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3120,7 +3117,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3132,7 +3129,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3144,7 +3141,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3156,7 +3153,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3179,7 +3176,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3190,9 +3187,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3201,11 +3198,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3235,14 +3232,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3251,9 +3248,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3262,9 +3259,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3294,7 +3291,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3314,9 +3311,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
+            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3344,7 +3341,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3358,7 +3355,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3376,7 +3373,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
+    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3385,7 +3382,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3403,7 +3400,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
+    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3417,9 +3414,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_625, sizeof(symbol_625)-1);
+            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3443,7 +3440,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3456,7 +3453,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3509,7 +3506,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3528,7 +3525,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3551,7 +3548,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3564,7 +3561,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3608,7 +3605,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3674,6 +3671,18 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3972,6 +3981,15 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
@@ -3984,15 +4002,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Action* _;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
@@ -4293,18 +4302,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
     return NULL;
 }
 
@@ -4344,7 +4341,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4356,7 +4353,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 0f8a666..4a05bd3 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -265,7 +265,6 @@ file = rule*:xs space !. -> {
                         < "}\n"
                         "*last_char = chunk->data->buffer[i];\n"
                         "putchar(*last_char);\n"
-                        "fflush(stdout);\n"
                     < "}\n"
                 < "}\n"
                 "render_chunks(chunk->chunks, last_char, indent);\n"

commit 8d600cccb5ff8e1c55bf06165086faeaf50c5607
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 20:38:24 2025 +0100

    Add fork example

diff --git a/make.sh b/make.sh
index 825fe31..c4bad87 100755
--- a/make.sh
+++ b/make.sh
@@ -13,6 +13,7 @@ experiments() {
     experiment sizes
     experiment strings
     experiment bitmanipulation
+    experiment fork
 }
 
 experiment() {
diff --git a/src/experiments/fork.c b/src/experiments/fork.c
new file mode 100644
index 0000000..27e32d7
--- /dev/null
+++ b/src/experiments/fork.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+int main(void) {
+    pid_t pid = fork();
+    if (pid) {
+        int status;
+        printf("in parent\n");
+        waitpid(pid, &status, 0);
+        printf("status = %d\n", WEXITSTATUS(status));
+        return 0;
+    } else {
+        printf("in fork\n");
+        return 2;
+    }
+}

2025-11-04 23:04 Rickard pushed to rlworkbench

commit f06b498f99d835d7021e3683767309dca2f3fadc
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 23:00:13 2025 +0100

    Replace unseen(string) with unique(string)

diff --git a/src/meta/meta.c b/src/meta/meta.c
index a34d682..ee90119 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -618,413 +618,374 @@ static char symbol_335[] = "y";
 static char symbol_336[] = "y";
 static char symbol_337[] = "!";
 static char symbol_338[] = "x";
-static char symbol_339[] = "nlookahead_pos";
-static char symbol_340[] = "unsigned int ";
-static char symbol_341[] = "nlookahead_pos";
-static char symbol_342[] = ";\n";
-static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_344[] = "x";
-static char symbol_345[] = "if (_ == NULL) {\n";
-static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_347[] = "} else {\n";
-static char symbol_348[] = "_ = NULL;\n";
-static char symbol_349[] = "}\n";
-static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_351[] = "&";
-static char symbol_352[] = "x";
-static char symbol_353[] = "lookahead_pos";
-static char symbol_354[] = "unsigned int ";
-static char symbol_355[] = "lookahead_pos";
-static char symbol_356[] = ";\n";
-static char symbol_357[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_358[] = "x";
-static char symbol_359[] = "if (_ == NULL) {\n";
-static char symbol_360[] = "_ = NULL;\n";
-static char symbol_361[] = "} else {\n";
-static char symbol_362[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_363[] = "}\n";
-static char symbol_364[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_365[] = "x";
-static char symbol_366[] = "y";
-static char symbol_367[] = "x";
-static char symbol_368[] = "y";
-static char symbol_369[] = ":";
+static char symbol_339[] = "unsigned int nlookahead_pos;\n";
+static char symbol_340[] = "unsigned int nlookahead_pos;\n";
+static char symbol_341[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_342[] = "x";
+static char symbol_343[] = "if (_ == NULL) {\n";
+static char symbol_344[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_345[] = "} else {\n";
+static char symbol_346[] = "_ = NULL;\n";
+static char symbol_347[] = "}\n";
+static char symbol_348[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_349[] = "&";
+static char symbol_350[] = "x";
+static char symbol_351[] = "unsigned int lookahead_pos;\n";
+static char symbol_352[] = "unsigned int lookahead_pos;\n";
+static char symbol_353[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_354[] = "x";
+static char symbol_355[] = "if (_ == NULL) {\n";
+static char symbol_356[] = "_ = NULL;\n";
+static char symbol_357[] = "} else {\n";
+static char symbol_358[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_359[] = "}\n";
+static char symbol_360[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_361[] = "x";
+static char symbol_362[] = "y";
+static char symbol_363[] = "x";
+static char symbol_364[] = "y";
+static char symbol_365[] = ":";
+static char symbol_366[] = "x";
+static char symbol_367[] = "append_named_action(variables, ";
+static char symbol_368[] = "x";
+static char symbol_369[] = ", _);\n";
 static char symbol_370[] = "x";
-static char symbol_371[] = "append_named_action(variables, ";
-static char symbol_372[] = "x";
-static char symbol_373[] = ", _);\n";
-static char symbol_374[] = "x";
-static char symbol_375[] = "*";
-static char symbol_376[] = "star_variables";
-static char symbol_377[] = "struct Variables* ";
-static char symbol_378[] = "star_variables";
-static char symbol_379[] = ";\n";
-static char symbol_380[] = "star_pos";
-static char symbol_381[] = "unsigned int ";
-static char symbol_382[] = "star_pos";
-static char symbol_383[] = ";\n";
-static char symbol_384[] = "star_start_pos";
-static char symbol_385[] = "unsigned int ";
-static char symbol_386[] = "star_start_pos";
-static char symbol_387[] = ";\n";
-static char symbol_388[] = "star_variables = create_variables();\n";
-static char symbol_389[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_390[] = "while (1) {\n";
-static char symbol_391[] = "star_pos = parse_state->pos;\n";
-static char symbol_392[] = "x";
-static char symbol_393[] = "if (_ == NULL) {\n";
-static char symbol_394[] = "parse_state->pos = star_pos;\n";
-static char symbol_395[] = "break;\n";
-static char symbol_396[] = "}\n";
-static char symbol_397[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_398[] = "}\n";
-static char symbol_399[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_400[] = "x";
-static char symbol_401[] = "x";
-static char symbol_402[] = "_";
+static char symbol_371[] = "*";
+static char symbol_372[] = "struct Variables* star_variables;\n";
+static char symbol_373[] = "struct Variables* star_variables;\n";
+static char symbol_374[] = "unsigned int star_pos;\n";
+static char symbol_375[] = "unsigned int star_pos;\n";
+static char symbol_376[] = "unsigned int star_start_pos;\n";
+static char symbol_377[] = "unsigned int star_start_pos;\n";
+static char symbol_378[] = "star_variables = create_variables();\n";
+static char symbol_379[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_380[] = "while (1) {\n";
+static char symbol_381[] = "star_pos = parse_state->pos;\n";
+static char symbol_382[] = "x";
+static char symbol_383[] = "if (_ == NULL) {\n";
+static char symbol_384[] = "parse_state->pos = star_pos;\n";
+static char symbol_385[] = "break;\n";
+static char symbol_386[] = "}\n";
+static char symbol_387[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_388[] = "}\n";
+static char symbol_389[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_390[] = "x";
+static char symbol_391[] = "x";
+static char symbol_392[] = "_";
+static char symbol_393[] = "x";
+static char symbol_394[] = "bitpattern <<= 1;\n";
+static char symbol_395[] = "bitmask <<= 1;\n";
+static char symbol_396[] = "x";
+static char symbol_397[] = "x";
+static char symbol_398[] = "x";
+static char symbol_399[] = "bitmask |= 1;\n";
+static char symbol_400[] = "0";
+static char symbol_401[] = "1";
+static char symbol_402[] = "bitpattern |= 1;\n";
 static char symbol_403[] = "x";
-static char symbol_404[] = "bitpattern <<= 1;\n";
-static char symbol_405[] = "bitmask <<= 1;\n";
-static char symbol_406[] = "x";
-static char symbol_407[] = "x";
-static char symbol_408[] = "x";
-static char symbol_409[] = "bitmask |= 1;\n";
-static char symbol_410[] = "0";
-static char symbol_411[] = "1";
-static char symbol_412[] = "bitpattern |= 1;\n";
-static char symbol_413[] = "x";
-static char symbol_414[] = "_ = rule_";
-static char symbol_415[] = "x";
-static char symbol_416[] = "(parse_state);\n";
-static char symbol_417[] = "0b";
-static char symbol_418[] = "xs";
-static char symbol_419[] = "bitpattern";
-static char symbol_420[] = "unsigned char ";
-static char symbol_421[] = "bitpattern";
-static char symbol_422[] = ";\n";
-static char symbol_423[] = "bitmask";
-static char symbol_424[] = "unsigned char ";
-static char symbol_425[] = "bitmask";
-static char symbol_426[] = ";\n";
-static char symbol_427[] = "bitpattern = 0;\n";
-static char symbol_428[] = "bitmask = 0;\n";
-static char symbol_429[] = "xs";
-static char symbol_430[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char symbol_431[] = "parse_state->pos += 1;\n";
-static char symbol_432[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_433[] = "} else {\n";
-static char symbol_434[] = "_ = NULL;\n";
-static char symbol_435[] = "}\n";
-static char symbol_436[] = ".";
-static char symbol_437[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_438[] = "parse_state->pos += 1;\n";
-static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_440[] = "} else {\n";
-static char symbol_441[] = "_ = NULL;\n";
-static char symbol_442[] = "}\n";
-static char symbol_443[] = "x";
-static char symbol_444[] = "data";
-static char symbol_445[] = "struct Buffer* ";
-static char symbol_446[] = "data";
-static char symbol_447[] = ";\n";
-static char symbol_448[] = "data = ";
-static char symbol_449[] = "x";
-static char symbol_450[] = ";\n";
-static char symbol_451[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_452[] = "parse_state->pos += data->size;\n";
-static char symbol_453[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_454[] = "} else {\n";
-static char symbol_455[] = "_ = NULL;\n";
-static char symbol_456[] = "}\n";
-static char symbol_457[] = "->";
-static char symbol_458[] = "{";
-static char symbol_459[] = "xs";
-static char symbol_460[] = "}";
-static char symbol_461[] = "void action_";
-static char symbol_462[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_463[] = "xs";
-static char symbol_464[] = "}\n";
-static char symbol_465[] = "\n";
-static char symbol_466[] = "variables";
-static char symbol_467[] = "struct Variables* ";
-static char symbol_468[] = "variables";
-static char symbol_469[] = ";\n";
-static char symbol_470[] = "variables";
-static char symbol_471[] = "variables";
-static char symbol_472[] = " = create_variables();\n";
-static char symbol_473[] = "return create_action(action_";
-static char symbol_474[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_475[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_476[] = "unseen(";
+static char symbol_404[] = "_ = rule_";
+static char symbol_405[] = "x";
+static char symbol_406[] = "(parse_state);\n";
+static char symbol_407[] = "0b";
+static char symbol_408[] = "xs";
+static char symbol_409[] = "unsigned char bitpattern;\n";
+static char symbol_410[] = "unsigned char bitpattern;\n";
+static char symbol_411[] = "unsigned char bitmask;\n";
+static char symbol_412[] = "unsigned char bitmask;\n";
+static char symbol_413[] = "bitpattern = 0;\n";
+static char symbol_414[] = "bitmask = 0;\n";
+static char symbol_415[] = "xs";
+static char symbol_416[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char symbol_417[] = "parse_state->pos += 1;\n";
+static char symbol_418[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_419[] = "} else {\n";
+static char symbol_420[] = "_ = NULL;\n";
+static char symbol_421[] = "}\n";
+static char symbol_422[] = ".";
+static char symbol_423[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_424[] = "parse_state->pos += 1;\n";
+static char symbol_425[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_426[] = "} else {\n";
+static char symbol_427[] = "_ = NULL;\n";
+static char symbol_428[] = "}\n";
+static char symbol_429[] = "x";
+static char symbol_430[] = "struct Buffer* data;\n";
+static char symbol_431[] = "struct Buffer* data;\n";
+static char symbol_432[] = "data = ";
+static char symbol_433[] = "x";
+static char symbol_434[] = ";\n";
+static char symbol_435[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_436[] = "parse_state->pos += data->size;\n";
+static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_438[] = "} else {\n";
+static char symbol_439[] = "_ = NULL;\n";
+static char symbol_440[] = "}\n";
+static char symbol_441[] = "->";
+static char symbol_442[] = "{";
+static char symbol_443[] = "xs";
+static char symbol_444[] = "}";
+static char symbol_445[] = "void action_";
+static char symbol_446[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_447[] = "xs";
+static char symbol_448[] = "}\n";
+static char symbol_449[] = "\n";
+static char symbol_450[] = "struct Variables* variables;\n";
+static char symbol_451[] = "struct Variables* variables;\n";
+static char symbol_452[] = "variables = create_variables();\n";
+static char symbol_453[] = "variables = create_variables();\n";
+static char symbol_454[] = "return create_action(action_";
+static char symbol_455[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_456[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_457[] = "unseen(";
+static char symbol_458[] = "x";
+static char symbol_459[] = ") -> {";
+static char symbol_460[] = "ys";
+static char symbol_461[] = "}";
+static char symbol_462[] = "struct Action* action;\n";
+static char symbol_463[] = "struct Action* action;\n";
+static char symbol_464[] = "action = lookup_action(variables, ";
+static char symbol_465[] = "x";
+static char symbol_466[] = ");\n";
+static char symbol_467[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_468[] = "ys";
+static char symbol_469[] = "}\n";
+static char symbol_470[] = "unique(";
+static char symbol_471[] = "x";
+static char symbol_472[] = ")";
+static char symbol_473[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_474[] = "x";
+static char symbol_475[] = ")) {\n";
+static char symbol_476[] = "append_data(runtime->current_chunks, ";
 static char symbol_477[] = "x";
-static char symbol_478[] = ") -> {";
-static char symbol_479[] = "ys";
-static char symbol_480[] = "}";
-static char symbol_481[] = "action";
-static char symbol_482[] = "struct Action* ";
-static char symbol_483[] = "action";
-static char symbol_484[] = ";\n";
-static char symbol_485[] = "action = lookup_action(variables, ";
-static char symbol_486[] = "x";
-static char symbol_487[] = ");\n";
-static char symbol_488[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_489[] = "ys";
-static char symbol_490[] = "}\n";
-static char symbol_491[] = "unseen(";
-static char symbol_492[] = "x";
-static char symbol_493[] = ") -> {";
+static char symbol_478[] = ", 0, NULL);\n";
+static char symbol_479[] = "}\n";
+static char symbol_480[] = ">";
+static char symbol_481[] = "x";
+static char symbol_482[] = "{";
+static char symbol_483[] = "ys";
+static char symbol_484[] = "}";
+static char symbol_485[] = "struct Chunks* last_chunks;\n";
+static char symbol_486[] = "struct Chunks* last_chunks;\n";
+static char symbol_487[] = "struct Chunks* chunks;\n";
+static char symbol_488[] = "struct Chunks* chunks;\n";
+static char symbol_489[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_490[] = "chunks = runtime->named_chunks_";
+static char symbol_491[] = "x";
+static char symbol_492[] = ";\n";
+static char symbol_493[] = "runtime->current_chunks = chunks;\n";
 static char symbol_494[] = "ys";
-static char symbol_495[] = "}";
-static char symbol_496[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_495[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_496[] = "<";
 static char symbol_497[] = "x";
-static char symbol_498[] = ")) {\n";
-static char symbol_499[] = "ys";
-static char symbol_500[] = "}\n";
-static char symbol_501[] = "unique(";
+static char symbol_498[] = "struct Chunks* chunks;\n";
+static char symbol_499[] = "struct Chunks* chunks;\n";
+static char symbol_500[] = "chunks = create_chunks();\n";
+static char symbol_501[] = "runtime->named_chunks_";
 static char symbol_502[] = "x";
-static char symbol_503[] = ")";
-static char symbol_504[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_503[] = " = chunks;\n";
+static char symbol_504[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_505[] = "x";
-static char symbol_506[] = ")) {\n";
-static char symbol_507[] = "append_data(runtime->current_chunks, ";
-static char symbol_508[] = "x";
-static char symbol_509[] = ", 0, NULL);\n";
-static char symbol_510[] = "}\n";
-static char symbol_511[] = ">";
-static char symbol_512[] = "x";
-static char symbol_513[] = "{";
-static char symbol_514[] = "ys";
-static char symbol_515[] = "}";
-static char symbol_516[] = "last_chunks";
-static char symbol_517[] = "struct Chunks* ";
-static char symbol_518[] = "last_chunks";
-static char symbol_519[] = ";\n";
-static char symbol_520[] = "chunks";
-static char symbol_521[] = "struct Chunks* ";
-static char symbol_522[] = "chunks";
-static char symbol_523[] = ";\n";
-static char symbol_524[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_525[] = "chunks = runtime->named_chunks_";
-static char symbol_526[] = "x";
-static char symbol_527[] = ";\n";
-static char symbol_528[] = "runtime->current_chunks = chunks;\n";
-static char symbol_529[] = "ys";
-static char symbol_530[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_531[] = "<";
+static char symbol_506[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_507[] = "x";
+static char symbol_508[] = "), 0, NULL);\n";
+static char symbol_509[] = "x";
+static char symbol_510[] = "run_action(lookup_action(variables, ";
+static char symbol_511[] = "x";
+static char symbol_512[] = "), runtime);\n";
+static char symbol_513[] = "x";
+static char symbol_514[] = "void placeholder_";
+static char symbol_515[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_516[] = "void placeholder_";
+static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_518[] = "x";
+static char symbol_519[] = "}\n";
+static char symbol_520[] = "\n";
+static char symbol_521[] = "struct Chunks* chunks;\n";
+static char symbol_522[] = "struct Chunks* chunks;\n";
+static char symbol_523[] = "chunks = create_chunks();\n";
+static char symbol_524[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_525[] = ", variables, NULL, 0, 0));\n";
+static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_527[] = "x";
+static char symbol_528[] = "append_data(runtime->current_chunks, ";
+static char symbol_529[] = "x";
+static char symbol_530[] = ", 0, NULL);\n";
+static char symbol_531[] = "#";
 static char symbol_532[] = "x";
-static char symbol_533[] = "chunks";
-static char symbol_534[] = "struct Chunks* ";
-static char symbol_535[] = "chunks";
-static char symbol_536[] = ";\n";
-static char symbol_537[] = "chunks = create_chunks();\n";
-static char symbol_538[] = "runtime->named_chunks_";
-static char symbol_539[] = "x";
-static char symbol_540[] = " = chunks;\n";
-static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_542[] = "x";
-static char symbol_543[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_544[] = "x";
-static char symbol_545[] = "), 0, NULL);\n";
-static char symbol_546[] = "x";
-static char symbol_547[] = "run_action(lookup_action(variables, ";
-static char symbol_548[] = "x";
-static char symbol_549[] = "), runtime);\n";
-static char symbol_550[] = "x";
-static char symbol_551[] = "void placeholder_";
-static char symbol_552[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_553[] = "void placeholder_";
-static char symbol_554[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_533[] = "(";
+static char symbol_534[] = "y";
+static char symbol_535[] = " ";
+static char symbol_536[] = "z";
+static char symbol_537[] = ")";
+static char symbol_538[] = "runtime->W_";
+static char symbol_539[] = "y";
+static char symbol_540[] = " = ";
+static char symbol_541[] = "x";
+static char symbol_542[] = "(runtime->W_";
+static char symbol_543[] = "y";
+static char symbol_544[] = " ? runtime->W_";
+static char symbol_545[] = "y";
+static char symbol_546[] = " : 0, ";
+static char symbol_547[] = "z";
+static char symbol_548[] = ");\n";
+static char symbol_549[] = ">";
+static char symbol_550[] = "xs";
+static char symbol_551[] = "<";
+static char symbol_552[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_553[] = "xs";
+static char symbol_554[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_555[] = "x";
-static char symbol_556[] = "}\n";
-static char symbol_557[] = "\n";
-static char symbol_558[] = "chunks";
-static char symbol_559[] = "struct Chunks* ";
-static char symbol_560[] = "chunks";
-static char symbol_561[] = ";\n";
-static char symbol_562[] = "chunks = create_chunks();\n";
-static char symbol_563[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_564[] = ", variables, NULL, 0, 0));\n";
-static char symbol_565[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_566[] = "x";
-static char symbol_567[] = "append_data(runtime->current_chunks, ";
-static char symbol_568[] = "x";
-static char symbol_569[] = ", 0, NULL);\n";
-static char symbol_570[] = "#";
-static char symbol_571[] = "x";
-static char symbol_572[] = "(";
-static char symbol_573[] = "y";
-static char symbol_574[] = " ";
-static char symbol_575[] = "z";
-static char symbol_576[] = ")";
-static char symbol_577[] = "runtime->W_";
-static char symbol_578[] = "y";
-static char symbol_579[] = " = ";
-static char symbol_580[] = "x";
-static char symbol_581[] = "(runtime->W_";
-static char symbol_582[] = "y";
-static char symbol_583[] = " ? runtime->W_";
-static char symbol_584[] = "y";
-static char symbol_585[] = " : 0, ";
-static char symbol_586[] = "z";
-static char symbol_587[] = ");\n";
-static char symbol_588[] = ">";
-static char symbol_589[] = "xs";
-static char symbol_590[] = "<";
-static char symbol_591[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_592[] = "xs";
-static char symbol_593[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_594[] = "x";
-static char symbol_595[] = "x";
-static char symbol_596[] = "struct Chunks* named_chunks_";
+static char symbol_556[] = "x";
+static char symbol_557[] = "struct Chunks* named_chunks_";
+static char symbol_558[] = "x";
+static char symbol_559[] = ";\n";
+static char symbol_560[] = "x";
+static char symbol_561[] = "x";
+static char symbol_562[] = "x";
+static char symbol_563[] = "0";
+static char symbol_564[] = "1";
+static char symbol_565[] = "2";
+static char symbol_566[] = "3";
+static char symbol_567[] = "4";
+static char symbol_568[] = "5";
+static char symbol_569[] = "6";
+static char symbol_570[] = "7";
+static char symbol_571[] = "8";
+static char symbol_572[] = "9";
+static char symbol_573[] = "{";
+static char symbol_574[] = "x";
+static char symbol_575[] = "*";
+static char symbol_576[] = "y";
+static char symbol_577[] = "}";
+static char symbol_578[] = "for (int i=0; i < ";
+static char symbol_579[] = "y";
+static char symbol_580[] = "; i++) {\n";
+static char symbol_581[] = "append_data(runtime->current_chunks, ";
+static char symbol_582[] = "x";
+static char symbol_583[] = ", 0, NULL);\n";
+static char symbol_584[] = "}\n";
+static char symbol_585[] = "x";
+static char symbol_586[] = "(runtime->W_";
+static char symbol_587[] = "x";
+static char symbol_588[] = " ? runtime->W_";
+static char symbol_589[] = "x";
+static char symbol_590[] = " : 0)";
+static char symbol_591[] = "(";
+static char symbol_592[] = "x";
+static char symbol_593[] = "-";
+static char symbol_594[] = "y";
+static char symbol_595[] = ")";
+static char symbol_596[] = "((runtime->W_";
 static char symbol_597[] = "x";
-static char symbol_598[] = ";\n";
+static char symbol_598[] = " ? runtime->W_";
 static char symbol_599[] = "x";
-static char symbol_600[] = "x";
-static char symbol_601[] = "x";
-static char symbol_602[] = "0";
-static char symbol_603[] = "1";
-static char symbol_604[] = "2";
-static char symbol_605[] = "3";
-static char symbol_606[] = "4";
-static char symbol_607[] = "5";
-static char symbol_608[] = "6";
-static char symbol_609[] = "7";
-static char symbol_610[] = "8";
-static char symbol_611[] = "9";
-static char symbol_612[] = "{";
+static char symbol_600[] = " : 0)-";
+static char symbol_601[] = "y";
+static char symbol_602[] = ")";
+static char symbol_603[] = "\"";
+static char symbol_604[] = "xs";
+static char symbol_605[] = "\"";
+static char symbol_606[] = "static char symbol_";
+static char symbol_607[] = "[] = \"";
+static char symbol_608[] = "xs";
+static char symbol_609[] = "\";\n";
+static char symbol_610[] = "buffer_from_cstring(symbol_";
+static char symbol_611[] = ", sizeof(symbol_";
+static char symbol_612[] = ")-1)";
 static char symbol_613[] = "x";
-static char symbol_614[] = "*";
-static char symbol_615[] = "y";
-static char symbol_616[] = "}";
-static char symbol_617[] = "for (int i=0; i < ";
-static char symbol_618[] = "y";
-static char symbol_619[] = "; i++) {\n";
-static char symbol_620[] = "append_data(runtime->current_chunks, ";
-static char symbol_621[] = "x";
-static char symbol_622[] = ", 0, NULL);\n";
-static char symbol_623[] = "}\n";
+static char symbol_614[] = "xs";
+static char symbol_615[] = "lookup_action(variables, ";
+static char symbol_616[] = "x";
+static char symbol_617[] = ")";
+static char symbol_618[] = "xs";
+static char symbol_619[] = ".";
+static char symbol_620[] = "x";
+static char symbol_621[] = "->";
+static char symbol_622[] = "x";
+static char symbol_623[] = "W[";
 static char symbol_624[] = "x";
-static char symbol_625[] = "(runtime->W_";
+static char symbol_625[] = "]";
 static char symbol_626[] = "x";
-static char symbol_627[] = " ? runtime->W_";
+static char symbol_627[] = "unsigned int W_";
 static char symbol_628[] = "x";
-static char symbol_629[] = " : 0)";
-static char symbol_630[] = "(";
-static char symbol_631[] = "x";
-static char symbol_632[] = "-";
-static char symbol_633[] = "y";
-static char symbol_634[] = ")";
-static char symbol_635[] = "((runtime->W_";
-static char symbol_636[] = "x";
-static char symbol_637[] = " ? runtime->W_";
-static char symbol_638[] = "x";
-static char symbol_639[] = " : 0)-";
-static char symbol_640[] = "y";
-static char symbol_641[] = ")";
-static char symbol_642[] = "\"";
-static char symbol_643[] = "xs";
-static char symbol_644[] = "\"";
-static char symbol_645[] = "static char symbol_";
-static char symbol_646[] = "[] = \"";
-static char symbol_647[] = "xs";
-static char symbol_648[] = "\";\n";
-static char symbol_649[] = "buffer_from_cstring(symbol_";
-static char symbol_650[] = ", sizeof(symbol_";
-static char symbol_651[] = ")-1)";
-static char symbol_652[] = "x";
-static char symbol_653[] = "xs";
-static char symbol_654[] = "lookup_action(variables, ";
-static char symbol_655[] = "x";
-static char symbol_656[] = ")";
-static char symbol_657[] = "xs";
-static char symbol_658[] = ".";
-static char symbol_659[] = "x";
-static char symbol_660[] = "->";
-static char symbol_661[] = "x";
-static char symbol_662[] = "W[";
-static char symbol_663[] = "x";
-static char symbol_664[] = "]";
-static char symbol_665[] = "x";
-static char symbol_666[] = "unsigned int W_";
-static char symbol_667[] = "x";
-static char symbol_668[] = ";\n";
-static char symbol_669[] = "x";
-static char symbol_670[] = "\\\"";
-static char symbol_671[] = "\"";
-static char symbol_672[] = "xs";
-static char symbol_673[] = "static char symbol_";
-static char symbol_674[] = "[] = \"";
-static char symbol_675[] = "xs";
-static char symbol_676[] = "\";\n";
-static char symbol_677[] = "buffer_from_cstring(symbol_";
-static char symbol_678[] = ", sizeof(symbol_";
-static char symbol_679[] = ")-1)";
-static char symbol_680[] = "\'";
-static char symbol_681[] = "\\\'";
-static char symbol_682[] = "\"";
-static char symbol_683[] = "\\\"";
-static char symbol_684[] = "x";
-static char symbol_685[] = "static char symbol_";
-static char symbol_686[] = "[] = \"";
-static char symbol_687[] = "x";
-static char symbol_688[] = "\";\n";
-static char symbol_689[] = "buffer_from_cstring(symbol_";
-static char symbol_690[] = ", sizeof(symbol_";
-static char symbol_691[] = ")-1)";
-static char symbol_692[] = "a";
-static char symbol_693[] = "b";
-static char symbol_694[] = "c";
-static char symbol_695[] = "d";
-static char symbol_696[] = "e";
-static char symbol_697[] = "f";
-static char symbol_698[] = "g";
-static char symbol_699[] = "h";
-static char symbol_700[] = "i";
-static char symbol_701[] = "j";
-static char symbol_702[] = "k";
-static char symbol_703[] = "l";
-static char symbol_704[] = "m";
-static char symbol_705[] = "n";
-static char symbol_706[] = "o";
-static char symbol_707[] = "p";
-static char symbol_708[] = "q";
-static char symbol_709[] = "r";
-static char symbol_710[] = "s";
-static char symbol_711[] = "t";
-static char symbol_712[] = "u";
-static char symbol_713[] = "v";
-static char symbol_714[] = "w";
-static char symbol_715[] = "x";
-static char symbol_716[] = "y";
-static char symbol_717[] = "z";
-static char symbol_718[] = "A";
-static char symbol_719[] = "B";
-static char symbol_720[] = "C";
-static char symbol_721[] = "D";
-static char symbol_722[] = "E";
-static char symbol_723[] = "F";
-static char symbol_724[] = "G";
-static char symbol_725[] = "H";
-static char symbol_726[] = "I";
-static char symbol_727[] = "J";
-static char symbol_728[] = "K";
-static char symbol_729[] = "L";
-static char symbol_730[] = "M";
-static char symbol_731[] = "N";
-static char symbol_732[] = "O";
-static char symbol_733[] = "P";
-static char symbol_734[] = "Q";
-static char symbol_735[] = "R";
-static char symbol_736[] = "S";
-static char symbol_737[] = "T";
-static char symbol_738[] = "U";
-static char symbol_739[] = "V";
-static char symbol_740[] = "W";
-static char symbol_741[] = "X";
-static char symbol_742[] = "Y";
-static char symbol_743[] = "Z";
-static char symbol_744[] = " ";
-static char symbol_745[] = "\n";
+static char symbol_629[] = ";\n";
+static char symbol_630[] = "x";
+static char symbol_631[] = "\\\"";
+static char symbol_632[] = "\"";
+static char symbol_633[] = "xs";
+static char symbol_634[] = "static char symbol_";
+static char symbol_635[] = "[] = \"";
+static char symbol_636[] = "xs";
+static char symbol_637[] = "\";\n";
+static char symbol_638[] = "buffer_from_cstring(symbol_";
+static char symbol_639[] = ", sizeof(symbol_";
+static char symbol_640[] = ")-1)";
+static char symbol_641[] = "\'";
+static char symbol_642[] = "\\\'";
+static char symbol_643[] = "\"";
+static char symbol_644[] = "\\\"";
+static char symbol_645[] = "x";
+static char symbol_646[] = "static char symbol_";
+static char symbol_647[] = "[] = \"";
+static char symbol_648[] = "x";
+static char symbol_649[] = "\";\n";
+static char symbol_650[] = "buffer_from_cstring(symbol_";
+static char symbol_651[] = ", sizeof(symbol_";
+static char symbol_652[] = ")-1)";
+static char symbol_653[] = "a";
+static char symbol_654[] = "b";
+static char symbol_655[] = "c";
+static char symbol_656[] = "d";
+static char symbol_657[] = "e";
+static char symbol_658[] = "f";
+static char symbol_659[] = "g";
+static char symbol_660[] = "h";
+static char symbol_661[] = "i";
+static char symbol_662[] = "j";
+static char symbol_663[] = "k";
+static char symbol_664[] = "l";
+static char symbol_665[] = "m";
+static char symbol_666[] = "n";
+static char symbol_667[] = "o";
+static char symbol_668[] = "p";
+static char symbol_669[] = "q";
+static char symbol_670[] = "r";
+static char symbol_671[] = "s";
+static char symbol_672[] = "t";
+static char symbol_673[] = "u";
+static char symbol_674[] = "v";
+static char symbol_675[] = "w";
+static char symbol_676[] = "x";
+static char symbol_677[] = "y";
+static char symbol_678[] = "z";
+static char symbol_679[] = "A";
+static char symbol_680[] = "B";
+static char symbol_681[] = "C";
+static char symbol_682[] = "D";
+static char symbol_683[] = "E";
+static char symbol_684[] = "F";
+static char symbol_685[] = "G";
+static char symbol_686[] = "H";
+static char symbol_687[] = "I";
+static char symbol_688[] = "J";
+static char symbol_689[] = "K";
+static char symbol_690[] = "L";
+static char symbol_691[] = "M";
+static char symbol_692[] = "N";
+static char symbol_693[] = "O";
+static char symbol_694[] = "P";
+static char symbol_695[] = "Q";
+static char symbol_696[] = "R";
+static char symbol_697[] = "S";
+static char symbol_698[] = "T";
+static char symbol_699[] = "U";
+static char symbol_700[] = "V";
+static char symbol_701[] = "W";
+static char symbol_702[] = "X";
+static char symbol_703[] = "Y";
+static char symbol_704[] = "Z";
+static char symbol_705[] = " ";
+static char symbol_706[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1565,22 +1526,20 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     runtime->current_chunks = chunks;
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1589,35 +1548,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1629,61 +1586,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
     }
-    runtime->current_chunks = last_chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_ruleVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1693,13 +1640,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1708,47 +1655,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
     }
-    runtime->current_chunks = last_chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_ruleVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1757,25 +1696,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1785,42 +1722,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1829,308 +1763,288 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-}
-
-void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
 }
 
-void action_32(struct Runtime* runtime, struct Variables* variables) {
+void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
 }
 
-void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+void action_32(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
 }
 
-void action_34(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+void action_33(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
 }
 
-void action_35(struct Runtime* runtime, struct Variables* variables) {
+void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+}
+
+void action_35(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
-}
-
-void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
 }
 
-void action_40(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+void action_39(struct Runtime* runtime, struct Variables* variables) {
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
 }
 
-void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+void action_40(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
 }
 
-void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+void action_41(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
 }
 
-void action_43(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+void action_42(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
 }
 
-void action_44(struct Runtime* runtime, struct Variables* variables) {
+void action_43(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
 }
 
-void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
+void action_44(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
 }
 
-void action_46(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1)), runtime);
+void action_45(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_46(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
+void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
 }
 
-void action_49(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_683, sizeof(symbol_683)-1), 0, NULL);
+void action_48(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
 }
 
-void action_50(struct Runtime* runtime, struct Variables* variables) {
+void action_49(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_685, sizeof(symbol_685)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_686, sizeof(symbol_686)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_687, sizeof(symbol_687)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_688, sizeof(symbol_688)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_689, sizeof(symbol_689)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_690, sizeof(symbol_690)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_691, sizeof(symbol_691)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2429,7 +2343,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
+    data = buffer_from_cstring(symbol_349, sizeof(symbol_349)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2438,7 +2352,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2447,10 +2361,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2468,7 +2382,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_369, sizeof(symbol_369)-1);
+    data = buffer_from_cstring(symbol_365, sizeof(symbol_365)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2477,7 +2391,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2500,9 +2414,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_375, sizeof(symbol_375)-1);
+        data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2517,7 +2431,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2541,7 +2455,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
+        data = buffer_from_cstring(symbol_392, sizeof(symbol_392)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2557,7 +2471,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2575,7 +2489,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2599,7 +2513,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_410, sizeof(symbol_410)-1);
+    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2612,7 +2526,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_411, sizeof(symbol_411)-1);
+    data = buffer_from_cstring(symbol_401, sizeof(symbol_401)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2639,14 +2553,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
+    data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2666,7 +2580,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2674,7 +2588,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_436, sizeof(symbol_436)-1);
+    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2688,7 +2602,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2710,7 +2624,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
+        data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2720,7 +2634,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
+                data = buffer_from_cstring(symbol_442, sizeof(symbol_442)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2740,11 +2654,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+                            data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2782,7 +2696,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2791,9 +2705,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
+                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2813,11 +2727,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
+                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2838,7 +2752,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
+        data = buffer_from_cstring(symbol_470, sizeof(symbol_470)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2847,9 +2761,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
+                data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2857,34 +2771,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                     _ = NULL;
                 }
                 if (_) {
-                    star_variables = create_variables();
-                    star_start_pos = parse_state->pos;
-                    while (1) {
-                        star_pos = parse_state->pos;
-                        _ = rule_actionexpr(parse_state);
-                        if (_ == NULL) {
-                            parse_state->pos = star_pos;
-                            break;
-                        }
-                        append_named_action(star_variables, NULL, _);
-                    }
-                    _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), _);
-                    if (_) {
-                        _ = rule_space(parse_state);
-                        if (_) {
-                            data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
-                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-                                parse_state->pos += data->size;
-                                _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-                            } else {
-                                _ = NULL;
-                            }
-                            if (_) {
-                                return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
-                            }
-                        }
-                    }
+                    return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -2894,36 +2781,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-            parse_state->pos += data->size;
-            _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-        } else {
-            _ = NULL;
-        }
-        if (_) {
-            _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
-            if (_) {
-                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-                    parse_state->pos += data->size;
-                    _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-                } else {
-                    _ = NULL;
-                }
-                if (_) {
-                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
-                }
-            }
-        }
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    _ = rule_space(parse_state);
-    if (_) {
-        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
+        data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,11 +2790,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
+                    data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2956,11 +2814,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_515, sizeof(symbol_515)-1);
+                                data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2968,7 +2826,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2982,7 +2840,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
+        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2991,9 +2849,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
             if (_) {
-                return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3003,9 +2861,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
         if (_) {
-            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3014,9 +2872,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), _);
         if (_) {
-            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3025,9 +2883,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), _);
         if (_) {
-            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3036,9 +2894,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
         if (_) {
-            return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3046,7 +2904,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3055,9 +2913,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+                data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3066,9 +2924,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+                        data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3077,9 +2935,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                                data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3087,7 +2945,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3101,7 +2959,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+        data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3121,11 +2979,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+                    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3133,7 +2991,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3152,9 +3010,9 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
     if (_) {
-        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3169,9 +3027,9 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
     if (_) {
-        return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3190,7 +3048,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3202,7 +3060,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3214,7 +3072,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3226,7 +3084,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3238,7 +3096,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3250,7 +3108,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3262,7 +3120,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3274,7 +3132,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3286,7 +3144,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3298,7 +3156,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_611, sizeof(symbol_611)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3321,7 +3179,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3332,9 +3190,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
+                data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3343,11 +3201,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
+                            data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3355,7 +3213,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                                 _ = NULL;
                             }
                             if (_) {
-                                return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -3377,14 +3235,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
     if (_) {
-        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3393,9 +3251,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+            data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3404,9 +3262,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
+                    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3414,7 +3272,7 @@ struct Action* rule_expr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3436,7 +3294,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3456,9 +3314,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+            data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3466,7 +3324,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3486,7 +3344,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3500,9 +3358,9 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
         if (_) {
-            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3518,7 +3376,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3527,9 +3385,9 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
         if (_) {
-            return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3545,7 +3403,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3559,9 +3417,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+            data = buffer_from_cstring(symbol_625, sizeof(symbol_625)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3569,7 +3427,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3585,7 +3443,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3598,7 +3456,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3651,11 +3509,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3670,7 +3528,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3693,7 +3551,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3706,7 +3564,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3714,7 +3572,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3750,9 +3608,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_684, sizeof(symbol_684)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), _);
     if (_) {
-        return create_action(action_50, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3816,7 +3674,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3828,7 +3686,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3840,7 +3698,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3852,7 +3710,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3864,7 +3722,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3876,7 +3734,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3888,7 +3746,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3900,7 +3758,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3912,7 +3770,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3924,7 +3782,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3936,7 +3794,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3948,7 +3806,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3960,7 +3818,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3972,7 +3830,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3984,7 +3842,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3996,7 +3854,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4008,7 +3866,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4020,7 +3878,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4032,7 +3890,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4044,7 +3902,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4056,7 +3914,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4068,7 +3926,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4080,7 +3938,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4092,7 +3950,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4104,7 +3962,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4116,7 +3974,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4137,7 +3995,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4149,7 +4007,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4161,7 +4019,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4173,7 +4031,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4185,7 +4043,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4197,7 +4055,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4209,7 +4067,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4221,7 +4079,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4233,7 +4091,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4245,7 +4103,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4257,7 +4115,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4269,7 +4127,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4281,7 +4139,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4293,7 +4151,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4305,7 +4163,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4317,7 +4175,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4329,7 +4187,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4341,7 +4199,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4353,7 +4211,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_736, sizeof(symbol_736)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4365,7 +4223,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_737, sizeof(symbol_737)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4377,7 +4235,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_738, sizeof(symbol_738)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4389,7 +4247,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_739, sizeof(symbol_739)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4401,7 +4259,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_740, sizeof(symbol_740)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4413,7 +4271,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_741, sizeof(symbol_741)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4425,7 +4283,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_742, sizeof(symbol_742)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4437,7 +4295,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_743, sizeof(symbol_743)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4486,7 +4344,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_744, sizeof(symbol_744)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4498,7 +4356,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_745, sizeof(symbol_745)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index dad3e25..0f8a666 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -352,9 +352,7 @@ matchAnd =
 matchExpr =
     | '!' matchExprPrimitive:x -> {
         >ruleVars {
-            unseen("nlookahead_pos") -> {
-                "unsigned int " "nlookahead_pos" ";\n"
-            }
+            unique("unsigned int nlookahead_pos;\n")
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
@@ -367,9 +365,7 @@ matchExpr =
     }
     | '&' matchExprPrimitive:x -> {
         >ruleVars {
-            unseen("lookahead_pos") -> {
-                "unsigned int " "lookahead_pos" ";\n"
-            }
+            unique("unsigned int lookahead_pos;\n")
         }
         "lookahead_pos = parse_state->pos;\n"
         x
@@ -391,19 +387,11 @@ matchAssign =
 matchExprRepeat =
     | matchExprPrimitive:x '*' -> {
         >ruleVars {
-            unseen("star_variables") -> {
-                "struct Variables* " "star_variables" ";\n"
-            }
+            unique("struct Variables* star_variables;\n")
         }
         >ruleVars {
-            unseen("star_pos") -> {
-                "unsigned int " "star_pos" ";\n"
-            }
-        }
-        >ruleVars {
-            unseen("star_start_pos") -> {
-                "unsigned int " "star_start_pos" ";\n"
-            }
+            unique("unsigned int star_pos;\n")
+            unique("unsigned int star_start_pos;\n")
         }
         "star_variables = create_variables();\n"
         "star_start_pos = parse_state->pos;\n"
@@ -445,14 +433,8 @@ matchExprPrimitive =
     }
     | '0b' sepBit*:xs -> {
         >ruleVars {
-            unseen("bitpattern") -> {
-                "unsigned char " "bitpattern" ";\n"
-            }
-        }
-        >ruleVars {
-            unseen("bitmask") -> {
-                "unsigned char " "bitmask" ";\n"
-            }
+            unique("unsigned char bitpattern;\n")
+            unique("unsigned char bitmask;\n")
         }
         "bitpattern = 0;\n"
         "bitmask = 0;\n"
@@ -474,9 +456,7 @@ matchExprPrimitive =
     }
     | charstring:x -> {
         >ruleVars {
-            unseen("data") -> {
-                "struct Buffer* " "data" ";\n"
-            }
+            unique("struct Buffer* data;\n")
         }
         "data = " x ";\n"
         "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
@@ -499,14 +479,10 @@ action =
             "\n"
         }
         >ruleVars {
-            unseen("variables") -> {
-                "struct Variables* " "variables" ";\n"
-            }
+            unique("struct Variables* variables;\n")
         }
         >orInit {
-            unseen("variables") -> {
-                "variables" " = create_variables();\n"
-            }
+            unique("variables = create_variables();\n")
         }
         "return create_action(action_" W[0] ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
@@ -518,20 +494,13 @@ action =
 actionexpr =
     | space 'unseen(' nameAsSymbol:x ') -> {' actionexpr*:ys space '}' -> {
         >actionVars {
-            unseen("action") -> {
-                "struct Action* " "action" ";\n"
-            }
+            unique("struct Action* action;\n")
         }
         "action = lookup_action(variables, " x ");\n"
         "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n" >
             ys
         < "}\n"
     }
-    | space 'unseen(' string:x ') -> {' actionexpr*:ys space '}' -> {
-        "if (!seen(runtime->current_chunks, " x ")) {\n" >
-            ys
-        < "}\n"
-    }
     | space 'unique(' string:x ')' -> {
         "if (!seen(runtime->current_chunks, " x ")) {\n" >
             "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
@@ -539,12 +508,8 @@ actionexpr =
     }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
         >actionVars {
-            unseen("last_chunks") -> {
-                "struct Chunks* " "last_chunks" ";\n"
-            }
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* last_chunks;\n")
+            unique("struct Chunks* chunks;\n")
         }
         "last_chunks = runtime->current_chunks;\n"
         "chunks = runtime->named_chunks_" x ";\n"
@@ -554,9 +519,7 @@ actionexpr =
     }
     | space '<' chunkName:x -> {
         >actionVars {
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* chunks;\n")
         }
         "chunks = create_chunks();\n"
         "runtime->named_chunks_" x " = chunks;\n"
@@ -580,9 +543,7 @@ actionexpr =
             "\n"
         }
         >actionVars {
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* chunks;\n")
         }
         "chunks = create_chunks();\n"
         "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_" W[1] ", variables, NULL, 0, 0));\n"

commit 533c10a2bfc63bc7853d85cb22dfd2b144c47c14
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:52:32 2025 +0100

    Support unique

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 2daff03..a34d682 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -780,241 +780,251 @@ static char symbol_497[] = "x";
 static char symbol_498[] = ")) {\n";
 static char symbol_499[] = "ys";
 static char symbol_500[] = "}\n";
-static char symbol_501[] = ">";
+static char symbol_501[] = "unique(";
 static char symbol_502[] = "x";
-static char symbol_503[] = "{";
-static char symbol_504[] = "ys";
-static char symbol_505[] = "}";
-static char symbol_506[] = "last_chunks";
-static char symbol_507[] = "struct Chunks* ";
-static char symbol_508[] = "last_chunks";
-static char symbol_509[] = ";\n";
-static char symbol_510[] = "chunks";
-static char symbol_511[] = "struct Chunks* ";
-static char symbol_512[] = "chunks";
-static char symbol_513[] = ";\n";
-static char symbol_514[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_515[] = "chunks = runtime->named_chunks_";
-static char symbol_516[] = "x";
-static char symbol_517[] = ";\n";
-static char symbol_518[] = "runtime->current_chunks = chunks;\n";
-static char symbol_519[] = "ys";
-static char symbol_520[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_521[] = "<";
-static char symbol_522[] = "x";
-static char symbol_523[] = "chunks";
-static char symbol_524[] = "struct Chunks* ";
-static char symbol_525[] = "chunks";
-static char symbol_526[] = ";\n";
-static char symbol_527[] = "chunks = create_chunks();\n";
-static char symbol_528[] = "runtime->named_chunks_";
-static char symbol_529[] = "x";
-static char symbol_530[] = " = chunks;\n";
-static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_503[] = ")";
+static char symbol_504[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_505[] = "x";
+static char symbol_506[] = ")) {\n";
+static char symbol_507[] = "append_data(runtime->current_chunks, ";
+static char symbol_508[] = "x";
+static char symbol_509[] = ", 0, NULL);\n";
+static char symbol_510[] = "}\n";
+static char symbol_511[] = ">";
+static char symbol_512[] = "x";
+static char symbol_513[] = "{";
+static char symbol_514[] = "ys";
+static char symbol_515[] = "}";
+static char symbol_516[] = "last_chunks";
+static char symbol_517[] = "struct Chunks* ";
+static char symbol_518[] = "last_chunks";
+static char symbol_519[] = ";\n";
+static char symbol_520[] = "chunks";
+static char symbol_521[] = "struct Chunks* ";
+static char symbol_522[] = "chunks";
+static char symbol_523[] = ";\n";
+static char symbol_524[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_525[] = "chunks = runtime->named_chunks_";
+static char symbol_526[] = "x";
+static char symbol_527[] = ";\n";
+static char symbol_528[] = "runtime->current_chunks = chunks;\n";
+static char symbol_529[] = "ys";
+static char symbol_530[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_531[] = "<";
 static char symbol_532[] = "x";
-static char symbol_533[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_534[] = "x";
-static char symbol_535[] = "), 0, NULL);\n";
-static char symbol_536[] = "x";
-static char symbol_537[] = "run_action(lookup_action(variables, ";
-static char symbol_538[] = "x";
-static char symbol_539[] = "), runtime);\n";
-static char symbol_540[] = "x";
-static char symbol_541[] = "void placeholder_";
-static char symbol_542[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_543[] = "void placeholder_";
-static char symbol_544[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_545[] = "x";
-static char symbol_546[] = "}\n";
-static char symbol_547[] = "\n";
-static char symbol_548[] = "chunks";
-static char symbol_549[] = "struct Chunks* ";
-static char symbol_550[] = "chunks";
-static char symbol_551[] = ";\n";
-static char symbol_552[] = "chunks = create_chunks();\n";
-static char symbol_553[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_554[] = ", variables, NULL, 0, 0));\n";
-static char symbol_555[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_556[] = "x";
-static char symbol_557[] = "append_data(runtime->current_chunks, ";
-static char symbol_558[] = "x";
-static char symbol_559[] = ", 0, NULL);\n";
-static char symbol_560[] = "#";
-static char symbol_561[] = "x";
-static char symbol_562[] = "(";
-static char symbol_563[] = "y";
-static char symbol_564[] = " ";
-static char symbol_565[] = "z";
-static char symbol_566[] = ")";
-static char symbol_567[] = "runtime->W_";
-static char symbol_568[] = "y";
-static char symbol_569[] = " = ";
-static char symbol_570[] = "x";
-static char symbol_571[] = "(runtime->W_";
-static char symbol_572[] = "y";
-static char symbol_573[] = " ? runtime->W_";
-static char symbol_574[] = "y";
-static char symbol_575[] = " : 0, ";
-static char symbol_576[] = "z";
-static char symbol_577[] = ");\n";
-static char symbol_578[] = ">";
-static char symbol_579[] = "xs";
-static char symbol_580[] = "<";
-static char symbol_581[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_582[] = "xs";
-static char symbol_583[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_584[] = "x";
-static char symbol_585[] = "x";
-static char symbol_586[] = "struct Chunks* named_chunks_";
-static char symbol_587[] = "x";
-static char symbol_588[] = ";\n";
-static char symbol_589[] = "x";
-static char symbol_590[] = "x";
-static char symbol_591[] = "x";
-static char symbol_592[] = "0";
-static char symbol_593[] = "1";
-static char symbol_594[] = "2";
-static char symbol_595[] = "3";
-static char symbol_596[] = "4";
-static char symbol_597[] = "5";
-static char symbol_598[] = "6";
-static char symbol_599[] = "7";
-static char symbol_600[] = "8";
-static char symbol_601[] = "9";
-static char symbol_602[] = "{";
-static char symbol_603[] = "x";
-static char symbol_604[] = "*";
-static char symbol_605[] = "y";
-static char symbol_606[] = "}";
-static char symbol_607[] = "for (int i=0; i < ";
-static char symbol_608[] = "y";
-static char symbol_609[] = "; i++) {\n";
-static char symbol_610[] = "append_data(runtime->current_chunks, ";
-static char symbol_611[] = "x";
-static char symbol_612[] = ", 0, NULL);\n";
-static char symbol_613[] = "}\n";
-static char symbol_614[] = "x";
-static char symbol_615[] = "(runtime->W_";
-static char symbol_616[] = "x";
-static char symbol_617[] = " ? runtime->W_";
-static char symbol_618[] = "x";
-static char symbol_619[] = " : 0)";
-static char symbol_620[] = "(";
+static char symbol_533[] = "chunks";
+static char symbol_534[] = "struct Chunks* ";
+static char symbol_535[] = "chunks";
+static char symbol_536[] = ";\n";
+static char symbol_537[] = "chunks = create_chunks();\n";
+static char symbol_538[] = "runtime->named_chunks_";
+static char symbol_539[] = "x";
+static char symbol_540[] = " = chunks;\n";
+static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_542[] = "x";
+static char symbol_543[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_544[] = "x";
+static char symbol_545[] = "), 0, NULL);\n";
+static char symbol_546[] = "x";
+static char symbol_547[] = "run_action(lookup_action(variables, ";
+static char symbol_548[] = "x";
+static char symbol_549[] = "), runtime);\n";
+static char symbol_550[] = "x";
+static char symbol_551[] = "void placeholder_";
+static char symbol_552[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_553[] = "void placeholder_";
+static char symbol_554[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_555[] = "x";
+static char symbol_556[] = "}\n";
+static char symbol_557[] = "\n";
+static char symbol_558[] = "chunks";
+static char symbol_559[] = "struct Chunks* ";
+static char symbol_560[] = "chunks";
+static char symbol_561[] = ";\n";
+static char symbol_562[] = "chunks = create_chunks();\n";
+static char symbol_563[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_564[] = ", variables, NULL, 0, 0));\n";
+static char symbol_565[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_566[] = "x";
+static char symbol_567[] = "append_data(runtime->current_chunks, ";
+static char symbol_568[] = "x";
+static char symbol_569[] = ", 0, NULL);\n";
+static char symbol_570[] = "#";
+static char symbol_571[] = "x";
+static char symbol_572[] = "(";
+static char symbol_573[] = "y";
+static char symbol_574[] = " ";
+static char symbol_575[] = "z";
+static char symbol_576[] = ")";
+static char symbol_577[] = "runtime->W_";
+static char symbol_578[] = "y";
+static char symbol_579[] = " = ";
+static char symbol_580[] = "x";
+static char symbol_581[] = "(runtime->W_";
+static char symbol_582[] = "y";
+static char symbol_583[] = " ? runtime->W_";
+static char symbol_584[] = "y";
+static char symbol_585[] = " : 0, ";
+static char symbol_586[] = "z";
+static char symbol_587[] = ");\n";
+static char symbol_588[] = ">";
+static char symbol_589[] = "xs";
+static char symbol_590[] = "<";
+static char symbol_591[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_592[] = "xs";
+static char symbol_593[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_594[] = "x";
+static char symbol_595[] = "x";
+static char symbol_596[] = "struct Chunks* named_chunks_";
+static char symbol_597[] = "x";
+static char symbol_598[] = ";\n";
+static char symbol_599[] = "x";
+static char symbol_600[] = "x";
+static char symbol_601[] = "x";
+static char symbol_602[] = "0";
+static char symbol_603[] = "1";
+static char symbol_604[] = "2";
+static char symbol_605[] = "3";
+static char symbol_606[] = "4";
+static char symbol_607[] = "5";
+static char symbol_608[] = "6";
+static char symbol_609[] = "7";
+static char symbol_610[] = "8";
+static char symbol_611[] = "9";
+static char symbol_612[] = "{";
+static char symbol_613[] = "x";
+static char symbol_614[] = "*";
+static char symbol_615[] = "y";
+static char symbol_616[] = "}";
+static char symbol_617[] = "for (int i=0; i < ";
+static char symbol_618[] = "y";
+static char symbol_619[] = "; i++) {\n";
+static char symbol_620[] = "append_data(runtime->current_chunks, ";
 static char symbol_621[] = "x";
-static char symbol_622[] = "-";
-static char symbol_623[] = "y";
-static char symbol_624[] = ")";
-static char symbol_625[] = "((runtime->W_";
+static char symbol_622[] = ", 0, NULL);\n";
+static char symbol_623[] = "}\n";
+static char symbol_624[] = "x";
+static char symbol_625[] = "(runtime->W_";
 static char symbol_626[] = "x";
 static char symbol_627[] = " ? runtime->W_";
 static char symbol_628[] = "x";
-static char symbol_629[] = " : 0)-";
-static char symbol_630[] = "y";
-static char symbol_631[] = ")";
-static char symbol_632[] = "\"";
-static char symbol_633[] = "xs";
-static char symbol_634[] = "\"";
-static char symbol_635[] = "static char symbol_";
-static char symbol_636[] = "[] = \"";
-static char symbol_637[] = "xs";
-static char symbol_638[] = "\";\n";
-static char symbol_639[] = "buffer_from_cstring(symbol_";
-static char symbol_640[] = ", sizeof(symbol_";
-static char symbol_641[] = ")-1)";
-static char symbol_642[] = "x";
+static char symbol_629[] = " : 0)";
+static char symbol_630[] = "(";
+static char symbol_631[] = "x";
+static char symbol_632[] = "-";
+static char symbol_633[] = "y";
+static char symbol_634[] = ")";
+static char symbol_635[] = "((runtime->W_";
+static char symbol_636[] = "x";
+static char symbol_637[] = " ? runtime->W_";
+static char symbol_638[] = "x";
+static char symbol_639[] = " : 0)-";
+static char symbol_640[] = "y";
+static char symbol_641[] = ")";
+static char symbol_642[] = "\"";
 static char symbol_643[] = "xs";
-static char symbol_644[] = "lookup_action(variables, ";
-static char symbol_645[] = "x";
-static char symbol_646[] = ")";
+static char symbol_644[] = "\"";
+static char symbol_645[] = "static char symbol_";
+static char symbol_646[] = "[] = \"";
 static char symbol_647[] = "xs";
-static char symbol_648[] = ".";
-static char symbol_649[] = "x";
-static char symbol_650[] = "->";
-static char symbol_651[] = "x";
-static char symbol_652[] = "W[";
-static char symbol_653[] = "x";
-static char symbol_654[] = "]";
+static char symbol_648[] = "\";\n";
+static char symbol_649[] = "buffer_from_cstring(symbol_";
+static char symbol_650[] = ", sizeof(symbol_";
+static char symbol_651[] = ")-1)";
+static char symbol_652[] = "x";
+static char symbol_653[] = "xs";
+static char symbol_654[] = "lookup_action(variables, ";
 static char symbol_655[] = "x";
-static char symbol_656[] = "unsigned int W_";
-static char symbol_657[] = "x";
-static char symbol_658[] = ";\n";
+static char symbol_656[] = ")";
+static char symbol_657[] = "xs";
+static char symbol_658[] = ".";
 static char symbol_659[] = "x";
-static char symbol_660[] = "\\\"";
-static char symbol_661[] = "\"";
-static char symbol_662[] = "xs";
-static char symbol_663[] = "static char symbol_";
-static char symbol_664[] = "[] = \"";
-static char symbol_665[] = "xs";
-static char symbol_666[] = "\";\n";
-static char symbol_667[] = "buffer_from_cstring(symbol_";
-static char symbol_668[] = ", sizeof(symbol_";
-static char symbol_669[] = ")-1)";
-static char symbol_670[] = "\'";
-static char symbol_671[] = "\\\'";
-static char symbol_672[] = "\"";
-static char symbol_673[] = "\\\"";
-static char symbol_674[] = "x";
-static char symbol_675[] = "static char symbol_";
-static char symbol_676[] = "[] = \"";
-static char symbol_677[] = "x";
-static char symbol_678[] = "\";\n";
-static char symbol_679[] = "buffer_from_cstring(symbol_";
-static char symbol_680[] = ", sizeof(symbol_";
-static char symbol_681[] = ")-1)";
-static char symbol_682[] = "a";
-static char symbol_683[] = "b";
-static char symbol_684[] = "c";
-static char symbol_685[] = "d";
-static char symbol_686[] = "e";
-static char symbol_687[] = "f";
-static char symbol_688[] = "g";
-static char symbol_689[] = "h";
-static char symbol_690[] = "i";
-static char symbol_691[] = "j";
-static char symbol_692[] = "k";
-static char symbol_693[] = "l";
-static char symbol_694[] = "m";
-static char symbol_695[] = "n";
-static char symbol_696[] = "o";
-static char symbol_697[] = "p";
-static char symbol_698[] = "q";
-static char symbol_699[] = "r";
-static char symbol_700[] = "s";
-static char symbol_701[] = "t";
-static char symbol_702[] = "u";
-static char symbol_703[] = "v";
-static char symbol_704[] = "w";
-static char symbol_705[] = "x";
-static char symbol_706[] = "y";
-static char symbol_707[] = "z";
-static char symbol_708[] = "A";
-static char symbol_709[] = "B";
-static char symbol_710[] = "C";
-static char symbol_711[] = "D";
-static char symbol_712[] = "E";
-static char symbol_713[] = "F";
-static char symbol_714[] = "G";
-static char symbol_715[] = "H";
-static char symbol_716[] = "I";
-static char symbol_717[] = "J";
-static char symbol_718[] = "K";
-static char symbol_719[] = "L";
-static char symbol_720[] = "M";
-static char symbol_721[] = "N";
-static char symbol_722[] = "O";
-static char symbol_723[] = "P";
-static char symbol_724[] = "Q";
-static char symbol_725[] = "R";
-static char symbol_726[] = "S";
-static char symbol_727[] = "T";
-static char symbol_728[] = "U";
-static char symbol_729[] = "V";
-static char symbol_730[] = "W";
-static char symbol_731[] = "X";
-static char symbol_732[] = "Y";
-static char symbol_733[] = "Z";
-static char symbol_734[] = " ";
-static char symbol_735[] = "\n";
+static char symbol_660[] = "->";
+static char symbol_661[] = "x";
+static char symbol_662[] = "W[";
+static char symbol_663[] = "x";
+static char symbol_664[] = "]";
+static char symbol_665[] = "x";
+static char symbol_666[] = "unsigned int W_";
+static char symbol_667[] = "x";
+static char symbol_668[] = ";\n";
+static char symbol_669[] = "x";
+static char symbol_670[] = "\\\"";
+static char symbol_671[] = "\"";
+static char symbol_672[] = "xs";
+static char symbol_673[] = "static char symbol_";
+static char symbol_674[] = "[] = \"";
+static char symbol_675[] = "xs";
+static char symbol_676[] = "\";\n";
+static char symbol_677[] = "buffer_from_cstring(symbol_";
+static char symbol_678[] = ", sizeof(symbol_";
+static char symbol_679[] = ")-1)";
+static char symbol_680[] = "\'";
+static char symbol_681[] = "\\\'";
+static char symbol_682[] = "\"";
+static char symbol_683[] = "\\\"";
+static char symbol_684[] = "x";
+static char symbol_685[] = "static char symbol_";
+static char symbol_686[] = "[] = \"";
+static char symbol_687[] = "x";
+static char symbol_688[] = "\";\n";
+static char symbol_689[] = "buffer_from_cstring(symbol_";
+static char symbol_690[] = ", sizeof(symbol_";
+static char symbol_691[] = ")-1)";
+static char symbol_692[] = "a";
+static char symbol_693[] = "b";
+static char symbol_694[] = "c";
+static char symbol_695[] = "d";
+static char symbol_696[] = "e";
+static char symbol_697[] = "f";
+static char symbol_698[] = "g";
+static char symbol_699[] = "h";
+static char symbol_700[] = "i";
+static char symbol_701[] = "j";
+static char symbol_702[] = "k";
+static char symbol_703[] = "l";
+static char symbol_704[] = "m";
+static char symbol_705[] = "n";
+static char symbol_706[] = "o";
+static char symbol_707[] = "p";
+static char symbol_708[] = "q";
+static char symbol_709[] = "r";
+static char symbol_710[] = "s";
+static char symbol_711[] = "t";
+static char symbol_712[] = "u";
+static char symbol_713[] = "v";
+static char symbol_714[] = "w";
+static char symbol_715[] = "x";
+static char symbol_716[] = "y";
+static char symbol_717[] = "z";
+static char symbol_718[] = "A";
+static char symbol_719[] = "B";
+static char symbol_720[] = "C";
+static char symbol_721[] = "D";
+static char symbol_722[] = "E";
+static char symbol_723[] = "F";
+static char symbol_724[] = "G";
+static char symbol_725[] = "H";
+static char symbol_726[] = "I";
+static char symbol_727[] = "J";
+static char symbol_728[] = "K";
+static char symbol_729[] = "L";
+static char symbol_730[] = "M";
+static char symbol_731[] = "N";
+static char symbol_732[] = "O";
+static char symbol_733[] = "P";
+static char symbol_734[] = "Q";
+static char symbol_735[] = "R";
+static char symbol_736[] = "S";
+static char symbol_737[] = "T";
+static char symbol_738[] = "U";
+static char symbol_739[] = "V";
+static char symbol_740[] = "W";
+static char symbol_741[] = "X";
+static char symbol_742[] = "Y";
+static char symbol_743[] = "Z";
+static char symbol_744[] = " ";
+static char symbol_745[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1846,29 +1856,15 @@ void action_29(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* last_chunks;
-    struct Chunks* chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_actionVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
-    }
-    runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1877,135 +1873,153 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+}
+
+void action_35(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
-}
-
-void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
+}
+
+void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-}
-
-void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
@@ -2014,101 +2028,109 @@ void action_42(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+}
+
+void action_44(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
-}
-
-void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1)), runtime);
+}
+
+void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1)), runtime);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_48(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
+void action_49(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_683, sizeof(symbol_683)-1), 0, NULL);
 }
 
-void action_49(struct Runtime* runtime, struct Variables* variables) {
+void action_50(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_685, sizeof(symbol_685)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_686, sizeof(symbol_686)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_687, sizeof(symbol_687)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_688, sizeof(symbol_688)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_689, sizeof(symbol_689)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_680, sizeof(symbol_680)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_690, sizeof(symbol_690)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_681, sizeof(symbol_681)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_691, sizeof(symbol_691)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2880,12 +2902,41 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
             _ = NULL;
         }
         if (_) {
-            _ = rule_chunkName(parse_state);
+            _ = rule_string(parse_state);
             append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
+            if (_) {
+                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    parse_state->pos += data->size;
+                    _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                } else {
+                    _ = NULL;
+                }
+                if (_) {
+                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                }
+            }
+        }
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    _ = rule_space(parse_state);
+    if (_) {
+        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            parse_state->pos += data->size;
+            _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        } else {
+            _ = NULL;
+        }
+        if (_) {
+            _ = rule_chunkName(parse_state);
+            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+                    data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2905,11 +2956,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_505, sizeof(symbol_505)-1);
+                                data = buffer_from_cstring(symbol_515, sizeof(symbol_515)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2917,7 +2968,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2931,7 +2982,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
+        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2940,9 +2991,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
             if (_) {
-                return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -2952,9 +3003,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
         if (_) {
-            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2963,9 +3014,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
         if (_) {
-            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2974,9 +3025,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
         if (_) {
-            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2985,9 +3036,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
         if (_) {
-            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2995,7 +3046,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
+        data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3004,9 +3055,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+                data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3015,9 +3066,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+                        data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3026,9 +3077,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+                                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3036,7 +3087,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3050,7 +3101,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+        data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3070,11 +3121,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+                    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3082,7 +3133,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3101,9 +3152,9 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
     if (_) {
-        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3118,9 +3169,9 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
     if (_) {
-        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3139,7 +3190,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3151,7 +3202,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3163,7 +3214,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3175,7 +3226,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3187,7 +3238,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
+    data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3199,7 +3250,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3211,7 +3262,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
+    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3223,7 +3274,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3235,7 +3286,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
+    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3247,7 +3298,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_601, sizeof(symbol_601)-1);
+    data = buffer_from_cstring(symbol_611, sizeof(symbol_611)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3270,7 +3321,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3281,9 +3332,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+                data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3292,11 +3343,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
+                            data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3304,7 +3355,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                                 _ = NULL;
                             }
                             if (_) {
-                                return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -3326,14 +3377,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
     if (_) {
-        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3342,9 +3393,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3353,9 +3404,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+                    data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3363,7 +3414,7 @@ struct Action* rule_expr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3385,7 +3436,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3405,9 +3456,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
+            data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3415,7 +3466,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3435,7 +3486,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3449,9 +3500,9 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
         if (_) {
-            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3467,7 +3518,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3476,9 +3527,9 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), _);
         if (_) {
-            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3494,7 +3545,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3508,9 +3559,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+            data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3518,7 +3569,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3534,7 +3585,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3547,7 +3598,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3600,11 +3651,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3619,7 +3670,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3642,7 +3693,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3655,7 +3706,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3663,7 +3714,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3699,9 +3750,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_684, sizeof(symbol_684)-1), _);
     if (_) {
-        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_50, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3765,7 +3816,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3777,7 +3828,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3789,7 +3840,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3801,7 +3852,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3813,7 +3864,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3825,7 +3876,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3837,7 +3888,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3849,7 +3900,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3861,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3873,7 +3924,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3885,7 +3936,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3897,7 +3948,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3909,7 +3960,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3921,7 +3972,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3933,7 +3984,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3945,7 +3996,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3957,7 +4008,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3969,7 +4020,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3981,7 +4032,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3993,7 +4044,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4005,7 +4056,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4017,7 +4068,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4029,7 +4080,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4041,7 +4092,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4053,7 +4104,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4065,7 +4116,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4086,7 +4137,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4098,7 +4149,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4110,7 +4161,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4122,7 +4173,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4134,7 +4185,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4146,7 +4197,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4158,7 +4209,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
+    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4170,7 +4221,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
+    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4182,7 +4233,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
+    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4194,7 +4245,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
+    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4206,7 +4257,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
+    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4218,7 +4269,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
+    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4230,7 +4281,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
+    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4242,7 +4293,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
+    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4254,7 +4305,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
+    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4266,7 +4317,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
+    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4278,7 +4329,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
+    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4290,7 +4341,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
+    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4302,7 +4353,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
+    data = buffer_from_cstring(symbol_736, sizeof(symbol_736)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4314,7 +4365,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
+    data = buffer_from_cstring(symbol_737, sizeof(symbol_737)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4326,7 +4377,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
+    data = buffer_from_cstring(symbol_738, sizeof(symbol_738)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4338,7 +4389,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    data = buffer_from_cstring(symbol_739, sizeof(symbol_739)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4350,7 +4401,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    data = buffer_from_cstring(symbol_740, sizeof(symbol_740)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4362,7 +4413,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
+    data = buffer_from_cstring(symbol_741, sizeof(symbol_741)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4374,7 +4425,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    data = buffer_from_cstring(symbol_742, sizeof(symbol_742)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4386,7 +4437,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    data = buffer_from_cstring(symbol_743, sizeof(symbol_743)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4435,7 +4486,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
+    data = buffer_from_cstring(symbol_744, sizeof(symbol_744)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4447,7 +4498,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
+    data = buffer_from_cstring(symbol_745, sizeof(symbol_745)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 38e5c21..dad3e25 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -532,6 +532,11 @@ actionexpr =
             ys
         < "}\n"
     }
+    | space 'unique(' string:x ')' -> {
+        "if (!seen(runtime->current_chunks, " x ")) {\n" >
+            "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
+        < "}\n"
+    }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
         >actionVars {
             unseen("last_chunks") -> {