Top   Types   Functions   Classes   Index 
CrlAnyUserData >>

struct Crl / Crl

Namespace Class


Description

The CRL name space: this contains many typedefs to access the classes without the prefix 'Crl' or 'crl_'. Further, it has some static functions not associated with any particular type, but with the library as such.

For importing the namespace into you own classes, simply inherit from this class. This class does not have member non-static member functions nor has the structure any slots.

Kinship

Immediate sub classes: CrlAnyUserData, Object, CrlAnyValue, EdgeArray, Parser, ContextNFA, ContextDFA

Type Aliases

typedefCrlAddress Address
typedefCrlAddressUserPrintFile AddressUserPrintFile
typedefCrlAddressUserPrintVChar AddressUserPrintVChar
typedefCrlAnyUserData AnyUserData
typedefCrlAnyValue AnyValue
typedefCrlAttribute Attribute
typedefCrlBlock Block
typedefCrlBlockType BlockType
typedefCrlBool Bool
typedefCrlBoolUserPrintFile BoolUserPrintFile
typedefCrlBoolUserPrintVChar BoolUserPrintVChar
typedefCrlByte Byte
typedefCrlBytes Bytes
typedefCrlClassID ClassID
typedefCrlCompression Compression
typedefCrlContext Context
typedefCrlContextDFA ContextDFA
typedefCrlContextDFAState ContextDFAState
typedefCrlContextDefault ContextDefault
typedefCrlContextMatch ContextMatch
typedefCrlContextMinimum ContextMinimum
typedefCrlContextNFA ContextNFA
typedefCrlContextRepeat ContextRepeat
typedefCrlContextSequence ContextSequence
typedefCrlContextStep ContextStep
typedefCrlContextWrap ContextWrap
typedefCrlAnyValue CrlMakeValue
typedefCrlData Data
typedefCrlDeclarations Declarations
typedefCrlDelayed Delayed
typedefCrlDeletable Deletable
typedefCrlEdge Edge
typedefCrlEdgeArray EdgeArray
typedefCrlEdgeType EdgeType
typedefCrlEnumUserPrintFile EnumUserPrintFile
typedefCrlEnumUserPrintVChar EnumUserPrintVChar
typedefCrlFloat Float
typedefCrlFloatUserPrintFile FloatUserPrintFile
typedefCrlFloatUserPrintVChar FloatUserPrintVChar
typedefCrlForbidden Forbidden
typedefCrlFunctorType FunctorType
typedefCrlGMTUserPrintFile GMTUserPrintFile
typedefCrlGMTUserPrintVChar GMTUserPrintVChar
typedefCrlGraph Graph
typedefCrlHandleForeignItem HandleForeignItem
typedefCrlIdentifierUserPrintFile IdentifierUserPrintFile
typedefCrlIdentifierUserPrintVChar IdentifierUserPrintVChar
typedefCrlIndex Index
typedefCrlInfo Info
typedefCrlInstruction Instruction
typedefCrlItem Item
typedefCrlItemDeclaration ItemDeclaration
typedefCrlMapper Mapper
typedefCrlMeta Meta
typedefCrlNoHeap NoHeap
typedefCrlNoZero NoZero
typedefCrlObject Object
typedefCrlOperation Operation
typedefCrlPAGContextNode PAGContextNode
typedefCrlPAGContextTree PAGContextTree
typedefCrlPAGDFIStore PAGDFIStore
typedefCrlPAGHelp PAGHelp
typedefCrlParser Parser
typedefCrlRoutine Routine
typedefCrlRoutineItem RoutineItem
typedefCrlSigned Signed
typedefCrlSignedUserPrintFile SignedUserPrintFile
typedefCrlSignedUserPrintVChar SignedUserPrintVChar
typedefCrlString2Symbol String2Symbol
typedefCrlStringUserPrintFile StringUserPrintFile
typedefCrlStringUserPrintVChar StringUserPrintVChar
typedefCrlStructure Structure
typedefCrlSymbol Symbol
typedefCrlSymbolUserPrintFile SymbolUserPrintFile
typedefCrlSymbolUserPrintVChar SymbolUserPrintVChar
typedefCrlType Type
typedefCrlTypeAddress TypeAddress
typedefCrlTypeAny TypeAny
typedefCrlTypeApplication TypeApplication
typedefCrlTypeBool TypeBool
typedefCrlTypeBox TypeBox
typedefCrlTypeCIdentifier TypeCIdentifier
typedefCrlTypeCertainItem TypeCertainItem
typedefCrlTypeCharArray TypeCharArray
typedefCrlTypeCompound TypeCompound
typedefCrlTypeEnum TypeEnum
typedefCrlTypeFloat TypeFloat
typedefCrlTypeGMT TypeGMT
typedefCrlTypeIdentifier TypeIdentifier
typedefCrlTypeInteger TypeInteger
typedefCrlTypeItem TypeItem
typedefCrlTypeMap TypeMap
typedefCrlTypeNested TypeNested
typedefCrlTypeNumeric TypeNumeric
typedefCrlTypeNumericSimple TypeNumericSimple
typedefCrlTypeRange TypeRange
typedefCrlTypeScalar TypeScalar
typedefCrlTypeSigned TypeSigned
typedefCrlTypeSimple TypeSimple
typedefCrlTypeString TypeString
typedefCrlTypeSymbol TypeSymbol
typedefCrlTypeTuple TypeTuple
typedefCrlTypeUnsigned TypeUnsigned
typedefCrlTypeVector TypeVector
typedefCrlUnsigned Unsigned
typedefCrlUnsignedUserPrintFile UnsignedUserPrintFile
typedefCrlUnsignedUserPrintVChar UnsignedUserPrintVChar
typedefCrlUserData UserData
typedefCrlValue Value
typedefCrlValueApplication ValueApplication
typedefCrlValueBox ValueBox
typedefCrlValueCharArray ValueCharArray
typedefCrlValueCompound ValueCompound
typedefCrlValueFloat ValueFloat
typedefCrlValueGMT ValueGMT
typedefCrlValueIdentifier ValueIdentifier
typedefCrlValueInteger ValueInteger
typedefCrlValueItem ValueItem
typedefCrlValueList ValueList
typedefCrlValueMap ValueMap
typedefCrlValueMapItemValue ValueMapItemValue
typedefCrlValueNested ValueNested
typedefCrlValueNumeric ValueNumeric
typedefCrlValueNumericSimple ValueNumericSimple
typedefCrlValueRange ValueRange
typedefCrlValueRef ValueRef
typedefCrlValueRefBox ValueRefBox
typedefCrlValueRefContext ValueRefContext
typedefCrlValueRefMap ValueRefMap
typedefCrlValueRefMapItem ValueRefMapItem
typedefCrlValueRefVector ValueRefVector
typedefCrlValueScalar ValueScalar
typedefCrlValueSigned ValueSigned
typedefCrlValueSimple ValueSimple
typedefCrlValueString ValueString
typedefCrlValueSymbol ValueSymbol
typedefCrlValueUnsigned ValueUnsigned
typedefCrlValueVector ValueVector
typedefCrlValueVectorCMP ValueVectorCMP
typedefCrlWithID WithID
typedefCrlWord16 Word16
typedefCrlWord32 Word32
typedefcrl_address_t address_t
typedefcrl_address_user_print_file_t address_user_print_file_t
typedefcrl_address_user_print_vchar_t address_user_print_vchar_t
typedefcrl_block_type_t block_type_t
typedefcrl_bool_t bool
typedefcrl_bool_t bool_t
typedefcrl_bool_user_print_file_t bool_user_print_file_t
typedefcrl_bool_user_print_vchar_t bool_user_print_vchar_t
typedefcrl_byte_t byte_t
typedefcrl_class_id_t class_id_t
typedefcrl_compression_t compression_t
typedefERWIN_UNSIGNED_LONG_LONG crl_address_t
typedefCRL_ERWIN_BOOL crl_bool_t
typedefdouble crl_float_t
typedefint crl_index_t
typedefERWIN_LONG_LONG crl_signed_t
typedefERWIN_UNSIGNED_LONG_LONG crl_unsigned_t
typedefcrl_edge_type_t edge_type_t
typedefcrl_enum_user_print_file_t enum_user_print_file_t
typedefcrl_enum_user_print_vchar_t enum_user_print_vchar_t
typedefcrl_float_t float_t
typedefcrl_float_user_print_file_t float_user_print_file_t
typedefcrl_float_user_print_vchar_t float_user_print_vchar_t
typedefcrl_forbidden_t forbidden_t
typedefcrl_functor_type_t functor_type_t
typedefcrl_gmt_user_print_file_t gmt_user_print_file_t
typedefcrl_gmt_user_print_vchar_t gmt_user_print_vchar_t
typedefcrl_handle_foreign_item_t handle_foreign_item_t
typedefcrl_hashval_t hashval_t
typedefcrl_identifier_user_print_file_t identifier_user_print_file_t
typedefcrl_identifier_user_print_vchar_t identifier_user_print_vchar_t
typedefcrl_index_t index_t
typedefcrl_mapper_t mapper_t
typedefcrl_no_heap_t no_heap_t
typedefcrl_no_zero_t no_zero_t
typedefcrl_signed_t signed_t
typedefcrl_signed_user_print_file_t signed_user_print_file_t
typedefcrl_signed_user_print_vchar_t signed_user_print_vchar_t
typedefcrl_string2symbol_t string2symbol_t
typedefcrl_string_user_print_file_t string_user_print_file_t
typedefcrl_string_user_print_vchar_t string_user_print_vchar_t
typedefcrl_symbol_t symbol_t
typedefcrl_symbol_user_print_file_t symbol_user_print_file_t
typedefcrl_symbol_user_print_vchar_t symbol_user_print_vchar_t
typedefcrl_unsigned_t unsigned_t
typedefcrl_unsigned_user_print_file_t unsigned_user_print_file_t
typedefcrl_unsigned_user_print_vchar_t unsigned_user_print_vchar_t
typedefcrl_user_data_t user_data_t
typedefcrl_value_vector_cmp_t value_vector_cmp_t
typedefcrl_word16_t word16_t
typedefcrl_word32_t word32_t

