basic scanner & token functionality with value, type, and line number