Added code to support poptag and pushtag directives.
ParseState maintains a HashMap ("stack") of tags. When a pushtag is encountered, the tag is added to the stack (+1 count). When a poptag is encountered the tag is -1 counted, and removed if count become zero. When a transaction is encountered, all the tags currently stored in the "stack" are added to the transactions tag set. An error is generated if a poptag is encountered for a tag that is not in the "stack", and an error is generated if there are still any tags left in the "stack" when the end of input is reached.
Added code to support poptag and pushtag directives. ParseState maintains a HashMap ("stack") of tags. When a pushtag is encountered, the tag is added to the stack (+1 count). When a poptag is encountered the tag is -1 counted, and removed if count become zero. When a transaction is encountered, all the tags currently stored in the "stack" are added to the transactions tag set. An error is generated if a poptag is encountered for a tag that is not in the "stack", and an error is generated if there are still any tags left in the "stack" when the end of input is reached.