@@ -12,10 +12,12 @@ module AST.Source
12 , Value(..)
12 , Value(..)
13 , Union(..)
13 , Union(..)
14 , Alias(..)
14 , Alias(..)
15− , Binop(..)
15+ , Infix(..)
16 , Port(..)
16 , Port(..)
17 , Effects(..)
17 , Effects(..)
18 , Manager(..)
18 , Manager(..)
19 , Exposing(..)
21 , Exposing(..)
20 , Exposed(..)
22 , Exposed(..)
21 , Privacy(..)
23 , Privacy(..)
@@ -25,6 +27,8 @@ module AST.Source
26import Data.Name (Name)
28import Data.Name (Name)
27import qualified Data.Utf8 as Utf8
29import qualified Data.Utf8 as Utf8
30+import Data.Word (Word8)
31+import Foreign.Ptr (Ptr)
29import qualified AST.Utils.Binop as Binop
33import qualified AST.Utils.Binop as Binop
30import qualified AST.Utils.Shader as Shader
34import qualified AST.Utils.Shader as Shader
@@ -124,17 +128,18 @@ data Module =
125 { _name :: Maybe (A.Located Name)
129 { _name :: Maybe (A.Located Name)
126 , _exports :: A.Located Exposing
130 , _exports :: A.Located Exposing
131+ , _docs :: Maybe Docs
127 , _imports :: [Import]
132 , _imports :: [Import]
128 , _values :: [A.Located Value]
133 , _values :: [A.Located Value]
129 , _unions :: [A.Located Union]
134 , _unions :: [A.Located Union]
130 , _aliases :: [A.Located Alias]
135 , _aliases :: [A.Located Alias]
131− , _binops :: [A.Located Binop]
136+ , _binops :: [A.Located Infix]
132 , _effects :: Effects
137 , _effects :: Effects
136getName :: Module -> Name
141getName :: Module -> Name
137−getName (Module maybeName _ _ _ _ _ _ _) =
142+getName (Module maybeName _ _ _ _ _ _ _ _) =
138 case maybeName of
143 case maybeName of
139 Just (A.At _ name) ->
144 Just (A.At _ name) ->
@@ -165,7 +170,7 @@ data Import =
165data Value = Value (A.Located Name) [Pattern] Expr (Maybe Type)
170data Value = Value (A.Located Name) [Pattern] Expr (Maybe Type)
166data Union = Union (A.Located Name) [A.Located Name] [(A.Located Name, [Type])]
171data Union = Union (A.Located Name) [A.Located Name] [(A.Located Name, [Type])]
167data Alias = Alias (A.Located Name) [A.Located Name] Type
172data Alias = Alias (A.Located Name) [A.Located Name] Type
168−data Binop = Binop Name Binop.Associativity Binop.Precedence Name
173+data Infix = Infix Name Binop.Associativity Binop.Precedence Name
169data Port = Port (A.Located Name) Type
174data Port = Port (A.Located Name) Type
@@ -181,6 +186,20 @@ data Manager
181 | Fx (A.Located Name) (A.Located Name)
186 | Fx (A.Located Name) (A.Located Name)
191+ { _overview :: Comment
192+ , _comments :: [(Name, Comment)]
198+ { _start :: Ptr Word8
185-- EXPOSING
204-- EXPOSING