Rename variables to improve readability.
Do not use line buffering.

Do not use line buffering but instead read a character at a time, so that
newlines are allowed in an expression.
Use is_list() where appropriate.
Add line comment.