diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-10-25T16·54+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-10-25T16·54+0000 |
commit | 37d7abd69402f0e7a78d4d2f2d78996409a8563a (patch) | |
tree | bf844e4486b0e055921583c4b7c2d3d843b34485 /src/libexpr/lexer.l | |
parent | f4d44a002688262d33093494a7fea1bb11b97ac9 (diff) |
* New language feature: with expressions.
The expression `with E1; E2' evaluates to E2 with all bindings in the attribute set E1 substituted. E.g., with {x = 123;}; x evaluates to 123. That is, the attribute set E1 is in scope in E2. This is particularly useful when importing files containing lots definitions. E.g., instead of let { inherit (import ./foo.nix) a b c d e f; body = ... a ... f ...; } we can now say with import ./foo.nix; ... a ... f ... I.e., we don't have to say what variables should be brought into scope.
Diffstat (limited to 'src/libexpr/lexer.l')
-rw-r--r-- | src/libexpr/lexer.l | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l index 9637fd304db7..78d08d072565 100644 --- a/src/libexpr/lexer.l +++ b/src/libexpr/lexer.l @@ -48,6 +48,7 @@ if { return IF; } then { return THEN; } else { return ELSE; } assert { return ASSERT; } +with { return WITH; } let { return LET; } rec { return REC; } inherit { return INHERIT; } |