Names of identifiers (QM keywords, variables, functions, types, etc) are case sensitive and can contain only alphanumeric characters (a to z, A to Z, 0 to 9) and underscore ( _ ). First character cannot be digit.
Identifier name must be unique in its scope:
Name of a local variable must be unique in that function or macro. If a local variable has same name as user-defined global identifier, is used local variable. Different functions or macros can have local variables with same name.
Name of global identifier must be unique in that macro-list file. All identifiers, except local variables and thread variables, are global.
It is not error to declare a global identifier more than once, if declarations are identical.
When QM searches for an identifier, it does it in the following sequence: at first searches for QM-defined identifiers (QM intrinsic functions, predefined types, constants and variables), then for local and thread variables, members (in a member function only), application variables, user-defined global identifiers, and finally in type libraries and reference files.