/// <summary>
 /// Visits the Pool Variable/Constant Initialization node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 public override bool VisitPoolValueInitialization(PoolValueInitializationNode node)
 {
     if (node.PoolName == null)
         return false;
     if (node.PoolVariableName == null)
         return false;
     return true;
 }
        protected virtual PoolValueInitializationNode ParsePoolValueInitialization(IdentifierToken poolName)
        {
            // PARSE: <poolValueInitialization> ::= <poolName> ’initializerFor:’ <poolVariableNameString> <elementSeparator>
            PoolValueInitializationNode result = this.CreatePoolValueInitializationNode(poolName);
            Token       token = this.GetNextTokenxx();
            StringToken name  = token as StringToken;

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