diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2022-08-10 20:40:09 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2022-08-10 23:41:19 +0200 |
commit | efaed91a6007772acf066e7876c06462f4e68fd4 (patch) | |
tree | 9520557ac7fcca474af577cbe367a17ae6bde885 /src/Main.hs | |
parent | c90a5abf0eeded8ff8a4aaee5ef35674236ed197 (diff) |
Let statement
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Main.hs b/src/Main.hs index dc5ffd4..7c6d587 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -288,7 +288,7 @@ expect (SourceLine sline) p expr vars = do forM_ vars $ \name -> do cur <- gets (lookup name . tsVars) when (isJust cur) $ do - outLine OutputMatchFail (Just $ procName p) $ T.pack "variable '" `T.append` textVarName name `T.append` T.pack "' already exists on " `T.append` sline + outLine OutputError (Just $ procName p) $ T.pack "variable '" `T.append` textVarName name `T.append` T.pack "' already exists on " `T.append` sline throwError () modify $ \s -> s { tsVars = zip vars capture ++ tsVars s } @@ -336,6 +336,14 @@ runTest out opts test = do oldHandler <- liftIO $ installHandler processStatusChanged (CatchInfo sigHandler) Nothing flip catchError (const $ return ()) $ forM_ (testSteps test) $ \case + Let (SourceLine sline) name expr -> do + cur <- gets (lookup name . tsVars) + when (isJust cur) $ do + outLine OutputError Nothing $ T.pack "variable '" `T.append` textVarName name `T.append` T.pack "' already exists on " `T.append` sline + throwError () + value <- eval expr + modify $ \s -> s { tsVars = (name, value) : tsVars s } + Spawn pname nname -> do node <- getNode net nname void $ spawnOn (Right node) pname Nothing $ |