示例#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);
        }