aboutsummaryrefslogtreecommitdiffstats
path: root/lib/vcl/sublanguage.ml
diff options
context:
space:
mode:
authorEstevan Castilho <tevo@riajuu.net>2026-05-27 23:24:12 +0000
committerGitHub <noreply@github.com>2026-05-27 23:24:12 +0000
commit9dc0391443ca16bf1ab3114d002aad83872f8a73 (patch)
treee4f78a2533e5e633b733c1ea21d0159aeca79b75 /lib/vcl/sublanguage.ml
parentf9097a0562ea8b40d40a19059578a9280b945de4 (diff)
downloadSakura-9dc0391443ca16bf1ab3114d002aad83872f8a73.tar.gz
Sakura-9dc0391443ca16bf1ab3114d002aad83872f8a73.zip
Improve the error handling situation (#71)
* Sketches of a condition system * `Condition.condition` -> `Condition.t` * Migrate `NT` over * Migrate `Branch` over * Migrate `Sublanguage` et al. over * Migrate the PRL over * Migrate the DRL over * Migrate the DML over * Have `Qualified_name.try_parse` return a `Condition.t` * Migrate the DDL over * Migrate the VCL over * Migrate the SCL over * Migrate the ICL over * Migrate the parsers over * Just inherit the errors from NT and the sublanguages * Migrate `Management.Physical` over * Migrate `Configuration` over * Migrate `Management.Branch` over * Migrate `Transport` over * Migrate `System` over * Migrate `Server` over * Include messages on on all conditions * A prettier stringifier
Diffstat (limited to 'lib/vcl/sublanguage.ml')
-rw-r--r--lib/vcl/sublanguage.ml10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/vcl/sublanguage.ml b/lib/vcl/sublanguage.ml
index f9ca629..4319eb8 100644
--- a/lib/vcl/sublanguage.ml
+++ b/lib/vcl/sublanguage.ml
@@ -1,9 +1,13 @@
module Make (NT : Nt.S) = struct
+ module Error = struct
+ open Condition
+ let unrecognized_command expr = condition "unrecognized-command" "Unrecognized command" ("expression" |=| (of_sexp expr))
+ end
+
module Exec = Executor.Make (NT)
type configuration = unit
type ast = Ast.statement
- type error = Exec.error
let name = "vcl"
let parse _ = Ok ()
@@ -11,9 +15,7 @@ module Make (NT : Nt.S) = struct
let parse_sexp = function
| Sexplib.Sexp.(List [ Atom "use"; Atom branch ]) -> Ok (Ast.Use branch)
| sexp ->
- Error (Exec.ParseError ("unrecognized vcl command: " ^ Sexplib.Sexp.to_string sexp))
+ Error (Error.unrecognized_command sexp)
let execute = Exec.execute
-
- let sexp_of_error = Exec.sexp_of_error
end