Lexer: Allow "-" char in the middle of identifier names.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 2 Jan 2020 16:00:56 +0000 (16:00 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 2 Jan 2020 16:02:15 +0000 (16:02 +0000)
This allows eg maintainer-clean to be a goal name.

TODO
src/cmdline.ml
src/lexer.mll

diff --git a/TODO b/TODO
index 379bb14..3dfec23 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,5 +8,3 @@ might allow goals to be called with labelled parameters.
 
 Functions, eg. wildcard("*.c").  These should be defined as shell
 scripts with a selection of common functions defined in stdlib.
-
-Allow "-" character in identifiers, so eg. "goal maintainer-clean" works.
index cc20d76..b155298 100644 (file)
@@ -23,7 +23,7 @@ open Utils
 
 (* See also "let id" in [lexer.mll]. *)
 let var_regexp =
-  Str.regexp "\\([a-zA-Z_][a-zA-Z0-9_]*\\)[ \t]*=[ \t]*\\(.*\\)"
+  Str.regexp "\\([a-zA-Z_][-a-zA-Z0-9_]*\\)[ \t]*=[ \t]*\\(.*\\)"
 
 let usage =
   "\
index 84f2af2..fa73312 100644 (file)
@@ -34,7 +34,7 @@ let new_line lexbuf =
 let white = [' ' '\t']+
 let newline = '\r' | '\n' | "\r\n"
 let comment = '#' (_#'\n')*
-let id = ['a'-'z' 'A'-'Z' '_'] ['a'-'z' 'A'-'Z' '0'-'9' '_']*
+let id = ['a'-'z' 'A'-'Z' '_'] ['a'-'z' 'A'-'Z' '0'-'9' '_' '-']*
 
 rule read =
     parse