Evaluate.machine_state: call it ms_orig_line_number, not ms_line_number. Also, it's one-based.
Evaluate.word_list_of_step_result: put in line numbers to the result
Lexer: just skip % for now..