public override object VisitDerivationdeclaration(ShapPangParser.DerivationdeclarationContext context) { Derivative der = new Derivative(context.ID().GetText(), context.description.Text.Substring(1, context.description.Text.Length - 2), context.GetText(), Context.Scenario, Context.ElementScope); Context.Scenario.AddDerivation(der); Context.DerivationScope = der; object pendingReturn = base.VisitDerivationdeclaration(context); if (!der.Assignments.Contains(der.Name)) { throw new Exception("A derivative must contain an assignment to itself in order to set it's return value"); } return(pendingReturn); }
internal void CalculateDerivative() { input = new AntlrInputStream(this.Payload); lexer = new ShapPangLexer(input); tokens = new CommonTokenStream(lexer); parser = new ShapPangParser(tokens); visitor = new ShapExecutionVisitor(this, new ParsingContext() { ElementScope = this.Element }); parser.AddErrorListener(new ShapPangErrorListener()); ShapPangParser.DerivationdeclarationContext context = parser.derivationdeclaration(); visitor.VisitDerivationdeclaration(context); Calculated = true; }
public override object VisitDerivationdeclaration(ShapPangParser.DerivationdeclarationContext context) { return(base.VisitDerivationdeclaration(context)); }