domain)and a method for class identification (
initializemethod, we initialize
referencedStateslist. All other members described in this section are all protected.
CGCTarget* targ();Returns the target pointer, type cast to CGCTarget.
StringList expandRef(const char* name);The above methods resolve macro $ref. The
StringList expandRef(const char* name, const char* offset);
nameargument is a state name or a porthole name. If it is a state name, we put the state in the
referencedStateslist. In the second method, the second argument is the offset of the first argument (state or porthole). It can be a numeral, an IntState name, or a string. If it is an IntState, the current value of the state is taken.
There are various ways to referring to a porthole. If the buffer size is 1, we use the buffer name or the pointer version depending on the type, EMBEDDED or OWNER. If the buffer size is larger than 1, we use direct addressing if static buffering is used. If static buffering can not be used, we use indirect addressing. The following method generates indirect addressing:
virtual StringList getActualRef(CGCPortHole* p, const char* ix);This method generates an indirect addressing for the argument porthole
ix.If we may not use linear addressing, we generate modulo addressing, in which the index is modulo the buffer size.
virtual int amISpreadCollect();Returns TRUE or FALSE, based on whether this star is a Spread or a Collect star or not. We need to take special care for Spread and Collect stars.