Members

voidaddress_default_user_print_file(FILE *, TypeAddress const *, unsigned_t)
voidaddress_default_user_print_vchar(VChar *, TypeAddress const *, unsigned_t)
voidbool_default_user_print_file(FILE *, TypeBool const *, unsigned_t)
voidbool_default_user_print_vchar(VChar *, TypeBool const *, unsigned_t)
ContextDefault *context_default()
voidenum_default_user_print_file(FILE *, TypeEnum const *, signed_t)
voidenum_default_user_print_vchar(VChar *, TypeEnum const *, signed_t)
voidfloat_default_user_print_file(FILE *, TypeFloat const *, float_t)
voidfloat_default_user_print_vchar(VChar *, TypeFloat const *, float_t)
crl_string2symbol_tget_string2symbol()
crl_string2symbol_tget_string2symbol_default()
crl_user_data_delete_hook_tget_user_data_delete_hook()
voidgmt_default_user_print_file(FILE *, TypeGMT const *, unsigned_t)
voidgmt_default_user_print_vchar(VChar *, TypeGMT const *, unsigned_t)
voididentifier_default_user_print_file(FILE *, TypeIdentifier const *, char const *)
voididentifier_default_user_print_vchar(VChar *, TypeIdentifier const *, char const *)
voidinit(int &, char ** &)
boolis_c_identifier(char const *)
boolis_initialised()
boolis_lowcase_identifier(char const *)
boolis_normalised_decimal(char const *)
symbol_tklass_id_to_crl_name(int)
symbol_tklass_id_to_name(int)
voidset_handle_foreign_item(crl_handle_foreign_item_t)
voidset_string2symbol(crl_string2symbol_t)
voidset_user_data_delete_hook(crl_user_data_delete_hook_t)
voidsigned_default_user_print_file(FILE *, TypeSigned const *, signed_t)
voidsigned_default_user_print_vchar(VChar *, TypeSigned const *, signed_t)
symbol_tstring2symbol(char const * c)
voidstring_default_user_print_file(FILE *, CrlTypeString const *, char const *)
voidstring_default_user_print_vchar(VChar *, CrlTypeString const *, char const *)
voidsymbol_default_user_print_file(FILE *, TypeSymbol const *, char const *)
voidsymbol_default_user_print_vchar(VChar *, TypeSymbol const *, char const *)
TypeAny *type_any()
voidunsigned_default_user_print_file(FILE *, TypeUnsigned const *, unsigned_t)
voidunsigned_default_user_print_vchar(VChar *, TypeUnsigned const *, unsigned_t)


