public IModel Parse(IModel model) { IModel parsed = parentParser.Parse(model); HierarchyModel hParsed = parsed as HierarchyModel; if (hParsed != null) { IModel childModel = hParsed.ChildModels.Length > 0 ? hParsed.ChildModels[0] : null; if (childModel != null) { IModel child = childParser.Parse(childModel); return(new HierarchyModel(hParsed.Model, new[] { child })); } } return(model); }
public void ImpliedOccursAndDataType() { IModel model = new CobolModel("Redefines", "PROFILE-CHAR REDEFINES PROFILE PIC X(1) OCCURS 250 INDEXED BY PROFILE-CHAR-IDX", "[ 106] Single character of a security profile."); IImpliedModelParser modelParser = RedefinesParser.OccursAndDataImpliedParser(); Assert.That(modelParser.Matches(model), Is.True); IModel parsed = modelParser.Parse(model); IModel expected = Build.Redefines("PROFILE-CHAR REDEFINES PROFILE", "[ 106] Single character of a security profile.") .With( Build.Occurs("OCCURS 250 INDEXED BY PROFILE-CHAR-IDX", "Implied") .WithDataType("PIC X(1)", "Implied") ).Model(); AssertModelIsSame(parsed, expected, true); }