about summary refs log tree commit diff
path: root/src/libexpr/lexer.l
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-09-27T19·43-0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-09-27T19·49-0400
commit95c74eae269b2b9e4bc514581b5caa1d80b54acc (patch)
treef8f36185fa71202a79ed320e2a413433f957ff63 /src/libexpr/lexer.l
parentf46612be96a70a188cd48462ac94089d3e95a36b (diff)
Allow dashes in identifiers
In Nixpkgs, the attribute in all-packages.nix corresponding to a
package is usually equal to the package name.  However, this doesn't
work if the package contains a dash, which is fairly common.  The
convention is to replace the dash with an underscore (e.g. "dbus-lib"
becomes "dbus_glib"), but that's annoying.  So now dashes are valid in
variable / attribute names, allowing you to write:

  dbus-glib = callPackage ../development/libraries/dbus-glib { };

and

  buildInputs = [ dbus-glib ];

Since we don't have a negation or subtraction operation in Nix, this
is unambiguous.
Diffstat (limited to 'src/libexpr/lexer.l')
-rw-r--r--src/libexpr/lexer.l2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l
index d46b66d9ff..b61d5ea771 100644
--- a/src/libexpr/lexer.l
+++ b/src/libexpr/lexer.l
@@ -78,7 +78,7 @@ static Expr * unescapeStr(SymbolTable & symbols, const char * s)
 %}
 
 
-ID          [a-zA-Z\_][a-zA-Z0-9\_\']*
+ID          [a-zA-Z\_][a-zA-Z0-9\_\'\-]*
 INT         [0-9]+
 PATH        [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+
 SPATH       \<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\>