Detailed Descriptions


static ContextDefault * context_default ()

C++: CrlContextDefault * Crl::context_default ()
C: crl_context_default_t * crl_context_default (void)

This returns the default context, which is written <*> in CRL2 syntax. This is the context that defines all values of an attribute for contexts not mentioned in the CRL file. See RoutineItem::find_sym (int,symbol_t) for details on context-dependent attributes in PAG and CRL.


static TypeAny * type_any ()

C++: CrlTypeAny * Crl::type_any ()
C: crl_type_any_t * crl_type_any (void)

This returns the type that does not impose any constraints on the values.


static symbol_t string2symbol (char const * c)

C++: crl_symbol_t Crl::string2symbol (char const * c)
C: Not available.

The C function does exist and is called crl_string2symbol(). It is not a wrapper around this C++ function as usual, but rather the C++ function is a wrapper that simply invokes crl_string2symbol().

The crl_string2symbol() and, therefore, string2symbol() redirect the call to a function set via set_string2symbol(). By this, the symbol table of Crl can synchronised with other symbol tables, so that, for instance, your application uses only one global symbol table.

The internal default Crl symbol table access function can be queried with get_string2symbol_default(). The currently used string2symbol function can be queried with get_string2symbol().


static void set_string2symbol (crl_string2symbol_t)

