@@ -28,7 +28,7 @@ codegenJavaScript
28codegenJavaScript definitions filename outputType = do
28codegenJavaScript definitions filename outputType = do
29 path <- getDataDir
29 path <- getDataDir
30 idrRuntime <- readFile (path ++ "/js/Runtime.js")
30 idrRuntime <- readFile (path ++ "/js/Runtime.js")
31− writeFile filename (modules ++ idrRuntime ++ functions ++ mainLoop)
31+ writeFile filename (idrRuntime ++ modules ++ functions ++ mainLoop)
33 def = map (first translateNamespace) definitions
33 def = map (first translateNamespace) definitions
@@ -97,16 +97,16 @@ translateName (MN i name) = translateIdentifier name ++ show i
98translateConstant :: Const -> String
98translateConstant :: Const -> String
99translateConstant (I i) = show i
99translateConstant (I i) = show i
100−translateConstant (BI i) = "__IDR__.bigInt('" ++ show i ++ "')"
100+translateConstant (BI i) = "__IDRRT__.bigInt('" ++ show i ++ "')"
101translateConstant (Fl f) = show f
101translateConstant (Fl f) = show f
102translateConstant (Ch c) = show c
102translateConstant (Ch c) = show c
103translateConstant (Str s) = show s
103translateConstant (Str s) = show s
104−translateConstant IType = "__IDR__.Int"
104+translateConstant IType = "__IDRRT__.Int"
105−translateConstant ChType = "__IDR__.Char"
105+translateConstant ChType = "__IDRRT__.Char"
106−translateConstant StrType = "__IDR__.String"
106+translateConstant StrType = "__IDRRT__.String"
107−translateConstant BIType = "__IDR__.Integer"
107+translateConstant BIType = "__IDRRT__.Integer"
108−translateConstant FlType = "__IDR__.Float"
108+translateConstant FlType = "__IDRRT__.Float"
109−translateConstant Forgot = "__IDR__.Forgot"
109+translateConstant Forgot = "__IDRRT__.Forgot"
110translateConstant c =
110translateConstant c =
111 "(function(){throw 'Unimplemented Const: " ++ show c ++ "';})()"
111 "(function(){throw 'Unimplemented Const: " ++ show c ++ "';})()"
@@ -163,7 +163,7 @@ translateExpression (SApp False name vars) =
163 createTailcall $ translateFunctionCall name vars
163 createTailcall $ translateFunctionCall name vars
165translateExpression (SApp True name vars) =
165translateExpression (SApp True name vars) =
166− "new __IDR__.Tailcall("
166+ "new __IDRRT__.Tailcall("
167 ++ "function(){\n"
167 ++ "function(){\n"
168 ++ "return " ++ translateFunctionCall name vars
168 ++ "return " ++ translateFunctionCall name vars
169 ++ ";\n});"
169 ++ ";\n});"
@@ -256,13 +256,13 @@ translateExpression (SOp op vars)
256 | LIntStr <- op
256 | LIntStr <- op
257 , (arg:_) <- vars = "String(" ++ translateVariableName arg ++ ")"
257 , (arg:_) <- vars = "String(" ++ translateVariableName arg ++ ")"
258 | LIntBig <- op
258 | LIntBig <- op
259− , (arg:_) <- vars = "__IDR__.bigInt(" ++ translateVariableName arg ++ ")"
259+ , (arg:_) <- vars = "__IDRRT__.bigInt(" ++ translateVariableName arg ++ ")"
260 | LBigInt <- op
260 | LBigInt <- op
261 , (arg:_) <- vars = translateVariableName arg ++ ".valueOf()"
261 , (arg:_) <- vars = translateVariableName arg ++ ".valueOf()"
262 | LBigStr <- op
262 | LBigStr <- op
263 , (arg:_) <- vars = translateVariableName arg ++ ".toString()"
263 , (arg:_) <- vars = translateVariableName arg ++ ".toString()"
264 | LStrBig <- op
264 | LStrBig <- op
265− , (arg:_) <- vars = "__IDR__.bigInt(" ++ translateVariableName arg ++ ")"
265+ , (arg:_) <- vars = "__IDRRT__.bigInt(" ++ translateVariableName arg ++ ")"
266 | LFloatStr <- op
266 | LFloatStr <- op
267 , (arg:_) <- vars = "String(" ++ translateVariableName arg ++ ")"
267 , (arg:_) <- vars = "String(" ++ translateVariableName arg ++ ")"
268 | LStrFloat <- op
268 | LStrFloat <- op
@@ -325,7 +325,7 @@ translateExpression (SError msg) =
325 "(function(){throw \'" ++ msg ++ "\';})();"
325 "(function(){throw \'" ++ msg ++ "\';})();"
327translateExpression (SForeign _ _ "putStr" [(FString, var)]) =
327translateExpression (SForeign _ _ "putStr" [(FString, var)]) =
328− "__IDR__.print(" ++ translateVariableName var ++ ");"
328+ "__IDRRT__.print(" ++ translateVariableName var ++ ");"
330translateExpression (SForeign _ _ fun args) =
330translateExpression (SForeign _ _ fun args) =
@@ -348,7 +348,7 @@ translateExpression (SCase var cases) =
350translateExpression (SCon i name vars) =
350translateExpression (SCon i name vars) =
351− concat [ "new __IDR__.Con("
351+ concat [ "new __IDRRT__.Con("
354 , intercalate "," $ map translateVariableName vars
354 , intercalate "," $ map translateVariableName vars
@@ -391,7 +391,7 @@ translateCase var (SConstCase cst e) =
391 createIfBlock cond (translateExpression e)
391 createIfBlock cond (translateExpression e)
393translateCase var (SConCase a i name vars e) =
393translateCase var (SConCase a i name vars e) =
394− let isCon = var ++ " instanceof __IDR__.Con"
394+ let isCon = var ++ " instanceof __IDRRT__.Con"
395 isI = show i ++ " == " ++ var ++ ".i"
395 isI = show i ++ " == " ++ var ++ ".i"
396 params = intercalate "," $ map (("__var_" ++) . show) [a..(a+length vars)]
396 params = intercalate "," $ map (("__var_" ++) . show) [a..(a+length vars)]
397 args = ".apply(this," ++ var ++ ".vars)"
397 args = ".apply(this," ++ var ++ ".vars)"
@@ -406,7 +406,7 @@ translateTypeMatch :: String -> String -> SExp -> String
406translateTypeMatch var ty exp =
406translateTypeMatch var ty exp =
407 let e = translateExpression exp in
407 let e = translateExpression exp in
408 createIfBlock (var
408 createIfBlock (var
409− ++ " instanceof __IDR__.Type && "
409+ ++ " instanceof __IDRRT__.Type && "
410 ++ var ++ ".type == '"++ ty ++"'") e
410 ++ var ++ ".type == '"++ ty ++"'") e
@@ -416,7 +416,7 @@ createIfBlock cond e =
416 ++ ";\n}"
416 ++ ";\n}"
418createTailcall call =
418createTailcall call =
419− "__IDR__.tailcall(function(){return " ++ call ++ "})"
419+ "__IDRRT__.tailcall(function(){return " ++ call ++ "})"
421translateFunctionCall name vars =
421translateFunctionCall name vars =
422 concat (intersperse "." $ translateNamespace name)
422 concat (intersperse "." $ translateNamespace name)