tighten up identifier parsing and test. still missing a couple tricky corner cases though
add check for float/bigdecimal ranges
check %-args in shorthand functions