gmslAPI  0.1
gmslAPI: An API for Developing Upgrade Solutions using Great Migrations Technology
gmslLibrary.Services.Analyser Class Reference

The Analyser class contains utilities used to allow the introduction of external library component transformations into the analyser phase of a translation. More...

Public Member Functions

delegate int Transform (int subRoot, int target, int iRefer, int[] qeStack)
 The Transform delegate encapsulates the logic needed to transform a set of library specific components based upon references to them in compiled code. More...
 

Static Public Member Functions

static void StartAnalyser (string[] components, int[] compAddr, int migNumber)
 The StartAnalyser method is called after the compiler has completed and before the anayser is called. It places markers in the library component information vectors whose code references are to be transformed. This method should be called for each library being migrated. More...
 
static void CodeScan (int migNumber, Transform migrate)
 

Detailed Description

The Analyser class contains utilities used to allow the introduction of external library component transformations into the analyser phase of a translation.

Member Function Documentation

◆ StartAnalyser()

static void gmslLibrary.Services.Analyser.StartAnalyser ( string []  components,
int []  compAddr,
int  migNumber 
)
static

The StartAnalyser method is called after the compiler has completed and before the anayser is called. It places markers in the library component information vectors whose code references are to be transformed. This method should be called for each library being migrated.

Parameters
componentsThe components parameter is a string vector containing the fully qualified identifiers of the components to be migrated. A maximum of 255 components may be included. If any of the identified components cannot be located a warning message is logged.
compAddrThe compAddr parameter is an integer vector that returns the storage offsets of the listed components.
migNumberThe migNumber parameter is a unique user assigned value that identifies the particular library being migrated. The actual marker for the components is the sequence number of the component in the components vector plus the migration number times 256. It is stored in the migTransform property of the component.

◆ Transform()

delegate int gmslLibrary.Services.Analyser.Transform ( int  subRoot,
int  target,
int  iRefer,
int []  qeStack 
)

The Transform delegate encapsulates the logic needed to transform a set of library specific components based upon references to them in compiled code.

Parameters
subRootThe subRoot parameter is the root offset of the component whose compiled code is referencing one of the components being transformed.
targetThe target parameter is the root offset of the external library component whose references are the target of a transformation.
iReferThe iRefer parameter is the operation code offset of the actual reference to the targeted component.
qeStackThe qeStack parameter is a vector used internally to keep track of the starts of the code for the nested quantity expressions surrounding the reference to the target component. Its initial entry specifies the nesting level and its fillowing members contain the starting offset at each level.
Returns
The delegate instances are assumed to return a nonzero value if they changed the underlying compiled code, and a zero value if they did not.

The documentation for this class was generated from the following file: