on master help sign in
Add some operators from F#: |>, <|, <<, and >>
commit29384b771a7ea8599472f2dc8abe416b4fcc0402 authorevancz <info@elm-lang.org> dateSun 21 Apr 2013, 13:59 (14 years ago) parent5b475ac
2 files changed+6−1
compiler/Gen/CompileToJS.hs+4 compiler/Parse/Binops.hs+2−1
compiler/Gen/CompileToJS.hs+4
@@ -325,7 +325,11 @@ binop (o:p) e1 e2
325325 "::" -> jsCons e1 e2
326326 "++" -> "_L.append" ++ parens (e1 ++ "," ++ e2)
327327 "$" -> e1 ++ parens e2
328+ "<|" -> e1 ++ parens e2
329+ "|>" -> e2 ++ parens e1
328330 "." -> jsFunc "x" . ret $ e1 ++ parens (e2 ++ parens "x")
331+ "<<" -> jsFunc "x" . ret $ e1 ++ parens (e2 ++ parens "x")
332+ ">>" -> jsFunc "x" . ret $ e2 ++ parens (e1 ++ parens "x")
329333 "^" -> "Math.pow(" ++ e1 ++ "," ++ e2 ++ ")"
330334 "==" -> "_N.eq(" ++ e1 ++ "," ++ e2 ++ ")"
331335 "/=" -> "!_N.eq(" ++ e1 ++ "," ++ e2 ++ ")"
compiler/Parse/Binops.hs+2−1
@@ -17,7 +17,7 @@ data Assoc = L | N | R deriving (Eq,Show)
1717type OpTable = [(Int, Assoc, String)]
1818
1919table :: OpTable
20−table = [ (9, R, ".")
20+table = [ (9, R, "."), (9, R, "<<"), (9, L, ">>")
2121 , (8, R, "^")
2222 , (7, L, "*"), (7, L, "/"), (7, L, "mod"), (7, L, "div"), (7, L, "rem")
2323 , (6, L, "+"), (6, L, "-")
@@ -28,6 +28,7 @@ table = [ (9, R, ".")
2828 , (3, R, "&&")
2929 , (2, R, "||")
3030 , (0, R, "$")
31+ , (0, R, "<|"), (0, L, "|>")
3132 ]
3233
3334opLevel op = Map.findWithDefault 9 op dict