/// <summary>
 /// Visits the Pool Constant Definition node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 public override bool VisitPoolConstantDefinition(PoolConstantDefinitionNode node)
 {
     if (node.PoolName == null)
         return false;
     if (node.PoolVariableName == null)
         return false;
     return true;
 }
        protected virtual PoolConstantDefinitionNode ParsePoolConstantDefinition(IdentifierToken poolName)
        {
            // PARSE: <poolVariableDefinition> ::= <poolName> ’constant:’ <poolVariableNameString> <elementSeparator>
            PoolConstantDefinitionNode result = this.CreatePoolConstantDefinitionNode(poolName);
            Token       token = this.GetNextTokenxx();
            StringToken name  = token as StringToken;

            if (name == null)
            {
                this.ReportParserError(result, "Missing pool constant name.", token);
                return(result);
            }
            name = this.VerifyIdentifierString(name, "Pool constant name not an identifier.");
            result.PoolVariableName = name;
            token = this.GetNextTokenxx();
            if (!(token is EofToken))
            {
                this.ReportParserError(result, "Unexpected code found after pool constant name.", token);
            }
            return(result);
        }
 /// <summary>
 /// Visits the Pool Constant Definition node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 public virtual TResult VisitPoolConstantDefinition(PoolConstantDefinitionNode node)
 {
     return(default(TResult)); // The default naive implementation
 }