Move the creation of the results objects into the wrapper functions. This makes it easier to reason about what the parser and lexer classes are responsible for - you create a new object for each tokenization or parsing activity and they hold the state of the activity. PR Close #36741