2. Language Elements : OpenROAD Names : Name Resolution
 
Share this page                  
Name Resolution
OpenROAD application components share the same name space. This means that OpenROAD identifies the component strictly by name and does not consider the context in which the name is used. These components are:
Variables
Named constants
Frames
Procedures
Classes
When OpenROAD encounters a name, it uses the first component it finds that matches the name. The context in which the name is specified has no effect on the name resolution. For example, when you use a procedure name in a callproc statement, OpenROAD searches for any component with that name, not just a procedure.
OpenROAD searches for names in the following order:
1. Current event block, local procedure, or user class method
2. Current field script
3. Enclosing field scripts (which are field scripts for fields containing the current field script's field)
4. Current frame, global procedure, or user class script
5. Current application
6. Included applications (in the same order they were included)
7. Core library
The following flowchart illustrates this name search order and lists the individual components at each stage of the name search:
If the component belongs to a frame, procedure, method, or user class script, you cannot change the search order. However, if the component belongs to an application, you can direct OpenROAD to search only within a specific application by qualifying the component name with the application's name. The syntax is:
application_name!component_name
When you include the application name, OpenROAD searches the specified application for the component rather than using the usual search order. You can specify the current application, any included application, or the core library.
When you specify a procedure or frame name at runtime, the search order differs from the first four steps of the name order search.