From: Nathaniel Wesley Filardo Date: Thu, 29 Nov 2012 07:10:45 +0000 (-0500) Subject: Fix logic inversion in NormalizeParse X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=89e56dcae63d643ac0de8f4a8f82e3b3f59b97d1;p=dyna2 Fix logic inversion in NormalizeParse --- 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