on master help sign in
javascript: handle special names
commit6086376512bc836db3b38af8cd54f6e66f644ce8 authorraichoo <raichoo@googlemail.com> dateWed 11 Sep 2013, 18:27 (13 years ago) parentaa8ab8f
1 file changed+12
src/IRTS/CodegenJavaScript.hs+12
src/IRTS/CodegenJavaScript.hs+12
@@ -313,11 +313,23 @@ translateNamespace :: Name -> String
313313translateNamespace (UN _) = idrNamespace
314314translateNamespace (NS _ ns) = idrNamespace ++ concatMap translateIdentifier ns
315315translateNamespace (MN _ _) = idrNamespace
316+translateNamespace (SN name) = idrNamespace ++ translateSpecialName name
317+translateNamespace NErased = idrNamespace
316318
317319translateName :: Name -> String
318320translateName (UN name) = translateIdentifier name
319321translateName (NS name _) = translateName name
320322translateName (MN i name) = translateIdentifier name ++ show i
323+translateName (SN name) = translateSpecialName name
324+translateName NErased = ""
325+
326+translateSpecialName :: SpecialName -> String
327+translateSpecialName name
328+ | WhereN i m n <- name = translateName m ++ translateName n ++ show i
329+ | InstanceN n s <- name = translateName n ++ concatMap translateIdentifier s
330+ | ParentN n s <- name = translateName n ++ translateIdentifier s
331+ | MethodN n <- name = translateName n
332+ | CaseN n <- name = translateName n
321333
322334translateConstant :: Const -> JS
323335translateConstant (I i) = JSNum (JSInt i)