DSL EXPRESSION:
  if (NR == 10) {
    $x = 11;
    $y = 12
  } elif (NR == 13) {
    $x = 14;
    $y = 15
  } elif (NR == 16) {
    $x = 17;
    $y = 18
  }


AST:
"block" [tt:block] [nt:StatementBlock]
    "if_chain" [tt:if_chain] [nt:IfChain]
        "if" [tt:kw_if] [nt:IfItem]
            "==" [tt:op_eqeq] [nt:Operator]
                "NR" [tt:ctx_NR] [nt:ctx_NR]
                "10" [tt:int_literal] [nt:int_literal]
            "block" [tt:block] [nt:StatementBlockInBraces]
                "block" [tt:block] [nt:StatementBlock]
                    "=" [tt:equals] [nt:Assignment]
                        "$x" [tt:field_name] [nt:DirectFieldValue]
                        "11" [tt:int_literal] [nt:int_literal]
                    "=" [tt:equals] [nt:Assignment]
                        "$y" [tt:field_name] [nt:DirectFieldValue]
                        "12" [tt:int_literal] [nt:int_literal]
        "elif" [tt:kw_elif] [nt:IfItem]
            "==" [tt:op_eqeq] [nt:Operator]
                "NR" [tt:ctx_NR] [nt:ctx_NR]
                "13" [tt:int_literal] [nt:int_literal]
            "block" [tt:block] [nt:StatementBlockInBraces]
                "block" [tt:block] [nt:StatementBlock]
                    "=" [tt:equals] [nt:Assignment]
                        "$x" [tt:field_name] [nt:DirectFieldValue]
                        "14" [tt:int_literal] [nt:int_literal]
                    "=" [tt:equals] [nt:Assignment]
                        "$y" [tt:field_name] [nt:DirectFieldValue]
                        "15" [tt:int_literal] [nt:int_literal]
        "elif" [tt:kw_elif] [nt:IfItem]
            "==" [tt:op_eqeq] [nt:Operator]
                "NR" [tt:ctx_NR] [nt:ctx_NR]
                "16" [tt:int_literal] [nt:int_literal]
            "block" [tt:block] [nt:StatementBlockInBraces]
                "block" [tt:block] [nt:StatementBlock]
                    "=" [tt:equals] [nt:Assignment]
                        "$x" [tt:field_name] [nt:DirectFieldValue]
                        "17" [tt:int_literal] [nt:int_literal]
                    "=" [tt:equals] [nt:Assignment]
                        "$y" [tt:field_name] [nt:DirectFieldValue]
                        "18" [tt:int_literal] [nt:int_literal]

i=1,x=101,y=201
i=2,x=102,y=202
i=3,x=103,y=203
i=4,x=104,y=204
i=5,x=105,y=205
i=6,x=106,y=206
i=7,x=107,y=207
i=8,x=108,y=208
i=9,x=109,y=209
i=10,x=11,y=12
i=11,x=111,y=211
i=12,x=112,y=212
i=13,x=14,y=15
i=14,x=114,y=214
i=15,x=115,y=215
i=16,x=17,y=18
i=17,x=117,y=217
i=18,x=118,y=218
i=19,x=119,y=219
i=20,x=120,y=220
i=21,x=121,y=221
i=22,x=122,y=222
i=23,x=123,y=223
i=24,x=124,y=224
i=25,x=125,y=225
i=26,x=126,y=226
i=27,x=127,y=227
i=28,x=128,y=228
i=29,x=129,y=229
i=30,x=130,y=230
i=31,x=131,y=231
i=32,x=132,y=232
i=33,x=133,y=233
i=34,x=134,y=234
i=35,x=135,y=235
i=36,x=136,y=236
i=37,x=137,y=237
i=38,x=138,y=238
i=39,x=139,y=239
i=40,x=140,y=240
