예제 #1
0
        public static Map Parse(VHDLDocument document, string text)
        {
            var title             = Regex.Match(text, PC.RegularTitle).Value;
            var assigments        = Regex.Match(text, PC.Assigments).Value;
            var genericAssigments = Regex.Match(text, PC.GenericAsigments).Value;
            Map newMap            = new Map(document, text)
            {
                Name       = Regex.Match(title, PC.MapName).Value,
                EntityName = Regex.Match(title, PC.MapEntity).Value
            };

            newMap.Entity             = document.Components.FirstOrDefault(x => x.Name == newMap.EntityName);
            newMap.GenericAssignments =
                PC.MatchesToStrings(Regex.Matches(genericAssigments, PC.OneGenericAssimnet)).Select(asgn => GenericAssignment.Parse(newMap, asgn)).ToList();

            newMap.Assigmnets =
                PC.MatchesToStrings(Regex.Matches(assigments, PC.OneAssimnet)).Select(asgn => Assignment.Parse(newMap, asgn)).ToList();
            return(newMap);
        }
예제 #2
0
        public static List <Port> ParsePorts(Entity entity, string vhdlPorts)
        {
            var portStings = PC.MatchesToStrings(Regex.Matches(vhdlPorts, PC.PortAsigment));

            return(portStings.Select(x => Port.Parse(entity, x)).ToList());
        }