aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Interpreter.hs32
-rw-r--r--src/Parser.hs3
2 files changed, 2 insertions, 33 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
diff --git a/src/Parser.hs b/src/Parser.hs
index 20a1454..fa806fd 100644
--- a/src/Parser.hs
+++ b/src/Parser.hs
@@ -5,6 +5,7 @@ module Parser (
import qualified Data.Map as M
import qualified Data.List as L
import qualified Data.Maybe as MB
+import Control.Monad.State
import Control.Monad.Except
import Text.Regex.TDFA
import Utils
@@ -74,4 +75,4 @@ _parse acc (token:rest) =
_parse (parseToken token : acc) rest
parse :: [Token] -> LContext [AST]
-parse = _parse [] \ No newline at end of file
+parse = _parse []