code: protected void preProcessAst(List<INode> ast) throws AnalysisException
  	{
  		generator.computeDefTable(getUserModules(ast));
  		removeUnreachableStms(ast);
  		handleOldNames(ast);
  
  		for (INode node : ast)
  		{
  			if (getInfo().getAssistantManager().getDeclAssistant().isLibrary(node))
  			{
  				simplifyLibrary(node);
  			} else
  			{
  				preProcessVdmUserClass(node);
  			}
  		}
  	}
docs: This method pre-processes the VDM AST by<br>
  (1) computing a definition table that can be used during the analysis of the IR to determine if a VDM identifier
  state designator is local or not.<br>
  (2) Removing unreachable statements from the VDM AST <br>
  (3) Normalizing old names by replacing tilde signs '~' with underscores '_' <br>
  (4) Simplifying the standard libraries by cutting nodes that are not likely to be meaningful during the analysis
  of the VDM AST. Library classes are processed using {@link #simplifyLibrary(INode)}, whereas non-library modules
  or classes are processed using {@link #preProcessVdmUserClass(INode)}.
  
  @param ast
  The VDM AST subject to pre-processing.
  @throws AnalysisException
  In case something goes wrong during the VDM AST analysis.