minor refactor
fix line collapsing and comment stripping
add macros
add enums
remove unnecessary captures
add line numbers
optimize line number lookup