mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
eval pattern macroses
This commit is contained in:
@@ -300,8 +300,9 @@ patternMatch v0 ((env0,ps,args0,t):eqs) = match env0 ps eqs args0
|
|||||||
match env (PT ty p :ps) eqs args = match env (p:ps) eqs args
|
match env (PT ty p :ps) eqs args = match env (p:ps) eqs args
|
||||||
match env (PAlt p1 p2:ps) eqs args = match env (p1:ps) ((env,p2:ps,args,t):eqs) args
|
match env (PAlt p1 p2:ps) eqs args = match env (p1:ps) ((env,p2:ps,args,t):eqs) args
|
||||||
match env (PM q :ps) eqs args = do t <- getResDef q
|
match env (PM q :ps) eqs args = do t <- getResDef q
|
||||||
case t of
|
v <- eval [] t []
|
||||||
EPatt _ _ p -> match env (p:ps) eqs args
|
case v of
|
||||||
|
VPatt _ _ p -> match env (p:ps) eqs args
|
||||||
_ -> evalError $ hang "Expected pattern macro:" 4
|
_ -> evalError $ hang "Expected pattern macro:" 4
|
||||||
(pp t)
|
(pp t)
|
||||||
match env (PV v :ps) eqs (arg:args) = match ((v,arg):env) ps eqs args
|
match env (PV v :ps) eqs (arg:args) = match ((v,arg):env) ps eqs args
|
||||||
|
|||||||
Reference in New Issue
Block a user