public override void ExitParameters([NotNull] ParametersContext context) { logger.Trace(" Exit Params={0}", context._pairs.Aggregate("", (a, r) => a += r.ID().GetText() + " = " + r.pairvalue().GetText() + "\n")); var parameter = new Models.ParameterModel("#" + context.ID().GetText()); //parameter.Section = CurrentSection; foreach (var item in context._pairs) { var p = PairProps.Get(item); parameter.Value.Add(p); } // check for doubles var existing = Collector.ParameterModels.FirstOrDefault(p => p.Name == parameter.Name); if (existing != null) { existing.Value.AddRange(parameter.Value); } else { Collector.ParameterModels.Add(parameter); } base.ExitParameters(context); }
public override void ExitPair([NotNull] PairContext context) { var fullpath = path.GetPath(); path.Pop(); logger.Trace("Exit pair {0}", fullpath); Models.IModelObject pair = null; if (context.pairvalue()?.value() != null) { pair = ValueProps.Get(context.pairvalue().value()); } if (pair == null) { var value = new List <Models.IModelObject>(); pair = new Models.ModelCompositeObject { Value = value }; } pair.Name = context.ID().GetText(); pair.Path = fullpath; PairProps.Put(context, pair); if (context.pairvalue()?.inherits() != null) { pair.Inherits = true; pair.InheritsFrom = context.pairvalue().inherits().ID().GetText(); } if (context.modifier != null) { pair.Modified = true; pair.Modifier = context.modifier.Text; } GraphElements.Add(pair.Path, new GraphElement(pair.Path, pair)); logger.Trace("Pair: {0}{1} = {2}{3}", pair.Modifier, pair.Name, pair.GetText() ?? "unknown", context.pairvalue()?.inherits() != null ? " : " + pair.InheritsFrom : ""); base.ExitPair(context); }
public override void ExitObjFull([NotNull] ObjFullContext context) { var obj = new List <Models.IModelObject>(); var orderby = new List <string>(); if (context.orderstatement() != null) { foreach (var item in context.orderstatement()._orderby) { orderby.Add(item.Text); } } foreach (var item in context._pairs) { var p = PairProps.Get(item); obj.Add(p); } ObjProps.Put(context, obj); ObjOrderByProps.Put(context, orderby); base.ExitObjFull(context); }