C++: void Crl::set_string2symbol (crl_string2symbol_t)
C: Not available.

Again, the C equivalent does exist and is called crl_set_string2symbol().

You can invoke this before initialising the library (with init()) to make it use another string2symbol function. By this, you can synchronise symbol tables.

The crl-library's default string2symbol method is crl_string2symbol() (a macro!).

To get the current string2symbol function, use get_string2symbol().


static crl_string2symbol_t get_string2symbol ()

C++: crl_string2symbol_t Crl::get_string2symbol ()
C: crl_string2symbol_t crl_get_string2symbol (void)

Returns the current string2symbol() function.


static crl_string2symbol_t get_string2symbol_default ()

C++: crl_string2symbol_t Crl::get_string2symbol_default ()
C: crl_string2symbol_t crl_get_string2symbol_default (void)

Returns the default string2symbol() function.


static void set_user_data_delete_hook (crl_user_data_delete_hook_t)

C++: void Crl::set_user_data_delete_hook (crl_user_data_delete_hook_t)
C: void crl_set_user_data_delete_hook (crl_user_data_delete_hook_t)

Sets a user defined function that is invoked for the user_data of an object when the corresponding object is deallocated.


static crl_user_data_delete_hook_t get_user_data_delete_hook ()

C++: crl_user_data_delete_hook_t Crl::get_user_data_delete_hook ()
C: crl_user_data_delete_hook_t crl_get_user_data_delete_hook (void)

