diff options
Diffstat (limited to 'src/Interpreter.hs')
| -rw-r--r-- | src/Interpreter.hs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/Interpreter.hs b/src/Interpreter.hs index aa61be3..ce68270 100644 --- a/src/Interpreter.hs +++ b/src/Interpreter.hs @@ -46,21 +46,6 @@ traverseAndReplace param arg ast@AST { astNode = ASTHashMap hmap } = .> asPairs .> M.fromList } traverseAndReplace _ _ other = other -traverseAndRenameSymbol :: String -> String -> AST -> AST -traverseAndRenameSymbol name1 name2 ast@AST { astNode = ASTSymbol sym } - | sym == name1 = ast { astNode = ASTSymbol name2 } - | otherwise = ast -traverseAndRenameSymbol name1 name2 ast@AST { astNode = ASTFunctionCall body } = - ast { astNode = ASTFunctionCall $ (map (traverseAndRenameSymbol name1 name2) body) } -traverseAndRenameSymbol name1 name2 ast@AST { astNode = ASTVector vec } = - ast { astNode = ASTVector $ (map (traverseAndRenameSymbol name1 name2) vec) } -traverseAndRenameSymbol name1 name2 ast@AST { astNode = ASTHashMap hmap } = - ast { astNode = ASTHashMap $ M.assocs hmap - $> L.concatMap (\(a, b) -> [a, b]) - .> map (traverseAndRenameSymbol name1 name2) - .> asPairs .> M.fromList } -traverseAndRenameSymbol _ _ other = other - foldSymValPairs :: [(String, AST)] -> AST -> AST foldSymValPairs [] body = body foldSymValPairs ((sym, val):rest) body = @@ -227,23 +212,6 @@ evaluateImport asts = do stateEnv = emptyEnv { envImported = builtinEnv } } case args of - -- qualified import - [AST { astNode = ASTSymbol qualifier }, AST { astNode = ASTString path }] -> do - LState { stateEnv = evaledRawEnv } <- lift $ execStateT (runScriptFile path) initialState - let exportedEnvMap = envThis evaledRawEnv - - let mangle k = qualifier ++ ":" ++ k - let mangledExportsMap = M.mapKeys mangle exportedEnvMap - let nonMangledKeys = M.keys exportedEnvMap - let callWithAll (f:fs) x = callWithAll fs (f x) - callWithAll [] x = x - let traverseAndReplaceAllKeys = map (\k -> traverseAndRenameSymbol k (mangle k)) nonMangledKeys - let mangledTraversedMap = M.map (\a -> (callWithAll traverseAndReplaceAllKeys a)) mangledExportsMap - env <- getEnv - let importedEnv = envImported env - putImportedEnv $ M.union importedEnv mangledTraversedMap - return $ importAst { astNode = ASTUnit } - -- non-qualified import [AST { astNode = ASTString path }] -> do LState { stateEnv = evaledRawEnv } <- lift $ execStateT (runScriptFile path) initialState |
