protected virtual GlobalVariableDefinitionNode ParseGlobalVariableDefinition()
        {
            // TODO : Move constants out of code into a the InterchangeFormatConstants class
            // TODO : Move error messages out of code into a the InterchangeFormatErrors class

            // PARSE: <globalDefinition> ::= ’Global’ ’variable:’ <globalNameString> <elementSeparator>
            Token       token = this.GetNextTokenxx();
            StringToken name  = token as StringToken;

            if (name == null)
            {
                GlobalVariableDefinitionNode result = new GlobalVariableDefinitionNode();
                this.ReportParserError(result, "Missing global variable name.", token);
                return(result);
            }
            name  = this.VerifyIdentifierString(name, "Global variable name not an identifier.");
            token = this.GetNextTokenxx();
            if (!(token is EofToken))
            {
                GlobalVariableDefinitionNode result = new GlobalVariableDefinitionNode();
                this.ReportParserError(result, "Unexpected code found after global variable name.", token);
                return(result);
            }
            return(new GlobalVariableDefinitionNode(name));
        }
 /// <summary>
 /// Visits the Global Variable Definition node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 public override bool VisitGlobalVariableDefinition(GlobalVariableDefinitionNode node)
 {
     if (node.GlobalName == null)
         return false;
     return true;
 }
 /// <summary>
 /// Visits the Global Variable Definition node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 public virtual TResult VisitGlobalVariableDefinition(GlobalVariableDefinitionNode node)
 {
     return(default(TResult)); // The default naive implementation
 }