Gets the function set by set_user_data_delete_hook().


static void init (int &, char ** &)

C++: void Crl::init (int &, char ** &)
C: void crl_init (int *, char ** *)

Initialise this library.


static bool is_initialised ()

C++: bool Crl::is_initialised ()
C: crl_bool_t crl_is_initialised (void)

Returns whether this library is already initialised.


static symbol_t klass_id_to_crl_name (int)

C++: crl_symbol_t Crl::klass_id_to_crl_name (int)
C: crl_symbol_t crl_klass_id_to_crl_name (int)

e.g. CRL_ID_ROUTINE -> "routine"

Returns NULL if there is no representation name in crl or if the set of representations is ambiguous:

No representation

CRL_ID_OBJECT, CRL_ID_ITEM

Ambiguous

CRL_ID_TYPE_ITEM


static symbol_t klass_id_to_name (int)

C++: crl_symbol_t Crl::klass_id_to_name (int)
C: crl_symbol_t crl_klass_id_to_name (int)

e.g. CRL_ID_ROUTINE -> "Routine". Always succeeds.


static void set_handle_foreign_item (crl_handle_foreign_item_t)

C++: void Crl::set_handle_foreign_item (crl_handle_foreign_item_t)
C: void crl_set_handle_foreign_item (crl_handle_foreign_item_t)

This sets the function that is invoked when the graph printing finds a foreign item. A foreign item is one that is not part of the graph you are currently printing. Links between graphs may result when combining e.g. graphs from different compilation units (like object files).

The handler set by this function adjust the foreign item or take action to copy it into the other graph. You can also decide to print something to make a good CRL file. To do this, return non-NULL: the caller will then print the returned item into the corresponding stream.

The callback's prototype can be found in crl2/decls.h. It gets the item and the graph it is printed into (which is different to the item's own graph (because it is 'foreign')). It returns the item to be printed or NULL. You may return a new item, too: the item will be ref'ed and unref'ed by the caller and, therefore, correctly deallocated when there was no reference to it.

The default function prints datas and routines without modification, because these handle the switch from public to external automatically. If the data/routine is not external or public, an error is signalled by the default function. The default function also signals an error if the foreign item is neither routine nor data. In all cases of an error, the CRL file will be broken due to missing symbol definitions.

You should invoke this function after init().


static bool is_c_identifier (char const *)

C++: bool Crl::is_c_identifier (char const *)
C: crl_bool_t crl_is_c_identifier (char const *)

returns where s is a C-style identifier


static bool is_lowcase_identifier (char const *)

C++: bool Crl::is_lowcase_identifier (char const *)
C: crl_bool_t crl_is_lowcase_identifier (char const *)

returns where s is a C-style identifier starting with a lowercase letter.


static bool is_normalised_decimal (char const *)

C++: bool Crl::is_normalised_decimal (char const *)
C: crl_bool_t crl_is_normalised_decimal (char const *)

returns where s is a C-style decimal number that cannot be misinterpreted as an octal number and that fits into signed_t. Further, it must not contain any underbars (all Erwin strtol() equivalents (crl_erwin_strtol/ul/ll/ull) have an extension to ignore underbars in numbers, just like the Perl language allows).


static void string_default_user_print_vchar (VChar *, CrlTypeString const *, char const *)

C++: void Crl::string_default_user_print_vchar (CrlVChar *, CrlTypeString const *, char const *)
C: void crl_string_default_user_print_vchar (CrlVChar *, crl_type_string_t const *, char const *)


static void string_default_user_print_file (FILE *, CrlTypeString const *, char const *)

C++: void Crl::string_default_user_print_file (FILE *, CrlTypeString const *, char const *)
C: void crl_string_default_user_print_file (FILE *, crl_type_string_t const *, char const *)


static void symbol_default_user_print_vchar (VChar *, TypeSymbol const *, char const *)

