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 EnterPair([NotNull] PairContext context) { base.EnterPair(context); logger.Trace("Enter pair {0}", context.ID().GetText()); path.Push(context.ID().GetText()); }