aboutsummaryrefslogblamecommitdiffstats
path: root/lib/scl/sublanguage.ml
blob: 0793211dd28ab2e7ff93e760c8546c71bb75fe5e (plain) (tree)
1
2
3
4
5
6
7
8
9

                                  
 
                           
                          

                  
                     
 
                                           
 

                        
                           


                                                                       
   
module Make (NT : Nt.S) = struct
  module Exec = Executor.Make (NT)

  type configuration = unit
  type ast = Ast.statement

  let name = "scl"
  let parse _ = Ok ()

  let parse_sexp sexp = Parser.of_sexp sexp

  let execute ctx ast =
    Exec.execute ctx ast
    |> Result.map (function
         | Executor.Batch { cursor_id; rows; has_more } ->
             Sublanguage_types.Cursor { cursor_id; rows; has_more }
         | Executor.Closed delta -> Sublanguage_types.Transition delta)
end