mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
eb7d7780b1
This is needed to avoid this https://github.com/mesonbuild/meson/issues/13774 when we go back to making our subproject directory `src`.
1.6 KiB
1.6 KiB
Identifiers
An identifier is an ASCII character sequence that:
- Starts with a letter (
a-z
,A-Z
) or underscore (_
) - Can contain any number of:
- Letters (
a-z
,A-Z
) - Digits (
0-9
) - Underscores (
_
) - Apostrophes (
'
) - Hyphens (
-
)
- Letters (
- Is not one of the keywords
Syntax
identifier ~
[A-Za-z_][A-Za-z0-9_'-]*
Names
A name can be written as an identifier or a string literal.
Syntax
name → identifier | string
Names are used in attribute sets, let
bindings, and inherit
.
Two names are the same if they represent the same sequence of characters, regardless of whether they are written as identifiers or strings.
Keywords
These keywords are reserved and cannot be used as identifiers:
Note
The Nix language evaluator currently allows
or
to be used as a name in some contexts, for backwards compatibility reasons. Users are advised not to rely on this.There are long-standing issues with how
or
is parsed as a name, which can't be resolved without making a breaking change to the language.