예제 #1
0
        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);
        }