Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 public override object VisitDerivationdeclaration(ShapPangParser.DerivationdeclarationContext context)
 {
     return(base.VisitDerivationdeclaration(context));
 }