using System.Runtime.Serialization; namespace KumiScript.Interpreter { [Serializable] internal class InterpreterInvalidApplicationException : Exception //trying to invoke procedure with wrong args { public InterpreterInvalidApplicationException() { } public InterpreterInvalidApplicationException(string? message) : base(message) { } public InterpreterInvalidApplicationException(string? message, Exception? innerException) : base(message, innerException) { } protected InterpreterInvalidApplicationException(SerializationInfo info, StreamingContext context) : base(info, context) { } } internal class InterpreterInvalidInvocationException : Exception //trying to invoke non-procedure as procedure { public InterpreterInvalidInvocationException() { } public InterpreterInvalidInvocationException(string? message) : base(message) { } public InterpreterInvalidInvocationException(string? message, Exception? innerException) : base(message, innerException) { } protected InterpreterInvalidInvocationException(SerializationInfo info, StreamingContext context) : base(info, context) { } } internal class InterpreterUnboundSymbolException : Exception //try to lookup unbound symbol { public InterpreterUnboundSymbolException() { } public InterpreterUnboundSymbolException(string? message) : base(message) { } public InterpreterUnboundSymbolException(string? message, Exception? innerException) : base(message, innerException) { } protected InterpreterUnboundSymbolException(SerializationInfo info, StreamingContext context) : base(info, context) { } } internal class InterpreterInvalidDefinitionException : Exception //broken definition of procedure { public InterpreterInvalidDefinitionException() { } public InterpreterInvalidDefinitionException(string? message) : base(message) { } public InterpreterInvalidDefinitionException(string? message, Exception? innerException) : base(message, innerException) { } protected InterpreterInvalidDefinitionException(SerializationInfo info, StreamingContext context) : base(info, context) { } } internal class InterpreterTypingException : Exception //wrong type of arg { public InterpreterTypingException() { } public InterpreterTypingException(string? message) : base(message) { } public InterpreterTypingException(string? message, Exception? innerException) : base(message, innerException) { } protected InterpreterTypingException(SerializationInfo info, StreamingContext context) : base(info, context) { } } }