LibASL.Asl_visitorSourceASL visitor class
For each datatype in the ASL AST, a visitor defines what actions it wants to perform on values of that type.
The following set of recursive functions are the ASL specific part of the visitor class. For each data constructor of each datatype, they invoke visitors on each field of the data constructor and then reconstruct the corresponding data constructor.
These functions implement the space-saving optimisation of only reconstructing the constructor if the sub-values are different.
val visit_args :
aslVisitor ->
(Asl_ast.ty * Asl_ast.ident) list ->
(Asl_ast.ty * Asl_ast.ident) listThe nopAslVisitor class defines a visitor that recursively visits the entire tree making no change. In practice, all uses of the visitor framework are based on defining a subclass of this type.