Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

 

Analyse Statement Summary

Analyseis a nonterminal, command statement that occurs only in command scripts. It initiates the code analysis phase of the translation process. This phase takes as input the intermediate code produced by the compiler and outputs an intermediate code that can be authored in the target language. Once completed each active code unit has two intermediate code representations stored in the virtual binary information file.

 

The attributes of the Analysestatement are as follows:

 

AttributeDescription
DialectThis deprecated attribute specifies one of the three target language identifiers csh, vbn, or usr. It changes the system wide target language as selected and thus effects all further processing.
ProjectThis attribute specifies the name of a previously compiled VBP project or ASP page. It restricts the analyzer to effect the specified component only. The use of this attribute should be limited to complex migrations where the order in which code units are processed must be controlled.

Though technically a nonterminal statement, the Analysestatement has no substatements at this time.

 

The script errors associated with the Analysestatement are as follows:

 

ErrorDescription
1001Encountered illegal ANALYSE directive %1d
1002The Language dialect [%1d] is not supported.
1003The Project [%1d] does not exist in storage area.
1004The Component [%1d] is not a project.
1005The Storage area does not contain any projects.

 

The analysis phase proceeds in the following steps. First, references to symbols with variant values are sought in the code to determine if their usage makes it possible to infer a stronger type for them. Most type inferences occur during this first step. Second, the code is reviewed and changes are made to make it compatible with the target .NET language. The actual changes made are different for C# versus VB.NET. Third, the argument passing logic is analysed. Argument types are cast to the appropriate types required by the parameters that they are passed to. Arguments that are passed ByRef are examined and where necessary temporaries are created to contain computed, constant, or NULL values that cannot be passed ByRef. Fourth, a final pass is made through the code units to make any final adjustments needed.
Table of Contents

  • No labels