Separate out addExplicitCommas from common lexer.
Make condition terms work with non-consecutive ids.
Fix bug where same memory object is not remembered.
lex uses slices instead of channels.