on master help sign in
Switch AST over to Elm.String and Elm.Float / use parse snippets for doc comments

These changes have small echos in the rest of the compiler, but nothing that's a super big deal.

commit83aae2eaa2b2c0d3fe2d7c51057013ebd55bc766 authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 3 Jun 2019, 10:59 (7 years ago) parent8906d99
3 files changed+29−38
compiler/src/AST/Canonical.hs+8−7 compiler/src/AST/Optimized.hs+5−4 compiler/src/AST/Source.hs+16−27
compiler/src/AST/Canonical.hs+8−7
@@ -56,13 +56,14 @@ import Data.Binary
5656import qualified Data.List as List
5757import qualified Data.Map as Map
5858import Data.Name (Name)
59−import qualified Data.Utf8 as Utf8
6059
6160import qualified AST.Source as Src
6261import qualified AST.Utils.Binop as Binop
6362import qualified AST.Utils.Shader as Shader
6463import qualified Data.Index as Index
64+import qualified Elm.Float as EF
6565import qualified Elm.ModuleName as ModuleName
66+import qualified Elm.String as ES
6667import qualified Reporting.Annotation as A
6768
6869
@@ -83,10 +84,10 @@ data Expr_
8384 | VarCtor CtorOpts ModuleName.Canonical Name Index.ZeroBased Annotation
8485 | VarDebug ModuleName.Canonical Name Annotation
8586 | VarOperator Name ModuleName.Canonical Name Annotation -- CACHE real name for optimization
86− | Chr Utf8.String
87− | Str Utf8.String
87+ | Chr ES.String
88+ | Str ES.String
8889 | Int Int
89− | Float (Utf8.Under256 Float)
90+ | Float EF.Float
9091 | List [Expr]
9192 | Negate Expr
9293 | Binop Name ModuleName.Canonical Name Annotation Expr Expr -- CACHE real name for optimization
@@ -151,8 +152,8 @@ data Pattern_
151152 | PList [Pattern]
152153 | PCons Pattern Pattern
153154 | PBool Union Bool
154− | PChr Utf8.String
155− | PStr Utf8.String
155+ | PChr ES.String
156+ | PStr ES.String
156157 | PInt Int
157158 | PCtor
158159 { _p_home :: ModuleName.Canonical
@@ -232,7 +233,7 @@ data Module =
232233 Module
233234 { _name :: ModuleName.Canonical
234235 , _exports :: Exports
235− , _docs :: Maybe Src.Docs
236+ , _docs :: Src.Docs
236237 , _decls :: Decls
237238 , _unions :: Map.Map Name Union
238239 , _aliases :: Map.Map Name Alias
compiler/src/AST/Optimized.hs+5−4
@@ -27,14 +27,15 @@ import qualified Data.Map as Map
2727import qualified Data.Name as Name
2828import Data.Name (Name)
2929import qualified Data.Set as Set
30−import qualified Data.Utf8 as Utf8
3130
3231import qualified AST.Canonical as Can
3332import qualified AST.Utils.Shader as Shader
3433import qualified Data.Index as Index
34+import qualified Elm.Float as EF
3535import qualified Elm.Kernel as K
3636import qualified Elm.ModuleName as ModuleName
3737import qualified Elm.Package as Pkg
38+import qualified Elm.String as ES
3839import qualified Optimize.DecisionTree as DT
3940import qualified Reporting.Annotation as A
4041
@@ -45,10 +46,10 @@ import qualified Reporting.Annotation as A
4546
4647data Expr
4748 = Bool Bool
48− | Chr Utf8.String
49− | Str Utf8.String
49+ | Chr ES.String
50+ | Str ES.String
5051 | Int Int
51− | Float (Utf8.Under256 Float)
52+ | Float EF.Float
5253 | VarLocal Name
5354 | VarGlobal Global
5455 | VarEnum Global Index.ZeroBased
compiler/src/AST/Source.hs+16−27
@@ -1,5 +1,4 @@
11{-# OPTIONS_GHC -Wall #-}
2−{-# LANGUAGE OverloadedStrings #-}
32module AST.Source
43 ( Expr, Expr_(..), VarType(..)
54 , Def(..)
@@ -26,12 +25,13 @@ module AST.Source
2625
2726
2827import Data.Name (Name)
29−import qualified Data.Utf8 as Utf8
30−import Data.Word (Word8)
31−import Foreign.Ptr (Ptr)
28+import qualified Data.Name as Name
3229
3330import qualified AST.Utils.Binop as Binop
3431import qualified AST.Utils.Shader as Shader
32+import qualified Elm.Float as EF
33+import qualified Elm.String as ES
34+import qualified Parse.Primitives as P
3535import qualified Reporting.Annotation as A
3636
3737
@@ -43,10 +43,10 @@ type Expr = A.Located Expr_
4343
4444
4545data Expr_
46− = Chr Utf8.String
47− | Str Utf8.String
46+ = Chr ES.String
47+ | Str ES.String
4848 | Int Int
49− | Float (Utf8.Under256 Float)
49+ | Float EF.Float
5050 | Var VarType Name
5151 | VarQual VarType Name Name
5252 | List [Expr]
@@ -97,8 +97,8 @@ data Pattern_
9797 | PCtorQual A.Region Name Name [Pattern]
9898 | PList [Pattern]
9999 | PCons Pattern Pattern
100− | PChr Utf8.String
101− | PStr Utf8.String
100+ | PChr ES.String
101+ | PStr ES.String
102102 | PInt Int
103103
104104
@@ -128,7 +128,7 @@ data Module =
128128 Module
129129 { _name :: Maybe (A.Located Name)
130130 , _exports :: A.Located Exposing
131− , _docs :: Maybe Docs
131+ , _docs :: Docs
132132 , _imports :: [Import]
133133 , _values :: [A.Located Value]
134134 , _unions :: [A.Located Union]
@@ -145,13 +145,7 @@ getName (Module maybeName _ _ _ _ _ _ _ _) =
145145 name
146146
147147 Nothing ->
148− defaultModuleName
149−
150−
151−{-# NOINLINE defaultModuleName #-}
152−defaultModuleName :: Name
153−defaultModuleName =
154− "Main"
148+ Name._Main
155149
156150
157151getImportName :: Import -> Name
@@ -186,18 +180,13 @@ data Manager
186180 | Fx (A.Located Name) (A.Located Name)
187181
188182
189−data Docs =
190− Docs
191− { _overview :: Comment
192− , _comments :: [(Name, Comment)]
193− }
183+data Docs
184+ = NoDocs A.Region
185+ | YesDocs Comment [(Name, Comment)]
194186
195187
196−data Comment =
197− Comment
198− { _start :: Ptr Word8
199− , _end :: Ptr Word8
200− }
188+newtype Comment =
189+ Comment P.Snippet
201190
202191
203192