protected T Invoke <T>(CPPModel model) where T : BaseCPPModelVisitor, new() { var result = Resolve <T>(); if (model != null) { result.Visit(model); } return(result); }
public override void DefaultVisit(CPPModel model) { Unsupported(model, $"Unsupported node type"); }
// Base boilerplate protected void Unsupported(CPPModel model, string message) { throw new Exception($"[{GetType().Name}] {model.GetType().Name} ({model}): {message}"); }