Context for user written parsers while parsing. e.g. for nested #if state The context value is reset to its original value if the parser fails. Set context to a new immutable value to update (don't internally mutate context)
typical place for user written parsers to accumulate results, e.g. syntax tree
stable and unstable state used during parsing