[Pkg-ocaml-maint-commits] [cppo] 02/09: Imported Upstream version 1.0.1
Stéphane Glondu
glondu at moszumanska.debian.org
Thu Sep 3 12:38:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
glondu pushed a commit to branch master
in repository cppo.
commit d41800aa6ca1a3d35823b70c7b543c4cb7821e74
Author: Stephane Glondu <steph at glondu.net>
Date: Thu Sep 3 14:21:45 2015 +0200
Imported Upstream version 1.0.1
---
.gitignore | 1 +
Makefile | 5 ++--
cppo_parser.mly | 17 +++----------
ocamlbuild_plugin/ocamlbuild_cppo.ml | 2 +-
test.cppo | 1 -
test/Makefile | 11 +++++++--
test/cond.cppo | 47 ++++++++++++++++++++++++++++++++++++
7 files changed, 65 insertions(+), 19 deletions(-)
diff --git a/.gitignore b/.gitignore
index 160ccab..0baddb0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
*.o
*.a
*.annot
+*.automaton
cppo_lexer.ml
cppo_parser.mli
cppo_parser.ml
diff --git a/Makefile b/Makefile
index 5c920a0..7e4e009 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-VERSION = 1.0.0
+VERSION = 1.0.1
ifeq "$(shell ocamlc -config |grep os_type)" "os_type: Win32"
EXE=.exe
@@ -98,5 +98,6 @@ clean:
rm -f *.cm[iox] *.o *.annot *.conflicts *.automaton \
cppo \
cppo_parser.mli cppo_parser.ml cppo_lexer.ml cppo_version.ml
- cd examples; $(MAKE) clean
+ $(MAKE) -C examples clean
+ $(MAKE) -C test clean
cd ocamlbuild_plugin; ocamlbuild -clean
diff --git a/cppo_parser.mly b/cppo_parser.mly
index 6cbe59e..b28bd9a 100644
--- a/cppo_parser.mly
+++ b/cppo_parser.mly
@@ -1,4 +1,3 @@
-/* $Id$ */
%{
open Printf
open Cppo_types
@@ -168,18 +167,6 @@ node:
| IFDEF full_node_list0 elif_list error
{ error (fst $1) "missing #endif" }
-| IF test full_node_list0 ELSE full_node_list0 ENDIF
- { `Cond ((fst $1, snd $6), $2, $3, $5) }
-
-| IF test full_node_list0 ELSE full_node_list0 error
- { error $1 "missing #endif" }
-
-| IFDEF full_node_list0 ELSE full_node_list0 ENDIF
- { `Cond ((fst (fst $1), snd $5), (snd $1), $2, $4) }
-
-| IFDEF full_node_list0 ELSE full_node_list0 error
- { error (fst $1) "missing #endif" }
-
| LINE { `Line $1 }
;
@@ -189,6 +176,10 @@ elif_list:
{ let pos1, _ = $1 in
let pos2 = Parsing.rhs_end_pos 4 in
((pos1, pos2), $2, $3) :: $4 }
+| ELSE full_node_list0
+ { let pos1, _ = $1 in
+ let pos2 = Parsing.rhs_end_pos 2 in
+ [ ((pos1, pos2), `True, $2) ] }
| { [] }
;
diff --git a/ocamlbuild_plugin/ocamlbuild_cppo.ml b/ocamlbuild_plugin/ocamlbuild_cppo.ml
index 42cf246..61ff6dc 100644
--- a/ocamlbuild_plugin/ocamlbuild_cppo.ml
+++ b/ocamlbuild_plugin/ocamlbuild_cppo.ml
@@ -24,7 +24,7 @@ let dispatcher = function
if Pathname.is_directory s then [] else [s]) ;
flag ["cppo"; "cppo_q"] (A "-q") ;
flag ["cppo"; "cppo_s"] (A "-s") ;
- flag ["cppo"; "cppo_s"] (A "-n") ;
+ flag ["cppo"; "cppo_n"] (A "-n") ;
pflag ["cppo"] "cppo_x" (fun s -> S [A "-x"; A s])
end
| _ -> ()
diff --git a/test.cppo b/test.cppo
index 551c749..39a08ba 100644
--- a/test.cppo
+++ b/test.cppo
@@ -13,7 +13,6 @@ f(3)
"g" is not defined
#endif
-
#define a(x) b()
#define b(x) a()
a()
diff --git a/test/Makefile b/test/Makefile
index 5c37a29..8e2048f 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,6 +1,7 @@
-.PHONY: all ext comments
+TESTS = ext comments cond
+.PHONY: all clean $(TESTS)
-all: ext comments
+all: $(TESTS)
ext:
../cppo -x rot13:"tr '[a-z]' '[n-za-m]'" \
@@ -11,3 +12,9 @@ ext:
comments:
../cppo comments.cppo > comments.out
diff -u comments.ref comments.out
+
+cond:
+ ../cppo cond.cppo > cond.out
+
+clean:
+ rm -f *~ *.out
diff --git a/test/cond.cppo b/test/cond.cppo
new file mode 100644
index 0000000..b5f0c49
--- /dev/null
+++ b/test/cond.cppo
@@ -0,0 +1,47 @@
+#if 1 = 1
+#else
+#error "ignored #else (?)"
+#endif
+
+#if true
+ banana
+#elif false
+ apple
+ #error "ignored #elif (?)"
+#endif
+
+#if false
+ earthworm
+ #error ""
+#elif true
+ apricot
+#endif
+
+#if false
+ cuckoo
+ #error ""
+#else
+ #if false
+ egg
+ #error ""
+ #else
+ nest
+ #endif
+#endif
+
+#define X 3
+
+#if false
+ helicopter
+ #error ""
+#elif false
+ ocean
+ #error ""
+#else
+ #if X = 12
+ sand
+ #error ""
+ #elif 4 * X = 12
+ sea urchin
+ #endif
+#endif
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/cppo.git
More information about the Pkg-ocaml-maint-commits
mailing list