haskell module Main where import frege.compiler.Phase.java(JAST(..), JITask, make) type family RenameFields (a :: *) :: * type instance RenameFields (JAST "FieldDeclDecl" a b ) = JAST "FieldDeclDecl" a (RenameFields b) type instance RenameFields (JAST "VarInitDecl" a b) = JAST "VarInitDecl" a (RenameFields b) type instance RenameFields (JAST "ModifierDecl" a b) = JAST "ModifierDecl" a (RenameFields b) type instance RenameFields (JAST "OtherDecl" a b) = JAST "OtherDecl" a (RenameFields b) type instance RenameFields a = a macro renameFields :: JITask -> JITask macro renameFields task = do transformedTask <- renameFields' task return $ make transformedTask renameFields' :: JITask -> JITask renameFields' task = do transformedAst <- transformAst (getAST task) return $ task { getAST = transformedAst } transformAst :: JAST String String -> JAST String String main :: IO () main = do let task = make sourceCode let transformedTask = renameFields task execute transformedTask


上一篇:
下一篇:
切换中文