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.
This commit is contained in:
Eelco Dolstra 2012-09-27 15:43:08 -04:00
parent f46612be96
commit 95c74eae26
4 changed files with 9 additions and 4 deletions

View file

@ -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\.\_\-\+]+)*\>