示例#1
0
        private ModelParser RunModelParser(CommandlineOptions options)
        {
            var fIn = System.IO.File.OpenText(options.InputFile);

            var runner = new ModelParser();

            runner.ParseInputFile(fIn);

            runner.DumpErrors();

            fIn.Close();
            return(runner);
        }
        public override void ExitIncludeStatement([NotNull] IncludeStatementContext context)
        {
            base.ExitIncludeStatement(context);

            var mp = new ModelParser();

            mp.ParseInputFile(context.GetText().Substring(1));

            foreach (var item in mp.ModelCollector.ParameterModels)
            {
                var exists = Collector.ParameterModels.FirstOrDefault(m => m.Name == item.Name);
                if (exists != null)
                {
                    exists.Value.AddRange(item.Value);
                }
                else
                {
                    Collector.ParameterModels.Add(item);
                }
            }
            foreach (var item in mp.ModelCollector.SingleModels)
            {
                var exists = Collector.SingleModels.FirstOrDefault(m => m.Name == item.Name);
                if (exists != null)
                {
                    exists.Value.AddRange(item.Value);
                }
                else
                {
                    Collector.SingleModels.Add(item);
                }
            }
            // get GraphElements from included
            foreach (var item in mp.GraphElements)
            {
                if (!GraphElements.ContainsKey(item.Key))
                {
                    GraphElements.Add(item.Key, item.Value);
                }
            }
        }