export class BaseError extends Error { public stack : string ; constructor ( message ? ) { super ( message ) ; this . stack = ( new Error ( message ) as any ) . stack ; } } export interface FileLocation { offset : number ; line : number ; column : number ; } export class ParseError extends BaseError { public start : FileLocation ; public end : FileLocation ; public stack : string ; constructor ( message ? , start ? , end ? ) { super ( message ) ; this . name = "ParseError" ; this . message = message ; this . start = start ; this . end = end ; } } export class CompileError extends BaseError { public start : FileLocation ; public end : FileLocation ; public stack : string ; constructor ( message ? , start ? , end ? ) { super ( message ) ; this . name = "CompileError" ; this . message = message ; this . start = start ; this . end = end ; } } export class RuntimeError extends BaseError { public start : FileLocation ; public end : FileLocation ; public stack : string ; constructor ( message ? , start ? , end ? ) { super ( message ) ; this . name = "RuntimeError" ; this . message = message ; this . start = start ; this . end = end ; } }