InterpreterException.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Antlr4.Runtime.Tree;
  6. namespace MoonSharp.Interpreter
  7. {
  8. public class InterpreterException : Exception
  9. {
  10. protected InterpreterException(Exception ex)
  11. : base(ex.Message, ex)
  12. {
  13. }
  14. protected InterpreterException(string message)
  15. : base(message)
  16. {
  17. }
  18. protected InterpreterException(string format, params object[] args)
  19. : base(string.Format(format, args))
  20. {
  21. }
  22. protected InterpreterException(IParseTree tree, string message)
  23. : base(message + FormatTree(tree))
  24. {
  25. }
  26. protected InterpreterException(IParseTree tree, string format, params object[] args)
  27. : base(string.Format(format, args) + FormatTree(tree))
  28. {
  29. }
  30. private static string FormatTree(IParseTree tree)
  31. {
  32. if (tree == null)
  33. return "";
  34. return "@ " + tree.GetText();
  35. }
  36. public int InstructionPtr { get; internal set; }
  37. public IList<MoonSharp.Interpreter.Debugging.WatchItem> CallStack { get; internal set; }
  38. public string DecoratedMessage { get; internal set; }
  39. }
  40. }