A symbol in the operand field must be either a user-defined numeric symbol, a label, or a register name. User-defined numeric symbols and labels can be either local (internal) symbols or global (external) symbols. Whether numeric symbols and labels are local or global depends on their use in the source program. You can reference a local numeric symbol or label only in the module in which it is defined. If local numeric symbols or labels with the same names are defined in different modules, the symbols and labels are completely independent. The definition of a global numeric symbol or label, however, can be referenced from any module in the program. MACRO-64 treats all user-defined numeric symbols and labels as local unless you explicitly declare them to be global by doing one of the following: o Use the double colon (::) in defining a label. o Use the double equal sign (==) in a direct assignment statement. o Use the .WEAK directive. You can only use user-defined lexical string symbols with the lexical string operators. You can define a macro using the same name as a previously defined local numeric symbol, global numeric symbol, or a lexical string symbol. However, you cannot define a lexical string symbol and a numeric symbol using the same name. In addition, you cannot use the same name for both a local and global numeric symbol. You cannot use the same symbol name for both a numeric symbol (local or global) and a label (local or global).