about summary refs log tree commit diff
path: root/src/libexpr/nixexpr-ast.def
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2008-08-14T10·04+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2008-08-14T10·04+0000
commitefe4b690ae4de5f0adea99abb1176a64a099d433 (patch)
tree3ee26b49848b04b5f6dad8edc06509fe4d4ee067 /src/libexpr/nixexpr-ast.def
parentc03b729319997b4e38c3f586d7c76352228b22e7 (diff)
* Refactoring: combine functions that take an attribute set and
  functions that take a single argument (plain lambdas) into one AST
  node (Function) that contains a Pattern node describing the
  arguments.  Current patterns are single lazy arguments (VarPat) and
  matching against an attribute set (AttrsPat).

  This refactoring allows other kinds of patterns to be added easily,
  such as Haskell-style @-patterns, or list pattern matching.

Diffstat (limited to 'src/libexpr/nixexpr-ast.def')
-rw-r--r--src/libexpr/nixexpr-ast.def6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libexpr/nixexpr-ast.def b/src/libexpr/nixexpr-ast.def
index a57a48613e53..6b9cf95faf99 100644
--- a/src/libexpr/nixexpr-ast.def
+++ b/src/libexpr/nixexpr-ast.def
@@ -3,8 +3,7 @@ init initNixExprHelpers
 Pos | string int int | Pos |
 NoPos | | Pos |
 
-Function | ATermList Expr Pos | Expr |
-Function1 | string Expr Pos | Expr |
+Function | Pattern Expr Pos | Expr |
 Assert | Expr Expr Pos | Expr |
 With | Expr Expr Pos | Expr |
 If | Expr Expr Expr | Expr |
@@ -76,6 +75,9 @@ Inherit | Expr ATermList Pos | ATerm |
 
 Scope | | Expr |
 
+VarPat | string | Pattern |
+AttrsPat | ATermList | Pattern |
+
 Formal | string DefaultValue | ATerm |
 
 DefaultValue | Expr | DefaultValue |