Fix for #39 - semantic values

Before merging this in I'd like the `Token` value to contain the line number as well as start and end columns. We need tests for that too.