C++: void Crl::symbol_default_user_print_vchar (CrlVChar *, CrlTypeSymbol const *, char const *)
C: void crl_symbol_default_user_print_vchar (CrlVChar *, crl_type_symbol_t const *, char const *)


static void symbol_default_user_print_file (FILE *, TypeSymbol const *, char const *)

C++: void Crl::symbol_default_user_print_file (FILE *, CrlTypeSymbol const *, char const *)
C: void crl_symbol_default_user_print_file (FILE *, crl_type_symbol_t const *, char const *)


static void identifier_default_user_print_vchar (VChar *, TypeIdentifier const *, char const *)

C++: void Crl::identifier_default_user_print_vchar (CrlVChar *, CrlTypeIdentifier const *, char const *)
C: void crl_identifier_default_user_print_vchar (CrlVChar *, crl_type_identifier_t const *, char const *)


static void identifier_default_user_print_file (FILE *, TypeIdentifier const *, char const *)

C++: void Crl::identifier_default_user_print_file (FILE *, CrlTypeIdentifier const *, char const *)
C: void crl_identifier_default_user_print_file (FILE *, crl_type_identifier_t const *, char const *)


static void unsigned_default_user_print_vchar (VChar *, TypeUnsigned const *, unsigned_t)

C++: void Crl::unsigned_default_user_print_vchar (CrlVChar *, CrlTypeUnsigned const *, crl_unsigned_t)
C: void crl_unsigned_default_user_print_vchar (CrlVChar *, crl_type_unsigned_t const *, crl_unsigned_t)


static void unsigned_default_user_print_file (FILE *, TypeUnsigned const *, unsigned_t)

C++: void Crl::unsigned_default_user_print_file (FILE *, CrlTypeUnsigned const *, crl_unsigned_t)
C: void crl_unsigned_default_user_print_file (FILE *, crl_type_unsigned_t const *, crl_unsigned_t)


static void gmt_default_user_print_vchar (VChar *, TypeGMT const *, unsigned_t)

C++: void Crl::gmt_default_user_print_vchar (CrlVChar *, CrlTypeGMT const *, crl_unsigned_t)
C: void crl_gmt_default_user_print_vchar (CrlVChar *, crl_type_gmt_t const *, crl_unsigned_t)


static void gmt_default_user_print_file (FILE *, TypeGMT const *, unsigned_t)

C++: void Crl::gmt_default_user_print_file (FILE *, CrlTypeGMT const *, crl_unsigned_t)
C: void crl_gmt_default_user_print_file (FILE *, crl_type_gmt_t const *, crl_unsigned_t)


static void bool_default_user_print_vchar (VChar *, TypeBool const *, unsigned_t)

C++: void Crl::bool_default_user_print_vchar (CrlVChar *, CrlTypeBool const *, crl_unsigned_t)
C: void crl_bool_default_user_print_vchar (CrlVChar *, crl_type_bool_t const *, crl_unsigned_t)


static void bool_default_user_print_file (FILE *, TypeBool const *, unsigned_t)

C++: void Crl::bool_default_user_print_file (FILE *, CrlTypeBool const *, crl_unsigned_t)
C: void crl_bool_default_user_print_file (FILE *, crl_type_bool_t const *, crl_unsigned_t)


static void address_default_user_print_vchar (VChar *, TypeAddress const *, unsigned_t)

C++: void Crl::address_default_user_print_vchar (CrlVChar *, CrlTypeAddress const *, crl_unsigned_t)
C: void crl_address_default_user_print_vchar (CrlVChar *, crl_type_address_t const *, crl_unsigned_t)


static void address_default_user_print_file (FILE *, TypeAddress const *, unsigned_t)

C++: void Crl::address_default_user_print_file (FILE *, CrlTypeAddress const *, crl_unsigned_t)
C: void crl_address_default_user_print_file (FILE *, crl_type_address_t const *, crl_unsigned_t)


static void enum_default_user_print_vchar (VChar *