From 5fe9222b36ad49d74c84edb04d6bc4a7d844be01 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 26 Oct 2004 22:54:26 +0000 Subject: * Don't use ATmake / ATmatch anymore, nor the ATMatcher class. Instead we generate data bindings (build and match functions) for the constructors specified in `constructors.def'. In particular this removes the conversions between AFuns and strings, and Nix expression evaluation now seems 3 to 4 times faster. --- src/libexpr/constructors.def | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/libexpr/constructors.def (limited to 'src/libexpr/constructors.def') diff --git a/src/libexpr/constructors.def b/src/libexpr/constructors.def new file mode 100644 index 000000000..497cd33c3 --- /dev/null +++ b/src/libexpr/constructors.def @@ -0,0 +1,53 @@ +Pos | string int int | Pos | +NoPos | | Pos | + +Function | ATermList Expr Pos | Expr | +Function1 | string Expr Pos | Expr | +Assert | Expr Expr Pos | Expr | +With | Expr Expr Pos | Expr | +If | Expr Expr Expr | Expr | +OpNot | Expr | Expr | +OpEq | Expr Expr | Expr | +OpNEq | Expr Expr | Expr | +OpAnd | Expr Expr | Expr | +OpOr | Expr Expr | Expr | +OpImpl | Expr Expr | Expr | +OpUpdate | Expr Expr | Expr | +SubPath | Expr Expr | Expr | +OpHasAttr | Expr string | Expr | +OpPlus | Expr Expr | Expr | +Call | Expr Expr | Expr | +Select | Expr string | Expr | +Var | string | Expr | +Int | int | Expr | +Str | string | Expr | +Path | string | Expr | +Uri | string | Expr | +List | ATermList | Expr | +BlackHole | | Expr | +Undefined | | Expr | +PrimOp | int ATermBlob ATermList | Expr | +Attrs | ATermList | Expr | +Closed | Expr | Expr | +Rec | ATermList ATermList | Expr | +Bool | ATerm | Expr | +Null | | Expr | + +Bind | string Expr Pos | ATerm | +Bind | string Expr | ATerm | Bind2 +Inherit | Expr ATermList Pos | ATerm | + +Scope | | Expr | + +NoDefFormal | string | ATerm | +DefFormal | string Expr | ATerm | + +True | | ATerm | +False | | ATerm | + +PrimOpDef | int ATermBlob | ATerm | + +AttrRHS | Expr Pos | ATerm | + +eTrue = makeBool(makeTrue()) +eFalse = makeBool(makeFalse()) -- cgit v1.2.3