git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Factor out Sugar module
commitd32d9eb9ea06f0da86f2127a1bb0e5aa39b2058e authorPhil Freeman <paf31@cantab.net> dateFri 10 Jan 2014, 12:38 (13 years ago) parentd7c524c
8 files changed+58−34
purescript.cabal+15−14 src/Language/PureScript.hs+3−12 src/Language/PureScript/Sugar.hs+32 src/Language/PureScript/BindingGroups.hs → src/Language/PureScript/Sugar/BindingGroups.hs+1−1 src/Language/PureScript/CaseDeclarations.hs → src/Language/PureScript/Sugar/CaseDeclarations.hs+1−1 src/Language/PureScript/DoNotation.hs → src/Language/PureScript/Sugar/DoNotation.hs+2−2 src/Language/PureScript/Operators.hs → src/Language/PureScript/Sugar/Operators.hs+2−2 src/Language/PureScript/TypeDeclarations.hs → src/Language/PureScript/Sugar/TypeDeclarations.hs+2−2
purescript.cabal+15−14
@@ -1,5 +1,5 @@
11name: purescript
2−version: 0.2.9.3
2+version: 0.2.10
33cabal-version: >=1.8
44build-type: Simple
55license: MIT
@@ -18,18 +18,27 @@ library
1818 directory -any, filepath -any, mtl -any, parsec -any, syb -any,
1919 transformers -any, utf8-string -any
2020 exposed-modules: Data.Generics.Extras
21− Language.PureScript.Options
2221 Language.PureScript
22+ Language.PureScript.Options
23+ Language.PureScript.Declarations
24+ Language.PureScript.Kinds
25+ Language.PureScript.Names
26+ Language.PureScript.Types
27+ Language.PureScript.Unknown
28+ Language.PureScript.Values
29+ Language.PureScript.Scope
30+ Language.PureScript.Sugar
31+ Language.PureScript.Sugar.CaseDeclarations
32+ Language.PureScript.Sugar.DoNotation
33+ Language.PureScript.Sugar.TypeDeclarations
34+ Language.PureScript.Sugar.BindingGroups
35+ Language.PureScript.Sugar.Operators
2336 Language.PureScript.CodeGen
2437 Language.PureScript.CodeGen.Externs
2538 Language.PureScript.CodeGen.JS
2639 Language.PureScript.CodeGen.JS.AST
2740 Language.PureScript.CodeGen.Monad
2841 Language.PureScript.CodeGen.Optimize
29− Language.PureScript.Declarations
30− Language.PureScript.Kinds
31− Language.PureScript.Names
32− Language.PureScript.Operators
3342 Language.PureScript.Parser
3443 Language.PureScript.Parser.Common
3544 Language.PureScript.Parser.Declarations
@@ -48,14 +57,6 @@ library
4857 Language.PureScript.TypeChecker.Monad
4958 Language.PureScript.TypeChecker.Synonyms
5059 Language.PureScript.TypeChecker.Types
51− Language.PureScript.Types
52− Language.PureScript.Unknown
53− Language.PureScript.Values
54− Language.PureScript.CaseDeclarations
55− Language.PureScript.DoNotation
56− Language.PureScript.TypeDeclarations
57− Language.PureScript.BindingGroups
58− Language.PureScript.Scope
5960 exposed: True
6061 buildable: True
6162 hs-source-dirs: src
src/Language/PureScript.hs+3−12
@@ -23,24 +23,15 @@ import Language.PureScript.Parser as P
2323import Language.PureScript.CodeGen as P
2424import Language.PureScript.TypeChecker as P
2525import Language.PureScript.Pretty as P
26−import Language.PureScript.Operators as P
27−import Language.PureScript.CaseDeclarations as P
28−import Language.PureScript.TypeDeclarations as P
29−import Language.PureScript.BindingGroups as P
30−import Language.PureScript.DoNotation as P
26+import Language.PureScript.Sugar as P
3127import Language.PureScript.Options as P
3228
3329import Data.List (intercalate)
34−import Control.Monad (forM_, (>=>))
30+import Control.Monad (forM_)
3531
3632compile :: Options -> [Module] -> Either String (String, String, Environment)
3733compile opts ms = do
38− bracketted <- rebracket ms
39− desugared <- desugarDo
40− >=> desugarCasesModule
41− >=> desugarTypeDeclarationsModule
42− >=> (return . createBindingGroupsModule)
43− $ bracketted
34+ desugared <- desugar ms
4435 (_, env) <- runCheck $ forM_ desugared $ \(Module moduleName decls) -> typeCheckAll (ModuleName moduleName) decls
4536 let js = prettyPrintJS . map (optimize opts) . concatMap (flip (moduleToJs opts) env) $ desugared
4637 let exts = intercalate "\n" . map (flip moduleToPs env) $ desugared
src/Language/PureScript/Sugar.hsnew file+32
@@ -0,0 +1,32 @@
1+-----------------------------------------------------------------------------
2+--
3+-- Module : Language.PureScript.Sugar
4+-- Copyright : (c) Phil Freeman 2013
5+-- License : MIT
6+--
7+-- Maintainer : Phil Freeman <paf31@cantab.net>
8+-- Stability : experimental
9+-- Portability :
10+--
11+-- |
12+--
13+-----------------------------------------------------------------------------
14+
15+module Language.PureScript.Sugar (desugar, module S) where
16+
17+import Control.Monad
18+
19+import Language.PureScript.Declarations
20+
21+import Language.PureScript.Sugar.Operators as S
22+import Language.PureScript.Sugar.DoNotation as S
23+import Language.PureScript.Sugar.CaseDeclarations as S
24+import Language.PureScript.Sugar.TypeDeclarations as S
25+import Language.PureScript.Sugar.BindingGroups as S
26+
27+desugar :: [Module] -> Either String [Module]
28+desugar = rebracket
29+ >=> desugarDo
30+ >=> desugarCasesModule
31+ >=> desugarTypeDeclarationsModule
32+ >=> return . createBindingGroupsModule
src/Language/PureScript/BindingGroups.hs → src/Language/PureScript/Sugar/BindingGroups.hsrenamed+1−1
@@ -12,7 +12,7 @@
1212--
1313-----------------------------------------------------------------------------
1414
15−module Language.PureScript.BindingGroups (
15+module Language.PureScript.Sugar.BindingGroups (
1616 createBindingGroups,
1717 createBindingGroupsModule
1818) where
src/Language/PureScript/CaseDeclarations.hs → src/Language/PureScript/Sugar/CaseDeclarations.hsrenamed+1−1
@@ -12,7 +12,7 @@
1212--
1313-----------------------------------------------------------------------------
1414
15−module Language.PureScript.CaseDeclarations (
15+module Language.PureScript.Sugar.CaseDeclarations (
1616 desugarCases,
1717 desugarCasesModule
1818) where
src/Language/PureScript/DoNotation.hs → src/Language/PureScript/Sugar/DoNotation.hsrenamed+2−2
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.DoNotation
3+-- Module : Language.PureScript.Sugar.DoNotation
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -12,7 +12,7 @@
1212--
1313-----------------------------------------------------------------------------
1414
15−module Language.PureScript.DoNotation (
15+module Language.PureScript.Sugar.DoNotation (
1616 desugarDo
1717) where
1818
src/Language/PureScript/Operators.hs → src/Language/PureScript/Sugar/Operators.hsrenamed+2−2
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.Operators
3+-- Module : Language.PureScript.Sugar.Operators
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -14,7 +14,7 @@
1414
1515{-# LANGUAGE Rank2Types #-}
1616
17−module Language.PureScript.Operators (
17+module Language.PureScript.Sugar.Operators (
1818 rebracket
1919) where
2020
src/Language/PureScript/TypeDeclarations.hs → src/Language/PureScript/Sugar/TypeDeclarations.hsrenamed+2−2
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.TypeDeclarations
3+-- Module : Language.PureScript.Sugar.TypeDeclarations
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -12,7 +12,7 @@
1212--
1313-----------------------------------------------------------------------------
1414
15−module Language.PureScript.TypeDeclarations (
15+module Language.PureScript.Sugar.TypeDeclarations (
1616 desugarTypeDeclarations,
1717 desugarTypeDeclarationsModule
1818) where