@@ -29,13 +29,6 @@ import PureScript.Declarations
2929import PureScript.CodeGen.Common
3030import PureScript.CodeGen.Common.Gen
3131
32−identToJs :: Ident -> String
33−identToJs (Ident name) = name
34−identToJs (Op op) = concatMap opCharToString op
35− where
36− opCharToString :: Char -> String
37− opCharToString = (:) '$'. show . ord
38−
3932declToJs :: Declaration -> Maybe String
4033declToJs (ValueDeclaration ident val) = Just $ "var " ++ identToJs ident ++ " = " ++ valueToJs val ++ ";"
4134declToJs (DataDeclaration _ _ ctors) =
@@ -117,33 +110,33 @@ valueToJs = fromMaybe (error "Incomplete pattern") . pattern matchValue
117110 matchValue = buildPrettyPrinter operators (literals <|> fmap parens matchValue)
118111 operators :: OperatorTable Value String
119112 operators =
120− OperatorTable $ [ Wrap accessor $ \prop val -> val ++ "." ++ prop
121− , Wrap indexer $ \index val -> val ++ "[" ++ index ++ "]"
122− , Wrap app $ \args val -> val ++ "(" ++ args ++ ")"
123− , Split lam $ \args val -> "function (" ++ intercalate "," args ++ ") { return " ++ valueToJs val ++ "; }"
124− , binary LessThan "<"
125− , binary LessThanOrEqualTo "<="
126− , binary GreaterThan ">"
127− , binary GreaterThanOrEqualTo ">="
128− , unary Not "!"
129− , unary BitwiseNot "~"
130− , unary Negate "-"
131− , binary Multiply "*"
132− , binary Divide "/"
133− , binary Modulus "%"
134− , binary Concat "++"
135− , binary Add "+"
136− , binary Subtract "-"
137− , binary ShiftLeft "<<"
138− , binary ShiftRight ">>"
139− , binary ZeroFillShiftRight ">>>"
140− , binary EqualTo "==="
141− , binary NotEqualTo "!=="
142− , binary BitwiseAnd "&"
143− , binary BitwiseXor "^"
144− , binary BitwiseOr "|"
145− , binary And "&&"
146− , binary Or "||"
113+ OperatorTable $ [ [ Wrap accessor $ \prop val -> val ++ "." ++ prop ]
114+ , [ Wrap indexer $ \index val -> val ++ "[" ++ index ++ "]" ]
115+ , [ Wrap app $ \args val -> val ++ "(" ++ args ++ ")" ]
116+ , [ Split lam $ \args val -> "function (" ++ intercalate "," args ++ ") { return " ++ valueToJs val ++ "; }" ]
117+ , [ binary LessThan "<" ]
118+ , [ binary LessThanOrEqualTo "<=" ]
119+ , [ binary GreaterThan ">" ]
120+ , [ binary GreaterThanOrEqualTo ">=" ]
121+ , [ unary Not "!" ]
122+ , [ unary BitwiseNot "~" ]
123+ , [ unary Negate "-" ]
124+ , [ binary Multiply "*" ]
125+ , [ binary Divide "/" ]
126+ , [ binary Modulus "%" ]
127+ , [ binary Concat "++" ]
128+ , [ binary Add "+" ]
129+ , [ binary Subtract "-" ]
130+ , [ binary ShiftLeft "<<" ]
131+ , [ binary ShiftRight ">>" ]
132+ , [ binary ZeroFillShiftRight ">>>" ]
133+ , [ binary EqualTo "===" ]
134+ , [ binary NotEqualTo "!==" ]
135+ , [ binary BitwiseAnd "&" ]
136+ , [ binary BitwiseXor "^" ]
137+ , [ binary BitwiseOr "|" ]
138+ , [ binary And "&&" ]
139+ , [ binary Or "||" ]
147140 ]
148141
149142unaryOperatorString :: UnaryOperator -> String