on master help sign in
Update parser for AST shuffle
commit9d6d260d0f5c63b4021a2852c4b2417c5bddb68e authorEvan Czaplicki <evancz@users.noreply.github.com> dateWed 8 Nov 2017, 19:40 (9 years ago) parent77a954d
9 files changed+33−34
src/Parse/Declaration.hs+2−3 src/Parse/Expression.hs+1−1 src/Parse/Kernel.hs+2−2 src/Parse/Module.hs+1−1 src/Parse/Parse.hs+2−2 src/Parse/Pattern.hs+1−1 src/Parse/Repl.hs+1−1 src/Parse/Shader.hs+2−2 src/Parse/Type.hs+21−21
src/Parse/Declaration.hs+2−3
@@ -9,8 +9,7 @@ module Parse.Declaration
99import Data.Text (Text)
1010import qualified Data.Text.Encoding as Text
1111
12−import qualified AST.Expression.Source as Src
13−import qualified AST.Type as Type
12+import qualified AST.Source as Src
1413import qualified Parse.Expression as Expr
1514import qualified Parse.Pattern as Pattern
1615import Parse.Primitives
@@ -132,7 +131,7 @@ nameArgsEqualsHelp name args =
132131 ]
133132
134133
135−chompConstructors :: [(A.Located Text, [Type.Raw])] -> R.Position -> SPos -> SParser [(A.Located Text, [Type.Raw])]
134+chompConstructors :: [(A.Located Text, [Src.Type])] -> R.Position -> SPos -> SParser [(A.Located Text, [Src.Type])]
136135chompConstructors ctors end pos =
137136 oneOf
138137 [ do checkSpace pos
src/Parse/Expression.hs+1−1
@@ -8,7 +8,7 @@ module Parse.Expression
88
99import Control.Monad (guard)
1010
11−import qualified AST.Expression.Source as Src
11+import qualified AST.Source as Src
1212import qualified Elm.Name as N
1313import Parse.Primitives
1414import qualified Parse.Primitives.Keyword as Keyword
src/Parse/Kernel.hs+2−2
@@ -14,8 +14,8 @@ import qualified Data.Text as Text
1414import qualified Data.Text.Encoding as Text
1515import Data.Word (Word8)
1616
17−import qualified AST.Expression.Source as Src
18−import qualified AST.Kernel as Kernel
17+import qualified AST.Source as Src
18+import qualified AST.Utils.Kernel as Kernel
1919import qualified AST.Module.Name as ModuleName
2020import qualified Elm.Name as N
2121import Generate.JavaScript.Helpers as Help (toFieldName)
src/Parse/Module.hs+1−1
@@ -11,7 +11,7 @@ module Parse.Module
1111import qualified Data.ByteString as B
1212import Data.Text (Text)
1313
14−import qualified AST.Expression.Source as Src
14+import qualified AST.Source as Src
1515import qualified Elm.Name as N
1616import Parse.Primitives (Parser, oneOf)
1717import qualified Parse.Primitives as P
src/Parse/Parse.hs+2−2
@@ -7,8 +7,8 @@ module Parse.Parse
77
88import qualified Data.ByteString as B
99
10−import qualified AST.Expression.Source as Src
11−import qualified AST.Expression.Valid as Valid
10+import qualified AST.Source as Src
11+import qualified AST.Valid as Valid
1212import qualified Parse.Declaration as Decl
1313import qualified Parse.Module as Module
1414import qualified Parse.Primitives as P
src/Parse/Pattern.hs+1−1
@@ -9,7 +9,7 @@ module Parse.Pattern
99
1010import qualified Data.List as List
1111
12−import qualified AST.Expression.Source as Src
12+import qualified AST.Source as Src
1313import qualified Elm.Name as N
1414import Parse.Primitives (Parser, SParser, SPos, addLocation, checkSpace, getPosition, hint, inContext, spaces, oneOf)
1515import qualified Parse.Primitives.Keyword as Keyword
src/Parse/Repl.hs+1−1
@@ -11,7 +11,7 @@ import qualified Data.ByteString.UTF8 as Utf8
1111import qualified Data.Text as Text
1212import Data.Text (Text)
1313
14−import qualified AST.Expression.Source as Src
14+import qualified AST.Source as Src
1515import Parse.Primitives
1616import qualified Parse.Primitives.Keyword as Keyword
1717import qualified Parse.Primitives.Symbol as Symbol
src/Parse/Shader.hs+2−2
@@ -13,8 +13,8 @@ import qualified Language.GLSL.Syntax as GLS
1313import qualified Text.Parsec as Parsec
1414import qualified Text.Parsec.Error as Parsec
1515
16−import qualified AST.Expression.Source as Src
17−import qualified AST.Shader as Shader
16+import qualified AST.Source as Src
17+import qualified AST.Utils.Shader as Shader
1818import qualified Reporting.Annotation as A
1919import qualified Reporting.Region as R
2020import Parse.Primitives (Parser, getPosition)
src/Parse/Type.hs+21−21
@@ -4,7 +4,7 @@ module Parse.Type (expression, unionConstructor) where
44
55import Data.Text (Text)
66
7−import qualified AST.Type as Type
7+import qualified AST.Source as Src
88import Parse.Primitives (Parser, SParser, addLocation, checkSpace, getPosition, hint, spaces, oneOf)
99import qualified Parse.Primitives as P
1010import qualified Parse.Primitives.Symbol as Symbol
@@ -20,7 +20,7 @@ import qualified Reporting.Region as R
2020-- TYPE TERMS
2121
2222
23−term :: Parser Type.Raw
23+term :: Parser Src.Type
2424term =
2525 hint E.Type $
2626 do start <- getPosition
@@ -36,18 +36,18 @@ term =
3636-- TYPE VARIABLES
3737
3838
39−variable :: R.Position -> Parser Type.Raw
39+variable :: R.Position -> Parser Src.Type
4040variable start =
4141 do var <- Var.lower
4242 end <- getPosition
43− return (A.at start end (Type.RVar var))
43+ return (A.at start end (Src.TVar var))
4444
4545
4646
4747-- TYPE EXPRESSIONS
4848
4949
50−expression :: SParser Type.Raw
50+expression :: SParser Src.Type
5151expression =
5252 hint E.Type $
5353 do start <- getPosition
@@ -61,7 +61,7 @@ expression =
6161 Symbol.rightArrow
6262 spaces
6363 (tipe2, end2, pos2) <- expression
64− let tipe = A.at start end2 (Type.RLambda tipe1 tipe2)
64+ let tipe = A.at start end2 (Src.TLambda tipe1 tipe2)
6565 return ( tipe, end2, pos2 )
6666 , return ( tipe1, end1, pos1 )
6767 ]
@@ -71,26 +71,26 @@ expression =
7171-- TYPE CONSTRUCTORS
7272
7373
74−app0 :: Parser Type.Raw
74+app0 :: Parser Src.Type
7575app0 =
7676 do start <- getPosition
7777 (maybeQualifier, name) <- Var.foreignUpper
7878 end <- getPosition
7979 return $ A.at start end $
80− Type.RType (R.Region start end) maybeQualifier name []
80+ Src.TType (R.Region start end) maybeQualifier name []
8181
8282
83−app :: R.Position -> SParser Type.Raw
83+app :: R.Position -> SParser Src.Type
8484app start =
8585 do (maybeQualifier, name) <- Var.foreignUpper
8686 nameEnd <- getPosition
8787 namePos <- whitespace
8888 (args, end, pos) <- eatArgs [] nameEnd namePos
89− let tipe = Type.RType (R.Region start nameEnd) maybeQualifier name args
89+ let tipe = Src.TType (R.Region start nameEnd) maybeQualifier name args
9090 return ( A.at start end tipe, end, pos )
9191
9292
93−unionConstructor :: SParser (A.Located Text, [Type.Raw])
93+unionConstructor :: SParser (A.Located Text, [Src.Type])
9494unionConstructor =
9595 do start <- getPosition
9696 name <- Var.upper
@@ -100,7 +100,7 @@ unionConstructor =
100100 return ( (A.at start nameEnd name, args), end, pos )
101101
102102
103−eatArgs :: [Type.Raw] -> R.Position -> SPos -> SParser [Type.Raw]
103+eatArgs :: [Src.Type] -> R.Position -> SPos -> SParser [Src.Type]
104104eatArgs args end pos =
105105 oneOf
106106 [ do checkSpace pos
@@ -116,14 +116,14 @@ eatArgs args end pos =
116116-- TUPLES
117117
118118
119−tuple :: R.Position -> Parser Type.Raw
119+tuple :: R.Position -> Parser Src.Type
120120tuple start =
121121 do Symbol.leftParen
122122 P.inContext start E.TypeTuple $
123123 oneOf
124124 [ do Symbol.rightParen
125125 end <- getPosition
126− return (A.at start end Type.RUnit)
126+ return (A.at start end Src.TUnit)
127127 , do spaces
128128 (tipe, _, pos) <- expression
129129 checkSpace pos
@@ -131,7 +131,7 @@ tuple start =
131131 ]
132132
133133
134−tupleEnding :: R.Position -> Type.Raw -> [Type.Raw] -> Parser Type.Raw
134+tupleEnding :: R.Position -> Src.Type -> [Src.Type] -> Parser Src.Type
135135tupleEnding start firstType revTypes =
136136 oneOf
137137 [ do Symbol.comma
@@ -147,7 +147,7 @@ tupleEnding start firstType revTypes =
147147
148148 secondType : otherTypes ->
149149 return $ A.at start end $
150− Type.RTuple firstType secondType otherTypes
150+ Src.TTuple firstType secondType otherTypes
151151 ]
152152
153153
@@ -155,7 +155,7 @@ tupleEnding start firstType revTypes =
155155-- RECORD
156156
157157
158−record :: R.Position -> Parser Type.Raw
158+record :: R.Position -> Parser Src.Type
159159record start =
160160 do Symbol.leftCurly
161161 P.inContext start E.TypeRecord $
@@ -163,7 +163,7 @@ record start =
163163 oneOf
164164 [ do Symbol.rightCurly
165165 end <- getPosition
166− return (A.at start end (Type.RRecord [] Nothing))
166+ return (A.at start end (Src.TRecord [] Nothing))
167167 , do var <- addLocation Var.lower
168168 spaces
169169 oneOf
@@ -172,19 +172,19 @@ record start =
172172 firstField <- field
173173 fields <- chompFields [firstField]
174174 end <- getPosition
175− return (A.at start end (Type.RRecord fields (Just (A.map Type.RVar var))))
175+ return (A.at start end (Src.TRecord fields (Just (A.map Src.TVar var))))
176176 , do Symbol.hasType
177177 spaces
178178 (tipe, _, nextPos) <- expression
179179 checkSpace nextPos
180180 fields <- chompFields [(var, tipe)]
181181 end <- getPosition
182− return (A.at start end (Type.RRecord fields Nothing))
182+ return (A.at start end (Src.TRecord fields Nothing))
183183 ]
184184 ]
185185
186186
187−type Field = ( A.Located Text, Type.Raw )
187+type Field = ( A.Located Text, Src.Type )
188188
189189
190190chompFields :: [Field] -> Parser [Field]