@jpoly1219/context-extractor 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ocaml-utils/_build/.filesystem-clock +1 -0
- package/dist/src/ocaml-utils/_build/.lock +0 -0
- package/dist/src/ocaml-utils/_build/default/.dune/configurator +2 -0
- package/dist/src/ocaml-utils/_build/default/.dune/configurator.v2 +1 -0
- package/dist/src/ocaml-utils/_build/default/.js/default/compiler-libs.common/ocamlcommon.cma.js +160991 -0
- package/dist/src/ocaml-utils/_build/default/.js/default/js_of_ocaml/js_of_ocaml.cma.js +7195 -0
- package/dist/src/ocaml-utils/_build/default/.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js +73 -0
- package/dist/src/ocaml-utils/_build/default/.js/default/stdlib/std_exit.cmo.js +25 -0
- package/dist/src/ocaml-utils/_build/default/.js/default/stdlib/stdlib.cma.js +28451 -0
- package/dist/src/ocaml-utils/_build/default/.merlin-conf/exe-test_parser +0 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/_ppx.ml-gen +1 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/dune__exe___ppx.cmi +0 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/dune__exe___ppx.cmo +0 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/dune__exe___ppx.cmx +0 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/dune__exe___ppx.o +0 -0
- package/dist/src/ocaml-utils/_build/default/.ppx/7b799aed44581cc79b02033532c5f775/ppx.exe +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/byte/dune__exe__Test_parser.cmi +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/byte/dune__exe__Test_parser.cmo +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/byte/dune__exe__Test_parser.cmt +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/byte/dune__exe__Test_parser.cmti +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/jsoo/dune__exe__Test_parser.cmo.js +215 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/jsoo/test_parser.bc.runtime.js +8894 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/native/dune__exe__Test_parser.cmx +0 -0
- package/dist/src/ocaml-utils/_build/default/.test_parser.eobjs/native/dune__exe__Test_parser.o +0 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.bc-for-jsoo +0 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.bc.d.ts +3 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.bc.js +194658 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.ml +315 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.pp.ml +0 -0
- package/dist/src/ocaml-utils/_build/default/test_parser.pp.mli +1 -0
- package/dist/src/ocaml-utils/_build/log +22 -0
- package/package.json +6 -2
@@ -0,0 +1,315 @@
|
|
1
|
+
open Js_of_ocaml
|
2
|
+
|
3
|
+
(* Parse some stringified OCaml code. *)
|
4
|
+
(* let parse_from_string str = *)
|
5
|
+
(* let lexbuf = Lexing.from_string str in *)
|
6
|
+
(* try *)
|
7
|
+
(* let parsed_str = Parse.implementation lexbuf in *)
|
8
|
+
(* Some parsed_str *)
|
9
|
+
(* with *)
|
10
|
+
(* | Syntaxerr.Error _ -> *)
|
11
|
+
(* prerr_endline "Syntax error!"; *)
|
12
|
+
(* None *)
|
13
|
+
(* | _ -> *)
|
14
|
+
(* prerr_endline "An error occurred!"; *)
|
15
|
+
(* None *)
|
16
|
+
(**)
|
17
|
+
(* let rec print_core_type (core_type : Parsetree.core_type) indent print_desc = *)
|
18
|
+
(* let indent_str = String.make indent ' ' in *)
|
19
|
+
(* match core_type.ptyp_desc with *)
|
20
|
+
(* | Ptyp_tuple elements -> *)
|
21
|
+
(* if print_desc then Printf.printf "%sTuple core types: " indent_str; *)
|
22
|
+
(* Printf.printf "%s\n" (Format.asprintf "%a" Pprintast.core_type core_type); *)
|
23
|
+
(* List.iter (fun el -> print_core_type el (indent + 2) false) elements; *)
|
24
|
+
(* if print_desc then Printf.printf "\n" *)
|
25
|
+
(* (* | Ptyp_constr (loc, []) -> *) *)
|
26
|
+
(* (* Printf.printf "%sIdentifier: %s\n" indent_str *) *)
|
27
|
+
(* (* (match loc.txt with Longident.Lident li -> li | _ -> "Other constr") *) *)
|
28
|
+
(* | Ptyp_constr (loc, core_types) -> *)
|
29
|
+
(* if print_desc then Printf.printf "%sConstr core types: " indent_str; *)
|
30
|
+
(* List.iter *)
|
31
|
+
(* (fun ctyp -> *)
|
32
|
+
(* print_core_type ctyp indent false; *)
|
33
|
+
(* Printf.printf " ") *)
|
34
|
+
(* core_types; *)
|
35
|
+
(* Printf.printf "%s" *)
|
36
|
+
(* (match loc.txt with Longident.Lident li -> li | _ -> "Other constr"); *)
|
37
|
+
(* if print_desc then Printf.printf "\n" *)
|
38
|
+
(* | Ptyp_arrow (_, t1, t2) -> *)
|
39
|
+
(* if print_desc then Printf.printf "%sArrow core type: " indent_str; *)
|
40
|
+
(* print_core_type t1 (indent + 2) false; *)
|
41
|
+
(* Printf.printf " -> "; *)
|
42
|
+
(* print_core_type t2 (indent + 2) false; *)
|
43
|
+
(* if print_desc then Printf.printf "\n" *)
|
44
|
+
(* | _ -> Printf.printf "%sOther core_type\n" indent_str *)
|
45
|
+
(**)
|
46
|
+
(* let rec print_pattern (pattern : Parsetree.pattern) indent = *)
|
47
|
+
(* let indent_str = String.make indent ' ' in *)
|
48
|
+
(* match pattern.ppat_desc with *)
|
49
|
+
(* | Parsetree.Ppat_var loc -> Printf.printf "%sVar: %s\n" indent_str loc.txt *)
|
50
|
+
(* | Parsetree.Ppat_tuple pats -> *)
|
51
|
+
(* Printf.printf "%sTuple:\n" indent_str; *)
|
52
|
+
(* List.iter (fun pat -> print_pattern pat (indent + 2)) pats *)
|
53
|
+
(* | Parsetree.Ppat_constraint (pat, core_type) -> *)
|
54
|
+
(* Printf.printf "%sConstraint:\n" indent_str; *)
|
55
|
+
(* print_pattern pat (indent + 2); *)
|
56
|
+
(* print_core_type core_type (indent + 2) true *)
|
57
|
+
(* | _ -> Printf.printf "%sOther pattern\n" indent_str *)
|
58
|
+
(**)
|
59
|
+
(* (* Print the expression tree. *) *)
|
60
|
+
(* let rec print_expression (expr : Parsetree.expression) indent = *)
|
61
|
+
(* let indent_str = String.make indent ' ' in *)
|
62
|
+
(* match expr.pexp_desc with *)
|
63
|
+
(* | Pexp_ident { txt = Longident.Lident id; _ } -> *)
|
64
|
+
(* Printf.printf "%sIdentifier: %s\n" indent_str id *)
|
65
|
+
(* | Pexp_constant const -> *)
|
66
|
+
(* Printf.printf "%sConstant: %s\n" indent_str *)
|
67
|
+
(* (match const with *)
|
68
|
+
(* | Pconst_integer (n, _) -> n *)
|
69
|
+
(* | Pconst_string (s, _, _) -> "\"" ^ s ^ "\"" *)
|
70
|
+
(* | Pconst_float (f, _) -> f *)
|
71
|
+
(* | Pconst_char c -> String.make 1 c) *)
|
72
|
+
(* | Pexp_apply (func, args) -> *)
|
73
|
+
(* Printf.printf "%sApply:\n" indent_str; *)
|
74
|
+
(* print_expression func (indent + 2); *)
|
75
|
+
(* List.iter (fun (_, arg) -> print_expression arg (indent + 2)) args *)
|
76
|
+
(* | Pexp_tuple elements -> *)
|
77
|
+
(* Printf.printf "%sTuple:\n" indent_str; *)
|
78
|
+
(* List.iter (fun el -> print_expression el (indent + 2)) elements *)
|
79
|
+
(* | Pexp_function (params, rettype, _) -> ( *)
|
80
|
+
(* Printf.printf "%sFunction:\n" indent_str; *)
|
81
|
+
(* List.iter *)
|
82
|
+
(* (fun (param : Parsetree.function_param) -> *)
|
83
|
+
(* match param.pparam_desc with *)
|
84
|
+
(* | Pparam_val (Nolabel, None, pat) -> *)
|
85
|
+
(* Printf.printf "%s Params:\n" indent_str; *)
|
86
|
+
(* print_pattern pat (indent + 4) *)
|
87
|
+
(* | Pparam_newtype loc -> *)
|
88
|
+
(* Printf.printf "%sNewtype Param: %s\n" indent_str loc.txt *)
|
89
|
+
(* | _ -> Printf.printf "%sOther params\n" indent_str) *)
|
90
|
+
(* params; *)
|
91
|
+
(* match rettype with *)
|
92
|
+
(* | Some pcon -> ( *)
|
93
|
+
(* match pcon with *)
|
94
|
+
(* | Pconstraint ret -> *)
|
95
|
+
(* Printf.printf "%s Return:\n" indent_str; *)
|
96
|
+
(* print_core_type ret (indent + 4) true *)
|
97
|
+
(* | _ -> Printf.printf "%sOther rettype" indent_str) *)
|
98
|
+
(* | _ -> Printf.printf "%sOther type_constraint\n" indent_str) *)
|
99
|
+
(* | _ -> Printf.printf "%sOther expression\n" indent_str *)
|
100
|
+
(**)
|
101
|
+
(* (* Print the parsed structure. *) *)
|
102
|
+
(* let print_structure_item (item : Parsetree.structure_item) indent = *)
|
103
|
+
(* let indent_str = String.make indent ' ' in *)
|
104
|
+
(* match item.pstr_desc with *)
|
105
|
+
(* | Pstr_value (rec_flag, bindings) -> *)
|
106
|
+
(* Printf.printf "%sValue binding%s:\n" indent_str *)
|
107
|
+
(* (if rec_flag = Recursive then " (recursive)" else ""); *)
|
108
|
+
(* List.iter *)
|
109
|
+
(* (fun (vb : Parsetree.value_binding) -> *)
|
110
|
+
(* Printf.printf "%s Pattern: %s\n" indent_str *)
|
111
|
+
(* (Format.asprintf "%a" Pprintast.pattern vb.pvb_pat); *)
|
112
|
+
(* Printf.printf "%s Expression:\n" indent_str; *)
|
113
|
+
(* print_expression vb.pvb_expr (indent + 4)) *)
|
114
|
+
(* bindings *)
|
115
|
+
(* | Pstr_type (_, type_decls) -> *)
|
116
|
+
(* Printf.printf "%sType declarations:\n" indent_str; *)
|
117
|
+
(* List.iter *)
|
118
|
+
(* (fun (td : Parsetree.type_declaration) -> *)
|
119
|
+
(* Printf.printf "%s Type name: %s\n" indent_str td.ptype_name.txt; *)
|
120
|
+
(* match td.ptype_kind with *)
|
121
|
+
(* | Ptype_variant ctor_decls -> *)
|
122
|
+
(* List.iter *)
|
123
|
+
(* (fun (ctor : Parsetree.constructor_declaration) -> *)
|
124
|
+
(* Printf.printf "%s Constructor name: %s" indent_str *)
|
125
|
+
(* ctor.pcd_name.txt; *)
|
126
|
+
(* match ctor.pcd_args with *)
|
127
|
+
(* | Parsetree.Pcstr_tuple core_types -> *)
|
128
|
+
(* if List.length core_types = 0 then print_string "\n" *)
|
129
|
+
(* else *)
|
130
|
+
(* List.iter *)
|
131
|
+
(* (fun (core_type : Parsetree.core_type) -> *)
|
132
|
+
(* match core_type.ptyp_desc with *)
|
133
|
+
(* | Ptyp_constr ({ txt = Longident.Lident id; _ }, _) *)
|
134
|
+
(* -> *)
|
135
|
+
(* Printf.printf "%s of %s\n" indent_str id *)
|
136
|
+
(* | _ -> *)
|
137
|
+
(* Printf.printf "%sOther structure item\n" *)
|
138
|
+
(* indent_str) *)
|
139
|
+
(* core_types *)
|
140
|
+
(* | _ -> Printf.printf "%sOther structure item\n" indent_str) *)
|
141
|
+
(* ctor_decls *)
|
142
|
+
(* | _ -> Printf.printf "%sOther structure item\n" indent_str) *)
|
143
|
+
(* type_decls *)
|
144
|
+
(* | _ -> Printf.printf "%sOther structure item\n" indent_str *)
|
145
|
+
(**)
|
146
|
+
(* (* Print the structure. *) *)
|
147
|
+
(* let print_structure structure = *)
|
148
|
+
(* List.iter (fun item -> print_structure_item item 0) structure *)
|
149
|
+
|
150
|
+
(* Function to print the parsed structure *)
|
151
|
+
(* let print_typedecl_tree (typedecl : Parsetree.type_declaration) (indent : int) = *)
|
152
|
+
(* let indent_str = String.make indent ' ' in *)
|
153
|
+
(* match typedecl.ptype_kind with *)
|
154
|
+
(* | Ptype_variant ctor_decls -> *)
|
155
|
+
(* print_int (List.length ctor_decls); *)
|
156
|
+
(* print_string indent_str *)
|
157
|
+
(* | _ -> Printf.printf "%sOther expression type\n" indent_str *)
|
158
|
+
(**)
|
159
|
+
(* let print_typedecl typedecl = print_typedecl_tree typedecl 0 *)
|
160
|
+
|
161
|
+
(* Function to print the parsed expression *)
|
162
|
+
(* let print_expression expr = print_expression_tree expr 0 *)
|
163
|
+
|
164
|
+
(* let read_file filename = *)
|
165
|
+
(* let ch = open_in_bin filename in *)
|
166
|
+
(* let s = really_input_string ch (in_channel_length ch) in *)
|
167
|
+
(* close_in ch; *)
|
168
|
+
(* s *)
|
169
|
+
let rec string_of_type (typ : Parsetree.core_type) : string =
|
170
|
+
match typ.ptyp_desc with
|
171
|
+
| Ptyp_arrow (_, t1, t2) ->
|
172
|
+
let arg1 = string_of_type t1 in
|
173
|
+
let arg2 = string_of_type t2 in
|
174
|
+
arg1 ^ " -> " ^ arg2
|
175
|
+
| Ptyp_tuple types ->
|
176
|
+
let type_strings = List.map string_of_type types in
|
177
|
+
String.concat " * " type_strings
|
178
|
+
| Ptyp_constr ({ txt = Lident s; _ }, []) -> s
|
179
|
+
| Ptyp_constr ({ txt = Lident s; _ }, ctyp_list) ->
|
180
|
+
let args_str = List.map string_of_type ctyp_list |> String.concat ", " in
|
181
|
+
args_str ^ " " ^ s
|
182
|
+
| _ -> "unknown"
|
183
|
+
|
184
|
+
let rec extract_core_type (ctyp : Parsetree.core_type) (components_only : bool)
|
185
|
+
=
|
186
|
+
if components_only then (
|
187
|
+
match ctyp.ptyp_desc with
|
188
|
+
| Ptyp_arrow (_, argtyp, rettyp) ->
|
189
|
+
[ "Ptyp_arrow"; string_of_type argtyp; string_of_type rettyp ]
|
190
|
+
| Ptyp_tuple types ->
|
191
|
+
"Ptyp_tuple"
|
192
|
+
:: List.fold_right (fun curr acc -> string_of_type curr :: acc) types []
|
193
|
+
| Ptyp_constr ({ txt = Lident id; _ }, []) -> [ "Ptyp_constr"; id ]
|
194
|
+
| Ptyp_constr ({ txt = Lident id; _ }, [ ctyps ]) ->
|
195
|
+
[ "Ptyp_constr"; string_of_type ctyps; id ]
|
196
|
+
| _ ->
|
197
|
+
Printf.printf "Other core type";
|
198
|
+
[ "Other core type" ])
|
199
|
+
else
|
200
|
+
match ctyp.ptyp_desc with
|
201
|
+
| Ptyp_arrow (_, _, rettyp) ->
|
202
|
+
string_of_type ctyp :: extract_core_type rettyp components_only
|
203
|
+
| Ptyp_tuple types ->
|
204
|
+
List.fold_left
|
205
|
+
(fun acc curr ->
|
206
|
+
List.append (extract_core_type curr components_only) acc)
|
207
|
+
[] types
|
208
|
+
| Ptyp_constr ({ txt = Lident id; _ }, []) -> id :: []
|
209
|
+
| Ptyp_constr ({ txt = Lident id; _ }, [ ctyps ]) ->
|
210
|
+
[ string_of_type ctyps ^ " " ^ id ]
|
211
|
+
| _ ->
|
212
|
+
Printf.printf "Other core type";
|
213
|
+
[]
|
214
|
+
|
215
|
+
(* Save this for later when we actually need to get the constructors *)
|
216
|
+
(* let analyze_structure (structure : Parsetree.structure) = *)
|
217
|
+
(* List.iter *)
|
218
|
+
(* (fun (item : Parsetree.structure_item) -> *)
|
219
|
+
(* match item.pstr_desc with *)
|
220
|
+
(* | Pstr_type (_, type_decls) -> *)
|
221
|
+
(* List.iter *)
|
222
|
+
(* (fun (td : Parsetree.type_declaration) -> *)
|
223
|
+
(* (* Printf.printf "Type: %s\n" td.ptype_name.txt; *) *)
|
224
|
+
(* match td.ptype_kind with *)
|
225
|
+
(* | Ptype_variant ctors -> *)
|
226
|
+
(* List.iter *)
|
227
|
+
(* (fun (ctor : Parsetree.constructor_declaration) -> *)
|
228
|
+
(* Printf.printf " Constructor: %s\n" ctor.pcd_name.txt) *)
|
229
|
+
(* ctors *)
|
230
|
+
(* | _ -> Printf.printf "Other type kind\n") *)
|
231
|
+
(* type_decls *)
|
232
|
+
(* | _ -> Printf.printf "Not a type declaration\n") *)
|
233
|
+
(* structure; *)
|
234
|
+
|
235
|
+
let parse_core_type_from_type_span s =
|
236
|
+
let lexbuf = Lexing.from_string s in
|
237
|
+
try Some (Parse.core_type lexbuf) with _ -> None
|
238
|
+
|
239
|
+
let parse_implementation_from_type_span s =
|
240
|
+
let lexbuf = Lexing.from_string ("type tmp = " ^ s) in
|
241
|
+
try Some (Parse.implementation lexbuf) with _ -> None
|
242
|
+
|
243
|
+
(* Walk the AST and extrac]]t target types. *)
|
244
|
+
let extract_target_types (type_span : string) =
|
245
|
+
let parsed = parse_core_type_from_type_span type_span in
|
246
|
+
match parsed with
|
247
|
+
| Some ctyp -> extract_core_type ctyp false
|
248
|
+
| None -> (
|
249
|
+
let parsed2 = parse_implementation_from_type_span type_span in
|
250
|
+
match parsed2 with
|
251
|
+
(* | Some impl -> analyze_structure impl *)
|
252
|
+
| Some _ -> [ type_span ]
|
253
|
+
| None -> failwith "Failed to parse type span")
|
254
|
+
|
255
|
+
(* print_endline "Structure parsed successfully!"; *)
|
256
|
+
(* extract_core_type parsed false *)
|
257
|
+
|
258
|
+
let extract_component_types (type_span : string) =
|
259
|
+
let parsed = parse_core_type_from_type_span type_span in
|
260
|
+
match parsed with
|
261
|
+
| Some ctyp -> extract_core_type ctyp true
|
262
|
+
| None -> (
|
263
|
+
let parsed2 = parse_implementation_from_type_span type_span in
|
264
|
+
match parsed2 with
|
265
|
+
(* | Some impl -> analyze_structure impl *)
|
266
|
+
| Some _ -> [ type_span ]
|
267
|
+
| None -> failwith "Failed to parse type span")
|
268
|
+
|
269
|
+
let js_extract_target_types (type_span : string) =
|
270
|
+
let extracted = extract_target_types type_span in
|
271
|
+
Js.array (Array.of_list extracted)
|
272
|
+
|
273
|
+
(* What do we want? todo -> model * int would yield todo, model * int *)
|
274
|
+
(* model * int * string would yield model, int, string *)
|
275
|
+
let js_extract_component_types (type_span : string) =
|
276
|
+
let extracted = extract_component_types type_span in
|
277
|
+
Js.array (Array.of_list extracted)
|
278
|
+
|
279
|
+
(* Example usage *)
|
280
|
+
(* let () = *)
|
281
|
+
(* (* TODO: How do we extract this type span string? *) *)
|
282
|
+
(* let strs = *)
|
283
|
+
(* [ *)
|
284
|
+
(* "todo * todo -> bool"; *)
|
285
|
+
(* "model * model -> bool"; *)
|
286
|
+
(* "model"; *)
|
287
|
+
(* "model -> todo list"; *)
|
288
|
+
(* "int * todo list -> todo list"; *)
|
289
|
+
(* "int * todo list -> todo list * bool"; *)
|
290
|
+
(* "int * todo list -> ((todo * action) * (string -> bool))"; *)
|
291
|
+
(* "id list * playlist_state"; *)
|
292
|
+
(* "Playing of id | PausedOn of id | NoSongSelected"; *)
|
293
|
+
(* ] *)
|
294
|
+
(* in *)
|
295
|
+
(* (* let str = *) *)
|
296
|
+
(* (* read_file *) *)
|
297
|
+
(* (* "/home/jacob/projects/context-extractor/targets/ocaml/todo/prelude.ml" *) *)
|
298
|
+
(* (* in *) *)
|
299
|
+
(* List.iter *)
|
300
|
+
(* (fun str -> *)
|
301
|
+
(* List.iter *)
|
302
|
+
(* (fun el -> *)
|
303
|
+
(* print_string el; *)
|
304
|
+
(* print_endline " ; ") *)
|
305
|
+
(* (extract_target_types str)) *)
|
306
|
+
(* strs *)
|
307
|
+
|
308
|
+
let _ = Js.export "parse" (Js.wrap_callback js_extract_target_types)
|
309
|
+
let _ = Js.export "getComponents" (Js.wrap_callback js_extract_component_types)
|
310
|
+
|
311
|
+
(* match parse_from_string str with *)
|
312
|
+
(* | Some parsed_str -> *)
|
313
|
+
(* print_endline "Structure parsed successfully!"; *)
|
314
|
+
(* print_structure parsed_str *)
|
315
|
+
(* | None -> print_endline "Failed to parse structure." *)
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
(* Auto-generated by Dune *)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# dune build
|
2
|
+
# OCAMLPARAM: unset
|
3
|
+
# Shared cache: disabled
|
4
|
+
# Shared cache location: /home/jacob/.cache/dune/db
|
5
|
+
# Workspace root: /home/jacob/projects/context-extractor/src/ocaml-utils
|
6
|
+
# Auto-detected concurrency: 28
|
7
|
+
# Dune context:
|
8
|
+
# { name = "default"
|
9
|
+
# ; kind = "default"
|
10
|
+
# ; profile = Dev
|
11
|
+
# ; merlin = true
|
12
|
+
# ; fdo_target_exe = None
|
13
|
+
# ; build_dir = In_build_dir "default"
|
14
|
+
# ; instrument_with = []
|
15
|
+
# }
|
16
|
+
$ /home/jacob/projects/context-extractor/_opam/bin/ocamlc.opt -config > /tmp/dune_373e9c_output
|
17
|
+
$ /home/jacob/projects/context-extractor/_opam/bin/js_of_ocaml --version > /tmp/dune_b2583a_output
|
18
|
+
$ (cd _build/.sandbox/9e8f0b7dd6ddb28d97b155423158163d/default && .ppx/7b799aed44581cc79b02033532c5f775/ppx.exe -o test_parser.pp.ml --impl test_parser.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
|
19
|
+
$ (cd _build/default && /home/jacob/projects/context-extractor/_opam/bin/ocamlc.opt -w @1..3@5..28@31..39@43@46..47@49..57@61..62@67@69-40 -strict-sequence -strict-formats -short-paths -keep-locs -g -bin-annot -bin-annot-occurrences -I .test_parser.eobjs/byte -I /home/jacob/projects/context-extractor/_opam/lib/js_of_ocaml -I /home/jacob/projects/context-extractor/_opam/lib/js_of_ocaml-compiler/runtime -I /home/jacob/projects/context-extractor/_opam/lib/ocaml/compiler-libs -intf-suffix .ml -no-alias-deps -opaque -o .test_parser.eobjs/byte/dune__exe__Test_parser.cmo -c -impl test_parser.pp.ml)
|
20
|
+
$ (cd _build/default && /home/jacob/projects/context-extractor/_opam/bin/js_of_ocaml --pretty --source-map-inline -o .test_parser.eobjs/jsoo/dune__exe__Test_parser.cmo.js .test_parser.eobjs/byte/dune__exe__Test_parser.cmo)
|
21
|
+
$ (cd _build/default && /home/jacob/projects/context-extractor/_opam/bin/js_of_ocaml link --source-map-inline -o test_parser.bc.js .test_parser.eobjs/jsoo/test_parser.bc.runtime.js .js/default/stdlib/stdlib.cma.js .js/default/compiler-libs.common/ocamlcommon.cma.js .js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js .js/default/js_of_ocaml/js_of_ocaml.cma.js .test_parser.eobjs/jsoo/dune__exe__Test_parser.cmo.js .js/default/stdlib/std_exit.cmo.js)
|
22
|
+
$ (cd _build/default && /home/jacob/projects/context-extractor/_opam/bin/ocamlc.opt -w @1..3@5..28@31..39@43@46..47@49..57@61..62@67@69-40 -strict-sequence -strict-formats -short-paths -keep-locs -g -o test_parser.bc-for-jsoo -no-check-prims -noautolink /home/jacob/projects/context-extractor/_opam/lib/ocaml/compiler-libs/ocamlcommon.cma /home/jacob/projects/context-extractor/_opam/lib/js_of_ocaml-compiler/runtime/jsoo_runtime.cma /home/jacob/projects/context-extractor/_opam/lib/js_of_ocaml/js_of_ocaml.cma .test_parser.eobjs/byte/dune__exe__Test_parser.cmo)
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jpoly1219/context-extractor",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.6",
|
4
4
|
"description": "Extract relevant context from an incomplete program sketch.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -12,7 +12,10 @@
|
|
12
12
|
"dist/"
|
13
13
|
],
|
14
14
|
"scripts": {
|
15
|
-
"build": "npx tsc &&
|
15
|
+
"build": "npx tsc && npm run copy-deps",
|
16
|
+
"copy-deps": "npm run copy-lsp-client && npm run copy-ocaml",
|
17
|
+
"copy-lsp-client": "shx cp -r ts-lsp-client-dist dist/",
|
18
|
+
"copy-ocaml": "shx mkdir -p dist/src/ocaml-utils/ && shx cp -r src/ocaml-utils/_build dist/src/ocaml-utils/_build/",
|
16
19
|
"test": "echo \"Error: no test specified\" && exit 1"
|
17
20
|
},
|
18
21
|
"author": "",
|
@@ -21,6 +24,7 @@
|
|
21
24
|
"json-rpc-2.0": "^1.7.0",
|
22
25
|
"openai": "^4.30.0",
|
23
26
|
"pino": "^9.3.1",
|
27
|
+
"shx": "^0.3.4",
|
24
28
|
"ts-node": "^10.9.2",
|
25
29
|
"tslib": "^2.6.3"
|
26
30
|
},
|