/// <summary>The <see cref="PageNode"/> visit implementation</summary> /// <param name="pageNode">The page AST node</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public override AstNode VisitPageNode(PageNode pageNode) { if (pageNode == null) { throw new ArgumentNullException("pageNode"); } // Note - "@page" string cannot be verified here as it is analyzed during the parsing. // The print visitors convert it to lower case "@page" after printing. try { // Validate the pseudo nodes on page for lower case ValidateForLowerCase(pageNode.PseudoPage); // Visit declarations pageNode.Declarations.ForEach(declarationNode => declarationNode.Accept(this)); } catch (BuildWorkflowException exception) { throw new WorkflowException(string.Format(CultureInfo.CurrentUICulture, CssStrings.CssLowercaseValidationParentNodeError, pageNode.PrettyPrint()), exception); } return(pageNode); }