From 89e56dcae63d643ac0de8f4a8f82e3b3f59b97d1 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Thu, 29 Nov 2012 02:10:45 -0500 Subject: [PATCH] Fix logic inversion in NormalizeParse --- src/Dyna/Analysis/NormalizeParse.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Dyna/Analysis/NormalizeParse.hs b/src/Dyna/Analysis/NormalizeParse.hs index 4934793..35bef9a 100644 --- a/src/Dyna/Analysis/NormalizeParse.hs +++ b/src/Dyna/Analysis/NormalizeParse.hs @@ -232,7 +232,7 @@ normRule (P.Rule h a es r T.:~ _) = do -- XXX dynaFunctorArgDispositions :: (DFunct, Int) -> [ArgDispos] dynaFunctorArgDispositions x = case x of - ("is", 2) -> [ADQuote,ADEval] + ("is", 2) -> [ADQuote,ADEval] -- evaluate arithmetic / math ("exp", 1) -> [ADEval] ("log", 1) -> [ADEval] @@ -241,9 +241,10 @@ dynaFunctorArgDispositions x = case x of ("or", 2) -> [ADEval, ADEval] ("not", 1) -> [ADEval] (name, arity) -> + -- If it starts with a nonalpha, it prefers to evaluate arguments let d = if C.isAlphaNum $ head $ BU.toString name - then ADEval - else ADQuote + then ADQuote + else ADEval in take arity $ repeat $ d -- XXX @@ -255,6 +256,7 @@ dynaFunctorSelfDispositions x = case x of ("false",0) -> SDQuote ("pair",2) -> SDQuote (name, arity) -> + -- If it starts with a nonalpha, it prefers to evaluate let d = if C.isAlphaNum $ head $ BU.toString name then SDInherit else SDEval -- 2.50.1