2
0
Эх сурвалжийг харах

Replace camlp5 with ppx_parser (#11860)

* Use ppx_parser instead of camlp5

* Port camlp5 parser to ppx_parser

* Add git url for ppx_parser

* Replace instances of Stream.Error ""

ppx_parser's default message is "Parse error."

* Remove unnecessarily added match expression

This previously did not have a match expression and it is not necessary

* remove some [%s s] noise

---------

Co-authored-by: Simon Krajewski <[email protected]>
tobil4sk 7 сар өмнө
parent
commit
a9d7988f1a
5 өөрчлөгдсөн 323 нэмэгдсэн , 325 устгасан
  1. 5 2
      haxe.opam
  2. 1 0
      src/dune
  3. 0 5
      src/syntax/dune
  4. 315 316
      src/syntax/grammar.ml
  5. 2 2
      src/syntax/parser.ml

+ 5 - 2
haxe.opam

@@ -19,8 +19,7 @@ build: [
 install: [make "install" "INSTALL_DIR=%{prefix}%"]
 remove: [make "uninstall" "INSTALL_DIR=%{prefix}%"]
 depends: [
-  ("ocaml" {>= "5.0"} & ("camlp5" {build}))
-    | ("ocaml" {>= "4.08" & < "5.0"} & ("camlp5" {build & = "8.00.03"}))
+  "ocaml"
   "ocamlfind" {build}
   "dune" {>= "1.11" & < "3.16"}
   "sedlex" {>= "2.0"}
@@ -28,6 +27,7 @@ depends: [
   "extlib" {>= "1.7.8"}
   "sha"
   "camlp-streams"
+  "ppx_parser"
   "conf-libpcre2-8"
   "conf-zlib"
   "conf-neko"
@@ -35,3 +35,6 @@ depends: [
   "ipaddr"
   "terminal_size"
 ]
+pin-depends: [
+  ["ppx_parser.dev" "git+https://github.com/tobil4sk/ppx_parser#relax-ocaml-constraint"]
+]

+ 1 - 0
src/dune

@@ -26,6 +26,7 @@
 	(modules (:standard \ haxe))
 	(preprocess (per_module
 		((pps sedlex.ppx) json lexer)
+		((pps ppx_parser) grammar)
 	))
 	(wrapped false)
 )

+ 0 - 5
src/syntax/dune

@@ -1,5 +0,0 @@
-(rule
-	(targets grammar.ml)
-	(deps grammar.mly)
-	(action (run %{bin:camlp5o} -impl grammar.mly -o %{targets}))
-)

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 315 - 316
src/syntax/grammar.ml


+ 2 - 2
src/syntax/parser.ml

@@ -189,7 +189,7 @@ let syntax_error error_msg ?(pos=None) s v =
 	syntax_error_with_pos error_msg p v
 
 let handle_stream_error msg s =
-	let err,pos = if msg = "" then begin
+	let err,pos = if msg = "Parse error." then begin
 		let tk,pos = next_token s in
 		(Unexpected tk),Some pos
 	end else
@@ -248,7 +248,7 @@ let decl_flag_to_module_field_flag (flag,p) = match flag with
 	| DExtern -> Some (AExtern,p)
 	| DFinal | DPublic | DStatic -> unsupported_decl_flag_module_field flag p
 
-let serror() = raise (Stream.Error "")
+let serror() = raise (Stream.Error "Parse error.")
 
 let magic_display_field_name = " - display - "
 let magic_type_path = { tpackage = []; tname = ""; tparams = []; tsub = None }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно