diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2020-08-25 20:44:01 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-08-26 10:43:13 -0400 |
commit | 770100e0266750a313b34a52a60968410fcf0769 (patch) | |
tree | 750d2ff949a65b8483f9ba4840aad9378ca17920 /utils | |
parent | fcb10b6c69e388d8c6e777baf39920e2cc694501 (diff) | |
download | haskell-770100e0266750a313b34a52a60968410fcf0769.tar.gz |
primops: Remove Monadic and Dyadic categories
There were four categories of primops: Monadic, Dyadic, Compare, GenPrimOp.
The compiler does not treat Monadic and Dyadic in any special way,
we can just replace them with GenPrimOp.
Compare is still used in isComparisonPrimOp.
Diffstat (limited to 'utils')
-rw-r--r-- | utils/genprimopcode/Lexer.x | 2 | ||||
-rw-r--r-- | utils/genprimopcode/Main.hs | 10 | ||||
-rw-r--r-- | utils/genprimopcode/Parser.y | 6 | ||||
-rw-r--r-- | utils/genprimopcode/ParserM.hs | 2 | ||||
-rw-r--r-- | utils/genprimopcode/Syntax.hs | 6 |
5 files changed, 2 insertions, 24 deletions
diff --git a/utils/genprimopcode/Lexer.x b/utils/genprimopcode/Lexer.x index 0de81f9614..13c776fe4a 100644 --- a/utils/genprimopcode/Lexer.x +++ b/utils/genprimopcode/Lexer.x @@ -44,8 +44,6 @@ words :- <0> "defaults" { mkT TDefaults } <0> "True" { mkT TTrue } <0> "False" { mkT TFalse } - <0> "Dyadic" { mkT TDyadic } - <0> "Monadic" { mkT TMonadic } <0> "Compare" { mkT TCompare } <0> "GenPrimOp" { mkT TGenPrimOp } <0> "fixity" { mkT TFixity } diff --git a/utils/genprimopcode/Main.hs b/utils/genprimopcode/Main.hs index 004199a9a4..a817c75a0d 100644 --- a/utils/genprimopcode/Main.hs +++ b/utils/genprimopcode/Main.hs @@ -836,16 +836,6 @@ mkPOI_RHS_text i TyF t1 (TyF _ _) -> "mkCompare " ++ sl_name i ++ ppType t1 _ -> error "Type error in comparison op" - Monadic - -> case ty i of - TyF t1 _ - -> "mkMonadic " ++ sl_name i ++ ppType t1 - _ -> error "Type error in monadic op" - Dyadic - -> case ty i of - TyF t1 (TyF _ _) - -> "mkDyadic " ++ sl_name i ++ ppType t1 - _ -> error "Type error in dyadic op" GenPrimOp -> let (argTys, resTy) = flatTys (ty i) tvs = nub (tvsIn (ty i)) diff --git a/utils/genprimopcode/Parser.y b/utils/genprimopcode/Parser.y index 89e61d5236..efcfee0889 100644 --- a/utils/genprimopcode/Parser.y +++ b/utils/genprimopcode/Parser.y @@ -36,8 +36,6 @@ import Syntax defaults { TDefaults } true { TTrue } false { TFalse } - dyadic { TDyadic } - monadic { TMonadic } compare { TCompare } genprimop { TGenPrimOp } fixity { TFixity } @@ -122,9 +120,7 @@ pWithOptions : with pOptions { $2 } | {- empty -} { [] } pCategory :: { Category } -pCategory : dyadic { Dyadic } - | monadic { Monadic } - | compare { Compare } +pCategory : compare { Compare } | genprimop { GenPrimOp } pDesc :: { String } diff --git a/utils/genprimopcode/ParserM.hs b/utils/genprimopcode/ParserM.hs index e98d6bb11a..6086f6795a 100644 --- a/utils/genprimopcode/ParserM.hs +++ b/utils/genprimopcode/ParserM.hs @@ -94,8 +94,6 @@ data Token = TEOF | TDefaults | TTrue | TFalse - | TDyadic - | TMonadic | TCompare | TGenPrimOp | TThatsAllFolks diff --git a/utils/genprimopcode/Syntax.hs b/utils/genprimopcode/Syntax.hs index 4dc6e7b2dc..3f1f3ef7dc 100644 --- a/utils/genprimopcode/Syntax.hs +++ b/utils/genprimopcode/Syntax.hs @@ -65,7 +65,7 @@ data Option -- categorises primops data Category - = Dyadic | Monadic | Compare | GenPrimOp + = Compare | GenPrimOp deriving Show -- types @@ -155,10 +155,6 @@ sanityPrimOp def_names p sane_ty :: Category -> Ty -> Bool sane_ty Compare (TyF t1 (TyF t2 td)) | t1 == t2 && td == TyApp (TyCon "Int#") [] = True -sane_ty Monadic (TyF t1 td) - | t1 == td = True -sane_ty Dyadic (TyF t1 (TyF t2 td)) - | t1 == td && t2 == td = True sane_ty GenPrimOp _ = True sane_ty _ _ |