(* SparkLang homepage verbs — generated from status.py *) program = { statement } ; statement = model_stmt | expect_stmt | http_stmt ; model_stmt = train | status | inspect | diff | probe | decompile | patch | eval | stage ; train = "model", "train", "dataset", string, "base", string, "out", string, "backend", string, [ "method", string ], [ "->", ident ] ; status = "model", "status", string, [ "->", ident ] ; inspect = "model", "inspect", path, [ "->", ident ] ; diff = "model", "diff", path, path, [ "->", ident ] ; probe = "model", "probe", "base", "symbols", string, [ "->", ident ] ; decompile = "model", "decompile", { token } ; (* experimental *) patch = "model", "patch", { token } ; (* experimental *) eval = "model", "eval", ident, "suite", string, [ "->", ident ] ; stage = "model", "stage", ident, "marker", string, [ "->", ident ] ; expect_stmt = contains | gte | lte | eq | histogram_min | score ; contains = "expect", "contains", ident, "fixture", string ; gte = "expect", "gte", ident, jsonpath, number ; lte = "expect", "lte", ident, jsonpath, number ; eq = "expect", "eq", ident, jsonpath, value ; histogram_min = "expect", "histogram_min", ident, ident, number ; score = "expect", "score", ident, jsonpath, "using", string, ">=", number ; http_stmt = http_get | http_post ; http_get = "http", "get", string, [ "fixture", string ], [ "timeout", number ], [ "->", ident ] ; http_post = "http", "post", string, [ "body", string ], [ "fixture", string ], [ "timeout", number ], [ "->", ident ] ; string = '"', { char }, '"' ; ident = letter, { letter | digit | "_" | "-" } ; jsonpath = "$", { ".", ident | "[" , digit, "]" } ; path = string | ident ; value = string | number | "true" | "false" ;