fix issue #19 - fix how line positions/offsets are calculated
add ParseExpression and revamp tests to use it
update compiler tests