on master help sign in
Give more reasonable names to incoming and outgoing ports
commit828c2c7372c8a60a7d078892c14df5a36c5ea0ac authorEvan Czaplicki <info@elm-lang.org> dateSun 12 Jan 2014, 15:37 (13 years ago) parent9c816d3
5 files changed+24−24
compiler/Parse/Declaration.hs+3−3 compiler/SourceSyntax/Declaration.hs+10−10 compiler/Transform/Check.hs+2−2 compiler/Transform/Declaration.hs+7−7 compiler/Type/Constrain/Declaration.hs+2−2
compiler/Parse/Declaration.hs+3−3
@@ -59,6 +59,6 @@ port =
5959 name <- lowVar
6060 whitespace
6161 let port' op ctor expr = do { try op ; whitespace ; ctor name <$> expr }
62− D.Port <$> choice [ port' hasType D.PortAnnotation Type.expr
63− , port' (string "<-") D.SendDefinition Expr.expr
64− , port' (string "->") D.RecvDefinition Expr.expr ]
62+ D.Port <$> choice [ port' hasType D.PPAnnotation Type.expr
63+ , port' (string "<-") D.PPOut Expr.expr
64+ , port' (string "->") D.PPIn Expr.expr ]
compiler/SourceSyntax/Declaration.hs+10−10
@@ -22,14 +22,14 @@ data Derivation = Json | JS | Binary | New
2222 deriving (Eq, Show)
2323
2424data ParsePort
25− = PortAnnotation String T.Type
26− | SendDefinition String Expr.LParseExpr
27− | RecvDefinition String Expr.LParseExpr
25+ = PPAnnotation String T.Type
26+ | PPOut String Expr.LParseExpr
27+ | PPIn String Expr.LParseExpr
2828 deriving (Show)
2929
3030data Port
31− = Send String Expr.LExpr T.Type
32− | Recv String Expr.LExpr T.Type
31+ = Out String Expr.LExpr T.Type
32+ | In String Expr.LExpr T.Type
3333 deriving (Show)
3434
3535type ParseDeclaration = Declaration' ParsePort Expr.ParseDef
@@ -100,15 +100,15 @@ instance (Pretty port, Pretty def) => Pretty (Declaration' port def) where
100100instance Pretty ParsePort where
101101 pretty port =
102102 case port of
103− PortAnnotation name tipe -> prettyPort name ":" tipe
104− SendDefinition name expr -> prettyPort name "<-" expr
105− RecvDefinition name expr -> prettyPort name "->" expr
103+ PPAnnotation name tipe -> prettyPort name ":" tipe
104+ PPOut name expr -> prettyPort name "<-" expr
105+ PPIn name expr -> prettyPort name "->" expr
106106
107107instance Pretty Port where
108108 pretty port =
109109 case port of
110− Send name expr tipe -> mkPort "<-" name expr tipe
111− Recv name expr tipe -> mkPort "->" name expr tipe
110+ Out name expr tipe -> mkPort "<-" name expr tipe
111+ In name expr tipe -> mkPort "->" name expr tipe
112112 where
113113 mkPort arrow name expr tipe =
114114 P.vcat [ prettyPort name ":" tipe
compiler/Transform/Check.hs+2−2
@@ -46,8 +46,8 @@ duplicates decls =
4646 (portNames, portExprs) =
4747 unzip $ flip map [ port | D.Port port <- decls ] $ \port ->
4848 case port of
49− D.Send name expr _ -> (name,expr)
50− D.Recv name expr _ -> (name,expr)
49+ D.Out name expr _ -> (name,expr)
50+ D.In name expr _ -> (name,expr)
5151
5252 getNames = Set.toList . Pattern.boundVars
5353
compiler/Transform/Declaration.hs+7−7
@@ -52,16 +52,16 @@ combineAnnotations = go
5252 -- combine ports
5353 Port port : portRest ->
5454 case port of
55− SendDefinition name _ -> Left (msg name)
56− RecvDefinition name _ -> Left (msg name)
57− PortAnnotation name tipe ->
55+ PPOut name _ -> Left (msg name)
56+ PPIn name _ -> Left (msg name)
57+ PPAnnotation name tipe ->
5858 case portRest of
59− Port (SendDefinition name' expr) : rest | name == name' ->
59+ Port (PPOut name' expr) : rest | name == name' ->
6060 do expr' <- exprCombineAnnotations expr
61− (:) (Port (Send name expr' tipe)) <$> go rest
61+ (:) (Port (Out name expr' tipe)) <$> go rest
6262
63− Port (RecvDefinition name' expr) : rest | name == name' ->
63+ Port (PPIn name' expr) : rest | name == name' ->
6464 do expr' <- exprCombineAnnotations expr
65− (:) (Port (Recv name expr' tipe)) <$> go rest
65+ (:) (Port (In name expr' tipe)) <$> go rest
6666
6767 _ -> Left (msg name)
compiler/Type/Constrain/Declaration.hs+2−2
@@ -47,9 +47,9 @@ toDefs decl =
4747
4848 Port port ->
4949 case port of
50− Send name expr@(L.L s _) tipe ->
50+ Out name expr@(L.L s _) tipe ->
5151 [ definition name (L.L s $ E.PortOut name tipe expr) tipe ]
52− Recv name expr@(L.L s _) tipe ->
52+ In name expr@(L.L s _) tipe ->
5353 unsafePerformIO $ do
5454 tvar <- Type.var Type.Flexible
5555 return $ [ definition name (L.L s $ E.PortIn name tipe tvar expr) tipe ]