File tree Expand file tree Collapse file tree 5 files changed +21
-13
lines changed Expand file tree Collapse file tree 5 files changed +21
-13
lines changed Original file line number Diff line number Diff line change 11[package ]
22name = " lambda_mountain"
3- version = " 1.11.77 "
3+ version = " 1.11.78 "
44authors = [" Andrew <andrew@subarctic.org>" ]
55license = " MIT"
66description = " Lambda Mountain"
Original file line number Diff line number Diff line change @@ -82,6 +82,13 @@ fragment < := λ(: l LocalVariable+U64)(: r GlobalVariable+U64). (: (
8282 (.expression( 'jb ))
8383) BranchConditional);
8484
85+ fragment branchtrue := λ(: _ Nil). (: (
86+ (.expression( 'jmp ))
87+ ) BranchConditional);
88+ fragment branchfalse := λ(: _ Nil). (: (
89+ (.expression( 'nop ))
90+ ) BranchConditional);
91+
8592fragment + := λ(: l LocalVariable+U8)(: r LocalVariable+U8). (: (
8693 (.program(
8794 \t 'mov \s (.expression l) \[ '%rbp \] , \s '%al \n
Original file line number Diff line number Diff line change @@ -7,11 +7,22 @@ macro ('match t ps) (tail(
77 (match-pats( (uuid term) ps (fail PatternMatchFailure_s) ))
88));
99
10- macro ('match-pats( term ps remainder )) (
10+ macro ('match-pats( term () remainder )) (
1111 remainder
1212);
1313
14- #macro ('match-pats( term matched return () )) ();
14+ macro ('match-pats( term (ps (lhs rhs)) remainder )) (
15+ (match-pats(
16+ term
17+ ps
18+ (if (match-pats-condition lhs) rhs remainder)
19+ ))
20+ );
21+
22+ macro ('match-pats-condition any) (
23+ (branchtrue())
24+ );
25+
1526#macro ('match-pats( term matched return (ps (lhs rhs)) )) (
1627# (match-pats( term matched return ps ))
1728# (if matched () (
Load Diff This file was deleted.
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments