unsigned_int -> [0-9]:+ {% function(d) { return parseInt(d[0].join("")); } %} int -> ("-"|"+"):? [0-9]:+ {% function(d) { if (d[0]) { return parseInt(d[0][0]+d[1].join("")); } else { return parseInt(d[1].join("")); } } %} unsigned_decimal -> [0-9]:+ ("." [0-9]:+):? {% function(d) { return parseFloat( d[0].join("") + (d[1] ? "."+d[1][1].join("") : "") ); } %} decimal -> "-":? [0-9]:+ ("." [0-9]:+):? {% function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? "."+d[2][1].join("") : "") ); } %} percentage -> decimal "%" {% function(d) { return d[0]/100; } %} jsonfloat -> "-":? [0-9]:+ ("." [0-9]:+):? ([eE] [+-]:? [0-9]:+):? {% function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? "."+d[2][1].join("") : "") + (d[3] ? "e" + (d[3][1] || "+") + d[3][2].join("") : "") ); } %}