on master help sign in
reprime when printing expressions and patterns
commit0e62924aaf00381629bcec0159d2bf78660ef196 authorEvan Czaplicki <info@elm-lang.org> dateWed 14 Aug 2013, 00:44 (13 years ago) parent9ec51f5
3 files changed+14−9
compiler/SourceSyntax/Expression.hs+6−6 compiler/SourceSyntax/Pattern.hs+2−2 compiler/SourceSyntax/PrettyPrint.hs+6−1
compiler/SourceSyntax/Expression.hs+6−6
@@ -75,24 +75,24 @@ instance Pretty (Expr t v) where
7575 Data "::" [hd,tl] -> pretty hd <+> P.text "::" <+> pretty tl
7676 Data "[]" [] -> P.text "[]"
7777 Data name es -> P.hang (P.text name) 2 (P.sep (map prettyParens es))
78− Access e x -> prettyParens e <> P.text "." <> P.text x
79− Remove e x -> P.braces (pretty e <+> P.text "-" <+> P.text x)
78+ Access e x -> prettyParens e <> P.text "." <> variable x
79+ Remove e x -> P.braces (pretty e <+> P.text "-" <+> variable x)
8080 Insert (Location.L _ (Remove e y)) x v ->
81− P.braces (pretty e <+> P.text "-" <+> P.text y <+> P.text "|" <+> P.text x <+> P.text "=" <+> pretty v)
81+ P.braces (pretty e <+> P.text "-" <+> variable y <+> P.text "|" <+> variable x <+> P.text "=" <+> pretty v)
8282 Insert e x v ->
83− P.braces (pretty e <+> P.text "|" <+> P.text x <+> P.text "=" <+> pretty v)
83+ P.braces (pretty e <+> P.text "|" <+> variable x <+> P.text "=" <+> pretty v)
8484
8585 Modify e fs ->
8686 P.braces $ P.hang (pretty e <+> P.text "|")
8787 4
8888 (commaSep $ map field fs)
8989 where
90− field (x,e) = P.text x <+> P.text "<-" <+> pretty e
90+ field (x,e) = variable x <+> P.text "<-" <+> pretty e
9191
9292 Record fs ->
9393 P.braces $ P.nest 2 (commaSep $ map field fs)
9494 where
95− field (x,e) = P.text x <+> P.text "=" <+> pretty e
95+ field (x,e) = variable x <+> P.text "=" <+> pretty e
9696
9797 Markdown _ -> P.text "[markdown| ... |]"
9898
compiler/SourceSyntax/Pattern.hs+2−2
@@ -27,8 +27,8 @@ instance Pretty Pattern where
2727 case pattern of
2828 PVar x -> variable x
2929 PLiteral lit -> pretty lit
30− PRecord fs -> PP.braces (commaCat $ map PP.text fs)
31− PAlias x p -> prettyParens p <+> PP.text "as" <+> PP.text x
30+ PRecord fs -> PP.braces (commaCat $ map variable fs)
31+ PAlias x p -> prettyParens p <+> PP.text "as" <+> variable x
3232 PAnything -> PP.text "_"
3333 PData "::" [hd,tl] -> parensIf isCons (pretty hd) <+> PP.text "::" <+> pretty tl
3434 where isCons = case hd of
compiler/SourceSyntax/PrettyPrint.hs+6−1
@@ -15,4 +15,9 @@ commaSep docs = sep (punctuate comma docs)
1515
1616parensIf bool doc = if bool then parens doc else doc
1717
18−variable x = parensIf (Help.isOp x) (text x)
18+variable x =
19+ if Help.isOp x then parens (text x)
20+ else text (reprime x)
21+
22+reprime :: String -> String
23+reprime = map (\c -> if c == '$' then '\'' else c)