Example #1
0
        public ThrowBuilder(ThrowNode throwNode)
        {
            node          = throwNode;
            DotDefinition = new List <IDotElement>();

            CreateNode();
            CreateEdgeToNextSibling();
            CreateSpecialEdge();
        }
 public virtual void Visit(ThrowNode node)
 {
     if (node != null)
     {
         if (node.Operand != null)
         {
             node.Operand.Accept(this);
         }
     }
 }
        private Statement ProcessThrowStatement(ThrowNode node)
        {
            Debug.Assert(node.Value != null);

            Expression valueExpression = _expressionBuilder.BuildExpression(node.Value);

            if (valueExpression is MemberExpression)
            {
                valueExpression = _expressionBuilder.TransformMemberExpression((MemberExpression)valueExpression);
            }
            return(new ThrowStatement(valueExpression));
        }
Example #4
0
        bool IParseNodeValidator.Validate(ParseNode node, CompilerOptions options, IErrorHandler errorHandler)
        {
            ThrowNode throwNode = (ThrowNode)node;

            if (throwNode.Value == null)
            {
                errorHandler.ReportNodeValidationError(DSharpStringResources.THROW_NODE_VALIDATION_ERROR, throwNode);

                return(false);
            }

            return(true);
        }
Example #5
0
        bool IParseNodeValidator.Validate(ParseNode node, CompilerOptions options, IErrorHandler errorHandler)
        {
            ThrowNode throwNode = (ThrowNode)node;

            if (throwNode.Value == null)
            {
                errorHandler.ReportError("Throw statements must specify an exception object.",
                                         throwNode.Token.Location);
                return(false);
            }

            return(true);
        }
Example #6
0
 public object Process(Parser parser, SortedDictionary <string, object> parameters)
 {
     if (parser.CurrenToken.Type == TokenType.KwThrow)
     {
         parser.NextToken();
         var _statThrow = (ExpressionNode) new ThrowStatementp().Process(parser, parameters);
         var _throw     = new ThrowNode {
             ThrowStatementNode = _statThrow
         };
         return(_throw);
     }
     else
     {
         //Epsilon
         throw new ParserException("This was expected the token: throw, Received: [" +
                                   parser.CurrenToken.LexemeVal + "], Row: " + parser.CurrenToken.Row
                                   + ", Column: " + parser.CurrenToken.Column);
     }
 }
Example #7
0
 public override bool Walk(ThrowNode node)
 {
     CheckStatement(node);
     return(base.Walk(node));
 }
Example #8
0
 public ThrowNodeTests()
 {
     subject = new ThrowNode(SourcePosition.NIL, new StringNode(SourcePosition.NIL, "foo"));
 }
 public virtual void Visit(ThrowNode node)
 {
     if (node != null)
     {
         if (node.Operand != null)
         {
             node.Operand.Accept(this);
         }
     }
 }
Example #10
0
 public override bool Walk(ThrowNode node)
 {
     UpdateChildRanges(node);
     return(base.Walk(node));
 }
Example #11
0
 public override bool Walk(ThrowNode node)
 {
     _eval.EvaluateMaybeNull(node.Operand);
     return(false);
 }
Example #12
0
 public ThrowCompiler(ThrowNode node)
 {
     this.node = node;
 }
Example #13
0
 public void VisitThrow(ThrowNode node)
 {
     UpdateLine(node);
     node.Value.Accept(this);
     asm.Throw();
 }
Example #14
0
 public virtual void Visit(ThrowNode node)
 {
     if (node != null)
     {
          AcceptChildren(node);
     }
 }
Example #15
0
 public override bool Walk(ThrowNode node)
 {
     AddNode(node); return(true);
 }
Example #16
0
 public virtual bool Walk(ThrowNode node)
 {
     return(true);
 }
 public void Visit(ThrowNode node)
 {
     // not applicable; terminate
 }
Example #18
0
 public virtual void PostWalk(ThrowNode node) { }
Example #19
0
 public virtual bool Walk(ThrowNode node) { return true; }
Example #20
0
 public void VisitThrow(ThrowNode node)
 {
     VisitThrowHandler(node);
 }
Example #21
0
 public void TranslateThrowNode(ThrowNode node)
 {
     TranslateDependentPureNodes(node);
     builder.AppendLine($"throw {GetPinIncomingValue(node.ExceptionPin)};");
 }
Example #22
0
 public virtual void PostWalk(ThrowNode node)
 {
 }