Beispiel #1
0
		public Expr OnParseThrow()
		{
            var tokenIt = this._parser.TokenIt;
            var initiatorToken = tokenIt.NextToken;
			var expr = new ThrowExpr();
			// <codeThrow>

            tokenIt.Expect(Tokens.Throw);
            expr.Exp = this._parser.ParseExpression(Terminators.ExpStatementEnd, true, false, true, true, false);
            
            // </codeThrow>
			this._parser.SetupContext(expr, initiatorToken);
			return expr;
		}
Beispiel #2
0
        /// <summary>
        /// Execute
        /// </summary>
        public object VisitThrow(ThrowExpr expr)
        {
            var message = "";
            if (expr.Exp != null)
            {
                var result = expr.Exp.Evaluate(this) as LObject;
                if (result != LObjects.Null)
                    message = result.GetValue().ToString();
            }

            throw new LangException("TypeError", message, expr.Ref.ScriptName, expr.Ref.Line);
        }
Beispiel #3
0
 /// <summary>
 /// Visits the try statement tree.
 /// </summary>
 /// <param name="tryExpr"></param>
 public object VisitThrow(ThrowExpr expr)
 {
     _callBackOnNodeStart(expr);
     return null;
 }