Try OpenEdge Now
skip to main content
Online Help
Introducing the ABL GUI Designer : Concepts : Code analysis in GUI Designer

Code analysis in GUI Designer

The &ANALYZE directives are commands understood by the OpenEdge Analyzer, a component of the OpenEdge Compiler. The Analyzer's main purpose is to make information about static objects available to the AppBuilder. The activities of the Analyzer are completely transparent, except for the &ANALYZE directives that appear in your code. You can use the GUI Designer effectively without knowing anything about the Analyzer, but if you want to know more about the directives appearing in your code, continue reading.
There are two main &ANALYZE directives: &ANALYZE-SUSPEND and &ANALYZE-RESUME. The &ANALYZE-SUSPEND directive causes the Analyzer to suspend analysis of ABL code. The &ANALYZER-RESUME directive causes the Analyzer to resume analysis.
The Analyzer performs its work when the GUI Designer opens a .w file. When the GUI Designer opens a .w file, the Analyzer builds a temporary file that contains:
*A summary table of information about the static objects created with the GUI Designer. User-supplied object definitions, whether static or dynamic, are not analyzed.
*Exact copies of any user-supplied code (triggers, variable definitions, etc.).
*Exact copies of any AppBuilder -generated code that is not analyzed (such as CREATE WINDOW statements).
The GUI Designer then reads contents of the temporary file into memory, storing the information in temporary tables.
The summary table is the Analyzer's most important output and is the Analyzer's main purpose. This table contains all of the relevant information about the .w file's static objects, including their dimensions. The format of the summary table is one that the GUI Designer can easily parse. Using information in this table, the GUI Designer creates design-time representations of the static objects. These representations are what you physically manipulate within the design window.
The Analyzer cannot provide summary information about dynamic objects. Dynamic objects are created at run time, not defined at compile time. The GUI Designer must examine all unanalyzed code, extracting information it requires to create design windows and dialog boxes.