aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/coqdep_lexer.mll
diff options
context:
space:
mode:
authorGravatar Gregory Malecha <gmalecha@cs.harvard.edu>2014-08-07 09:00:40 -0400
committerGravatar Pierre Boutillier <pierre.boutillier@pps.univ-paris-diderot.fr>2014-08-25 14:13:24 +0200
commit9bef662f678dfbeaa477b6d336a4bd141d102b91 (patch)
tree7bac188b13fa046f7d1e770726baeea21ebca2cf /tools/coqdep_lexer.mll
parentb3af682ed9c8615882a3afec498e2d7dbf071e87 (diff)
factored out require_modifiers + bug fix.
Conflicts: tools/coqdep_lexer.mll
Diffstat (limited to 'tools/coqdep_lexer.mll')
-rw-r--r--tools/coqdep_lexer.mll22
1 files changed, 16 insertions, 6 deletions
diff --git a/tools/coqdep_lexer.mll b/tools/coqdep_lexer.mll
index aadced8b0..025b94d44 100644
--- a/tools/coqdep_lexer.mll
+++ b/tools/coqdep_lexer.mll
@@ -82,11 +82,7 @@ let dot = '.' ( space+ | eof)
rule coq_action = parse
| "Require" space+
- { require_file lexbuf }
- | "Require" space+ "Export" space+
- { require_file lexbuf }
- | "Require" space+ "Import" space+
- { require_file lexbuf }
+ { require_modifiers lexbuf }
| "Local"? "Declare" space+ "ML" space+ "Module" space+
{ mllist := []; modules lexbuf }
| "Load" space+
@@ -123,13 +119,27 @@ and from_rule = parse
| _
{ syntax_error lexbuf }
+and require_modifiers = parse
+ | "(*"
+ { comment lexbuf; require_modifiers lexbuf }
+ | "Import" space+
+ { require_file lexbuf }
+ | "Export" space+
+ { require_file lexbuf }
+ | space+
+ { require_modifiers lexbuf }
+ | eof
+ { syntax_error lexbuf }
+ | _
+ { backtrack lexbuf ; require_file lexbuf }
+
and consume_require = parse
| "(*"
{ comment lexbuf; consume_require lexbuf }
| space+
{ consume_require lexbuf }
| "Require" space+
- { require_file lexbuf }
+ { require_modifiers lexbuf }
| eof
{ syntax_error lexbuf }
| _