private static void AddEntries(List <DataDefinition> linkage, LinkageSection node) { foreach (var definition in node.Children()) { AddEntries(linkage, definition); } }
/// <summary>TCRFUN_DECLARATION_NO_DUPLICATE_NAME</summary> /// <param name="node">LINKAGE SECTION node</param> /// <param name="profile">Parameters for original function</param> private void CheckNoLinkageItemIsAParameter(LinkageSection node, ParametersProfile profile) { if (node == null) { return; // no LINKAGE SECTION } var linkage = new List <DataDefinition>(); AddEntries(linkage, node); foreach (var description in linkage) { var used = Validate(profile.ReturningParameter, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.InputParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.OutputParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.InoutParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } } }
/// <summary> /// Check the Linkage section for private variables /// </summary> /// <param name="linkageSection"></param> /// <returns></returns> public override bool Visit(LinkageSection linkageSection) { RemoveNonPublicDataDeclaration(linkageSection); //remove linkage section if it doesn't contain any children if (linkageSection.Children.Count == 0) { linkageSection.Remove(); } return(false); }
/// <summary>TCRFUN_DECLARATION_NO_DUPLICATE_NAME</summary> /// <param name="node">LINKAGE SECTION node</param> /// <param name="profile">Parameters for original function</param> private void CheckNoLinkageItemIsAParameter(LinkageSection node, ParametersProfile profile) { if (node == null) return; // no LINKAGE SECTION var linkage = new List<DataDefinition>(); AddEntries(linkage, node); foreach(var description in linkage) { var used = Validate(profile.ReturningParameter, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.InputParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.OutputParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } used = GetParameter(profile.InoutParameters, description.Name); if (used != null) { AddErrorAlreadyParameter(description, description.QualifiedName); continue; } } }
private void AddEntries(List<DataDefinition> linkage, LinkageSection node) { foreach(var definition in node.Children()) AddEntries(linkage, definition); }
public virtual bool Visit(LinkageSection linkageSection) { return(true); }