DSL EXPRESSION:
  $sum = float(0);
  for(k,v in $*) {
    if (k =~ "^[xy]$") {
      $sum += float($[k])
    }
  }


AST:
* statement block
    * assignment "="
        * direct field value "sum"
        * function callsite "float"
            * int literal "0"
    * double-variable for-loop "for"
        * local variable "k"
        * local variable "v"
        * full record "$*"
        * statement block
            * if-chain
                * if-item "if"
                    * operator "=~"
                        * local variable "k"
                        * string literal "^[xy]$"
                    * statement block
                        * assignment "="
                            * direct field value "sum"
                            * operator "+"
                                * direct field value "sum"
                                * function callsite "float"
                                    * indirect field value "$[]"
                                        * local variable "k"

a=pan,b=pan,i=1,x=0.34679014,y=0.72680286,sum=1.07359301
a=eks,b=pan,i=2,x=0.75867996,y=0.52215111,sum=1.28083107
a=wye,b=wye,i=3,x=0.20460331,y=0.33831853,sum=0.54292183
a=eks,b=wye,i=4,x=0.38139939,y=0.13418874,sum=0.51558814
a=wye,b=pan,i=5,x=0.57328892,y=0.86362447,sum=1.43691339
a=zee,b=pan,i=6,x=0.52712616,y=0.49322129,sum=1.02034745
a=eks,b=zee,i=7,x=0.61178406,y=0.18788492,sum=0.79966898
a=zee,b=wye,i=8,x=0.59855401,y=0.97618139,sum=1.57473539
a=hat,b=wye,i=9,x=0.03144188,y=0.74955076,sum=0.78099264
a=pan,b=wye,i=10,x=0.50262601,y=0.95261836,sum=1.45524437
