private void Build(DThrow node, Hints hints, CompilerContext ctx) { if (node.Expression is not null) { Build(node.Expression, hints.Append(Push), ctx); AddLinePragma(node); cw.Fail(); } else { if (!hints.Has(Catch) || ctx.Errors.Count is 0) { AddError(CompilerError.InvalidRethrow, node.Location); } else { cw.PushVar(new ScopeVar(ctx.Errors.Peek())); } AddLinePragma(node); cw.Fail(); } }
private void Build(DThrow node, Hints hints, CompilerContext ctx) { Build(node.Expression, hints.Append(Push), ctx); AddLinePragma(node); cw.Fail(); }