Skip to content

Commit

Permalink
refactor for PR #1420
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaszcz committed Aug 3, 2022
1 parent 536f431 commit a65fa51
Show file tree
Hide file tree
Showing 18 changed files with 65 additions and 67 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module Juvix.Core.Data.BinderList where
module Juvix.Compiler.Core.Data.BinderList where

import Data.HashMap.Strict qualified as HashMap
import Data.List qualified as List
import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

data BinderList a = BinderList
{ _blLength :: Int,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Juvix.Core.Data.InfoTable where
module Juvix.Compiler.Core.Data.InfoTable where

import Juvix.Core.Language
import Juvix.Core.Language.Type
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Type

type IdentContext = HashMap Symbol Node

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
{-# HLINT ignore "Avoid restricted extensions" #-}
{-# HLINT ignore "Avoid restricted flags" #-}

module Juvix.Core.Evaluator where
module Juvix.Compiler.Core.Evaluator where

import Control.Exception qualified as Exception
import Data.HashMap.Strict ((!))
import GHC.Show
import Juvix.Core.Data.InfoTable
import Juvix.Core.Extra
import Juvix.Core.Language
import Juvix.Core.Language.Info qualified as Info
import Juvix.Compiler.Core.Data.InfoTable
import Juvix.Compiler.Core.Extra
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info qualified as Info

newtype EvalError = EvalError String

Expand Down
16 changes: 8 additions & 8 deletions src/Juvix/Core/Extra.hs → src/Juvix/Compiler/Core/Extra.hs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
module Juvix.Core.Extra
( module Juvix.Core.Extra,
module Juvix.Core.Extra.Base,
module Juvix.Core.Extra.Recursors,
module Juvix.Compiler.Core.Extra
( module Juvix.Compiler.Core.Extra,
module Juvix.Compiler.Core.Extra.Base,
module Juvix.Compiler.Core.Extra.Recursors,
)
where

import Data.HashSet qualified as HashSet
import Juvix.Core.Extra.Base
import Juvix.Core.Extra.Recursors
import Juvix.Core.Language
import Juvix.Core.Language.Info qualified as Info
import Juvix.Compiler.Core.Extra.Base
import Juvix.Compiler.Core.Extra.Recursors
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info qualified as Info

-- `isClosed` may short-circuit evaluation due to the use of `&&`, so it's not
-- entirely reducible to `getFreeVars` in terms of computation time.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module Juvix.Core.Extra.Base where
module Juvix.Compiler.Core.Extra.Base where

import Data.Functor.Identity
import Data.List qualified as List
import Juvix.Core.Language
import Juvix.Core.Language.Info qualified as Info
import Juvix.Core.Language.Info.BinderInfo
import Juvix.Core.Language.Type
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info qualified as Info
import Juvix.Compiler.Core.Language.Info.BinderInfo
import Juvix.Compiler.Core.Language.Type

{------------------------------------------------------------------------}
{- functions on Type -}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
module Juvix.Core.Extra.Recursors
( module Juvix.Core.Extra.Recursors,
module Juvix.Compiler.Core.Extra.Recursors
( module Juvix.Compiler.Core.Extra.Recursors,
BinderList,
)
where

import Data.Functor.Identity
import Juvix.Core.Data.BinderList (BinderList)
import Juvix.Core.Data.BinderList qualified as BL
import Juvix.Core.Extra.Base
import Juvix.Core.Language
import Juvix.Core.Language.Info.BinderInfo
import Juvix.Compiler.Core.Data.BinderList (BinderList)
import Juvix.Compiler.Core.Data.BinderList qualified as BL
import Juvix.Compiler.Core.Extra.Base
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info.BinderInfo

{---------------------------------------------------------------------------------}
{- General recursors on Node -}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@

{-# HLINT ignore "Avoid restricted flags" #-}

module Juvix.Core.Language
( module Juvix.Core.Language,
module Juvix.Core.Language.Base,
module Juvix.Compiler.Core.Language
( module Juvix.Compiler.Core.Language,
module Juvix.Compiler.Core.Language.Base,
)
where

{-
This file defines the tree representation of JuvixCore (Node datatype).
-}

import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

{---------------------------------------------------------------------------------}
{- Program tree datatype -}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
module Juvix.Core.Language.Base
module Juvix.Compiler.Core.Language.Base
( Info,
Key,
IsInfo,
module Juvix.Core.Language.Builtins,
module Juvix.Compiler.Core.Language.Builtins,
module Juvix.Prelude,
module Juvix.Prelude.Loc,
module Juvix.Syntax.Abstract.Name,
module Juvix.Compiler.Abstract.Data.Name,
Location,
Symbol,
Tag,
Index,
)
where

import Juvix.Core.Language.Builtins
import Juvix.Core.Language.Info (Info, IsInfo, Key)
import Juvix.Compiler.Abstract.Data.Name
import Juvix.Compiler.Core.Language.Builtins
import Juvix.Compiler.Core.Language.Info (Info, IsInfo, Key)
import Juvix.Prelude
import Juvix.Prelude.Loc
import Juvix.Syntax.Abstract.Name

type Location = Interval

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Juvix.Core.Language.Builtins where
module Juvix.Compiler.Core.Language.Builtins where

import Juvix.Prelude

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Juvix.Core.Language.Info where
module Juvix.Compiler.Core.Language.Info where

{-
This file defines Infos stored in JuvixCore Nodes. The Info data structure
Expand Down Expand Up @@ -35,7 +35,7 @@ lookupDefault a i =
fromDyn (HashMap.lookupDefault (toDyn a) (typeOf a) (i ^. infoMap)) impossible

(!) :: IsInfo a => Key a -> Info -> a
(!) k i = fromJust (Juvix.Core.Language.Info.lookup k i)
(!) k i = fromJust (Juvix.Compiler.Core.Language.Info.lookup k i)

insert :: IsInfo a => a -> Info -> Info
insert a i = Info (HashMap.insert (typeOf a) (toDyn a) (i ^. infoMap))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Juvix.Core.Language.Info.ArgsNumInfo where
module Juvix.Compiler.Core.Language.Info.ArgsNumInfo where

import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

newtype ArgsNumInfo = ArgsNumInfo
{ _infoArgsNum :: Int
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Juvix.Core.Language.Info.BinderInfo where
module Juvix.Compiler.Core.Language.Info.BinderInfo where

import Juvix.Core.Language.Base
import Juvix.Core.Language.Type
import Juvix.Compiler.Core.Language.Base
import Juvix.Compiler.Core.Language.Type

data BinderInfo = BinderInfo
{ _infoName :: Name,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module Juvix.Core.Language.Info.FreeVarsInfo where
module Juvix.Compiler.Core.Language.Info.FreeVarsInfo where

import Data.HashMap.Strict qualified as HashMap
import Juvix.Core.Extra
import Juvix.Core.Language
import Juvix.Core.Language.Info qualified as Info
import Juvix.Compiler.Core.Extra
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info qualified as Info

newtype FreeVarsInfo = FreeVarsInfo
{ -- map free variables to the number of their occurrences
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module Juvix.Core.Language.Info.IdentInfo where
module Juvix.Compiler.Core.Language.Info.IdentInfo where

import Data.HashMap.Strict qualified as HashMap
import Juvix.Core.Extra
import Juvix.Core.Language
import Juvix.Core.Language.Info qualified as Info
import Juvix.Compiler.Core.Extra
import Juvix.Compiler.Core.Language
import Juvix.Compiler.Core.Language.Info qualified as Info

newtype IdentInfo = IdentInfo
{ -- map symbols to the number of their occurrences
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Juvix.Core.Language.Info.LocationInfo where
module Juvix.Compiler.Core.Language.Info.LocationInfo where

import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

newtype LocationInfo = LocationInfo {_infoLocation :: Location}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Juvix.Core.Language.Info.NameInfo where
module Juvix.Compiler.Core.Language.Info.NameInfo where

import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

newtype NameInfo = NameInfo {_infoName :: Name}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Juvix.Core.Language.Info.TypeInfo where
module Juvix.Compiler.Core.Language.Info.TypeInfo where

import Juvix.Core.Language.Base
import Juvix.Core.Language.Type
import Juvix.Compiler.Core.Language.Base
import Juvix.Compiler.Core.Language.Type

newtype TypeInfo = TypeInfo {_infoType :: Type}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Juvix.Core.Language.Type where
module Juvix.Compiler.Core.Language.Type where

import Juvix.Core.Language.Base
import Juvix.Compiler.Core.Language.Base

data Type = Atomic Atom | Fun Type Type | Universe

Expand Down

0 comments on commit a65fa51

Please sign in to comment.