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.
Global identifier names must be unique in that QM file. All identifiers, except local 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.