(* Scanner *)
exception IllegalCharacterException of int * char
exception UnmatchedQuotationException of int
exception IllegalLatexComment of int * string


(* Parser *)
exception ParserException of int * int * int * int * string


(* Ast *)
exception NoExprHasNoLineNumberException
exception CallbackExprInAst


(* Semant *)
exception NoMainException
exception StatementAfterReturnException of string 
exception ExpectedConditionException of string * string
exception BinaryTypeMismatchException of string * string * string * string
exception UnaryTypeMismatchException of string * string * string
exception BadConcatException of string
exception NotDeclaredInScopeException of string * string
exception DoubleDeclareException of string * string
exception FuncReturnTypeException of string * string * string
exception NoReturnException of string


(* Tensors *)
exception InvalidIndexException of string * string
exception InvalidTensorImmedException of string
exception InvalidTensorElementException of string * string
exception TensorTypeException of string * string * string * string
exception EmptyTensorException of string
exception VoidTensorIndexException of string * string
exception UnspecifiedTensorMultiplicationException of string

(* Codegen *)
exception CodegenException

(* Latens *)
exception ImproperArgsException
