From b34ebf3fe3ecaf292be873d231dd54c80f16ad07 Mon Sep 17 00:00:00 2001 From: Malte Voos Date: Mon, 24 Jun 2024 00:24:24 +0200 Subject: rename: Reporter -> Error --- src/error/Error.ml | 40 ++++++++++++++++++++++++++++++++++++++++ src/error/dune | 4 ++++ 2 files changed, 44 insertions(+) create mode 100644 src/error/Error.ml create mode 100644 src/error/dune (limited to 'src/error') diff --git a/src/error/Error.ml b/src/error/Error.ml new file mode 100644 index 0000000..ee04c23 --- /dev/null +++ b/src/error/Error.ml @@ -0,0 +1,40 @@ +module Message = +struct + type t = + | IllegalCharacter + | SyntaxError + | UnboundVariable + | IllTyped + | CannotInferType + | Bug + + let default_severity : t -> Asai.Diagnostic.severity = + function + | IllegalCharacter -> Error + | SyntaxError -> Error + | UnboundVariable -> Error + | IllTyped -> Error + | CannotInferType -> Error + | Bug -> Bug + + let short_code : t -> string = + function + (* parser errors *) + | IllegalCharacter -> "E101" + | SyntaxError -> "E102" + (* elaboration errors *) + | UnboundVariable -> "E201" + | IllTyped -> "E202" + | CannotInferType -> "E202" + (* misc *) + | Bug -> "E900" +end + +include Asai.Reporter.Make(Message) + +let illegal_character ~loc char = fatalf ~loc IllegalCharacter "illegal character '%s'" (Char.escaped char) +let syntax_error ~loc = fatalf ~loc SyntaxError "syntax error" +let unbound_variable id = fatalf UnboundVariable "unbound variable '%a'" Ident.pp id +let expected_universe fmt x = fatalf IllTyped "expected a universe but got %a" fmt x + +let bug msg = fatalf Bug msg diff --git a/src/error/dune b/src/error/dune new file mode 100644 index 0000000..857f7bc --- /dev/null +++ b/src/error/dune @@ -0,0 +1,4 @@ +(library + (name Error) + (public_name toytt.error) + (libraries asai toytt.ident)) -- cgit 1.4.1