summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Berlingieri2019-06-16 12:59:56 +0200
committerAndrea Berlingieri2019-06-16 12:59:56 +0200
commit732d47811578da728ae850bfc36f4bd137e875da (patch)
tree9df1db298bc76cc64bebcda20bd2c2354dcc562a
downloadaur-ulex08.tar.gz
First commit
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD32
-rw-r--r--ulex08-0.8.patch127
3 files changed, 174 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..0a7dc32a979a
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,15 @@
+pkgbase = ulex08
+ pkgdesc = OCaml lexer generator with Unicode support - CamlP5 version - version 0.8
+ pkgver = 0.8
+ pkgrel = 1
+ url = http://www.cduce.org/download.html
+ arch = x86_64
+ license = custom
+ makedepends = ocaml
+ makedepends = ocaml-findlib
+ makedepends = camlp5
+ source = ulex08-0.8::http://deb.debian.org/debian/pool/main/u/ulex0.8/ulex0.8_0.8.orig.tar.gz
+ md5sums = baf9fe9fc381c7824a2e0e368da5fa13
+
+pkgname = ulex08
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..1f23a52357a4
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Andrea Berlingieri <andrea.berlingieri42 at gmail dot com>
+pkgname=ulex08
+pkgver=0.8
+pkgrel=1
+pkgdesc="OCaml lexer generator with Unicode support - CamlP5 version - version 0.8"
+arch=('x86_64')
+url="http://www.cduce.org/download.html"
+license=('custom')
+#depends=('ocaml' 'expat' 'ocaml-findlib')
+makedepends=('ocaml' 'ocaml-findlib' 'camlp5')
+source=($pkgname-$pkgver::'http://deb.debian.org/debian/pool/main/u/ulex0.8/ulex0.8_0.8.orig.tar.gz')
+md5sums=('baf9fe9fc381c7824a2e0e368da5fa13')
+
+_name=ulex
+
+prepare() {
+ cd "${srcdir}/$_name-$pkgver"
+ patch -p1 -i "../../$pkgname-$pkgver.patch"
+}
+
+build() {
+ cd "${srcdir}/$_name-$pkgver"
+ env OCAMLPARAM="safe-string=0,_" make all all.opt
+}
+
+package() {
+ OCAMLFIND_DESTDIR="${pkgdir}$(ocamlfind printconf destdir)"
+ mkdir -p "$OCAMLFIND_DESTDIR"
+ cd "${srcdir}/$_name-$pkgver"
+ make DESTDIR="$OCAMLFIND_DESTDIR" install
+ install -Dm 644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/ulex08-0.8.patch b/ulex08-0.8.patch
new file mode 100644
index 000000000000..56140af892ef
--- /dev/null
+++ b/ulex08-0.8.patch
@@ -0,0 +1,127 @@
+diff --git a/META b/META
+index 1a3ce10..b2f25ef 100644
+--- a/META
++++ b/META
+@@ -1,5 +1,5 @@
+-version = "0.7"
+-requires = "camlp4"
++version = "0.8"
++requires = "camlp5"
+ description = "Runtime support for ulex"
+ archive(byte) = "ulexing.cma"
+ archive(native) = "ulexing.cmxa"
+diff --git a/Makefile b/Makefile
+index 44ddf92..283f8bb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,8 +4,9 @@ all: ulexing.cma pa_ulex.cma
+ all.opt: ulexing.cma ulexing.cmxa pa_ulex.cma
+
+
++DESTDIR=
+ install: all
+- ocamlfind install ulex META $(wildcard *.mli) $(wildcard *.cmi) $(wildcard *.a) $(wildcard *.cma) $(wildcard *.cmxa)
++ ocamlfind install -destdir $(DESTDIR) ulex08 META $(wildcard *.mli) $(wildcard *.cmi) $(wildcard *.a) $(wildcard *.cma) $(wildcard *.cmxa)
+
+ uninstall:
+ ocamlfind remove ulex
+@@ -19,7 +20,7 @@ ulexing.cmxa: $(ULEXING)
+ ocamlopt -a -o ulexing.cmxa $(ULEXING)
+
+ pa_ulex.cma: $(ULEX)
+- ocamlc -a -o pa_ulex.cma -pp 'camlp4o pa_extend.cmo q_MLast.cmo' -I +camlp4 $(ULEX)
++ ocamlc -a -o pa_ulex.cma -pp 'camlp5o pa_macro.cmo pa_extend.cmo q_MLast.cmo' -I +camlp5 $(ULEX)
+
+ pa_ulex.ml: pa_ulex.ml.src
+ ocaml mk_pa_ulex.ml
+@@ -28,14 +29,14 @@ clean:
+ rm -f *.cm* *~ test custom_ulexing *.o *.a *.html *.css pa_ulex.ml
+
+ view_test: pa_ulex.cma
+- camlp4o ./pa_ulex.cma pr_o.cmo -sep "\n" test.ml
++ camlp5o ./pa_ulex.cma pr_o.cmo -sep "\n" test.ml
+
+ run_test: ulexing.cma pa_ulex.cma
+- ocamlc -o test -pp 'camlp4o ./pa_ulex.cma' ulexing.cma test.ml
++ ocamlc -o test -pp 'camlp5o ./pa_ulex.cma' ulexing.cma test.ml
+ ./test
+
+ custom_ulexing: ulexing.cma pa_ulex.cma
+- ocamlc -o custom_ulexing -pp 'camlp4o ./pa_ulex.cma' ulexing.cma custom_ulexing.ml
++ ocamlc -o custom_ulexing -pp 'camlp5o ./pa_ulex.cma' ulexing.cma custom_ulexing.ml
+
+
+ doc:
+diff --git a/README b/README
+index f5eee7b..52080e0 100644
+--- a/README
++++ b/README
+@@ -142,7 +142,7 @@ Installation:
+
+ Compilation of OCaml files with lexer specifications:
+
+- ocamlfind ocamlc -c -package ulex -syntax camlp4o my_file.ml
++ ocamlfind ocamlc -c -package ulex -syntax camlp5o my_file.ml
+
+ When linking, you must also include the ulex package:
+ ocamlfind ocamlc -o my_prog -linkpkg -package ulex my_file.cmo
+diff --git a/mk_pa_ulex.ml b/mk_pa_ulex.ml
+index e9d7159..c36c84c 100644
+--- a/mk_pa_ulex.ml
++++ b/mk_pa_ulex.ml
+@@ -1,10 +1,4 @@
+ let s = float_of_string (String.sub (Sys.ocaml_version) 0 4) in
+-if (s < 3.09) then (
+ print_endline "Old camlp4 (loc)";
+ Sys.command "sed s/_loc/loc/ < pa_ulex.ml.src > pa_ulex.ml"
+-)
+-else (
+- print_endline "New camlp4 (_loc)";
+- Sys.command "cp pa_ulex.ml.src pa_ulex.ml"
+-)
+
+diff --git a/pa_ulex.ml.src b/pa_ulex.ml.src
+index a56bd01..643fcad 100644
+--- a/pa_ulex.ml.src
++++ b/pa_ulex.ml.src
+@@ -1,4 +1,4 @@
+-let _loc = (Lexing.dummy_pos,Lexing.dummy_pos)
++let _loc = Stdpp.dummy_loc
+
+ (* Named regexp *)
+
+@@ -135,6 +135,8 @@ let call_state auto state =
+ <:expr< $lid:f$ lexbuf >>
+
+
++let vala_None = IFDEF STRICT THEN Ploc.VaVal None ELSE None END
++
+ let gen_state auto _loc i (part,trans,final) =
+ let f = Printf.sprintf "__ulex_state_%i" i in
+ let p = partition_name part in
+@@ -142,11 +144,11 @@ let gen_state auto _loc i (part,trans,final) =
+ Array.mapi
+ (fun i j ->
+ <:patt< $int:string_of_int i$ >>,
+- None,
++ vala_None,
+ call_state auto j
+ ) trans in
+ let cases = Array.to_list cases in
+- let cases = cases @ [<:patt< _ >>, None, <:expr< Ulexing.backtrack lexbuf >>] in
++ let cases = cases @ [<:patt< _ >>, vala_None, <:expr< Ulexing.backtrack lexbuf >>] in
+ let body =
+ <:expr< match ($lid:p$ (Ulexing.next lexbuf))
+ with [ $list:cases$ ] >> in
+@@ -165,9 +167,9 @@ let gen_definition _loc l =
+ let rs = Array.map fst brs in
+ let auto = Ulex.compile rs in
+
+- let cases = Array.mapi (fun i (_,e) -> <:patt< $int:string_of_int i$ >>, None, e) brs in
++ let cases = Array.mapi (fun i (_,e) -> <:patt< $int:string_of_int i$ >>, vala_None, e) brs in
+ let cases = Array.to_list cases in
+- let cases = cases @ [<:patt< _ >>, None, <:expr< raise Ulexing.Error >>] in
++ let cases = cases @ [<:patt< _ >>, vala_None, <:expr< raise Ulexing.Error >>] in
+ let actions = <:expr< match __ulex_state_0 lexbuf with [ $list:cases$ ] >> in
+ let states = Array.mapi (gen_state auto _loc) auto in
+ let states = List.flatten (Array.to_list states) in