Extend generic printer API with auxiliary information #455
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR allows passing in auxiliary information on creation of a
print
object. This is useful if a generic-printer-based backend requires some information to be collected before doing a certain print pass on the AST, e.g. in the ProVerif backend I want to first scan the AST for function definitions so that I can recognize them during printing at the call-site.I can imagine other uses as well, e.g. we might not need to insert a full preamble of pre-defined models every time, but only those that are really necessary to model the contents of the AST. Being able to go through the AST once, collecting this information and making it available on later print passes that construct the preamble is a simple solution here as well.