on master help sign in
Whitespace upgrade: simple changes
commit5670bd69614777fabb36c835e7026959336887ce authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 5 Dec 2016, 12:35 (10 years ago) parent26ec347
3 files changed+30−35
src/Parse/Declaration.hs+16−16 src/Parse/Module.hs+9−14 src/Parse/Parse.hs+5−5
src/Parse/Declaration.hs+16−16
@@ -37,8 +37,8 @@ docDecl :: R.Position -> SParser Decl.Source
3737docDecl start =
3838 do comment <- docComment
3939 end <- getPosition
40− space <- whitespace
41− return ( Decl.Comment (A.at start end comment), end, space )
40+ pos <- whitespace
41+ return ( Decl.Comment (A.at start end comment), end, pos )
4242
4343
4444-- TYPE ANNOTATIONS and DEFINITIONS
@@ -46,9 +46,9 @@ docDecl start =
4646
4747defDecl :: R.Position -> SParser Decl.Source
4848defDecl start =
49− do (def, end, space) <- Expr.definition
49+ do (def, end, pos) <- Expr.definition
5050 let decl = A.at start end (Decl.Def def)
51− return ( Decl.Whatever decl, end, space )
51+ return ( Decl.Whatever decl, end, pos )
5252
5353
5454
@@ -63,14 +63,14 @@ typeDecl start =
6363 [ do keyword "alias"
6464 spaces
6565 (name, args) <- nameArgsEquals
66− (tipe, end, space) <- Type.expression
66+ (tipe, end, pos) <- Type.expression
6767 let decl = A.at start end (Decl.Alias (Decl.Type name args tipe))
68− return ( Decl.Whatever decl, end, space )
68+ return ( Decl.Whatever decl, end, pos )
6969 , do (name, args) <- nameArgsEquals
7070 (firstCtor, firstEnd, firstSpace) <- Type.unionConstructor
71− (ctors, end, space) <- chompConstructors [firstCtor] firstEnd firstSpace
71+ (ctors, end, pos) <- chompConstructors [firstCtor] firstEnd firstSpace
7272 let decl = A.at start end (Decl.Union (Decl.Type name args ctors))
73− return ( Decl.Whatever decl, end, space )
73+ return ( Decl.Whatever decl, end, pos )
7474 ]
7575
7676
@@ -93,15 +93,15 @@ nameArgsEqualsHelp name args =
9393 ]
9494
9595
96−chompConstructors :: [(Text, [Type.Raw])] -> R.Position -> Space -> SParser [(Text, [Type.Raw])]
97−chompConstructors ctors end space =
96+chompConstructors :: [(Text, [Type.Raw])] -> R.Position -> SPos -> SParser [(Text, [Type.Raw])]
97+chompConstructors ctors end pos =
9898 oneOf
99− [ do checkSpaces space
99+ [ do checkSpace pos
100100 pipe
101101 spaces
102102 (ctor, newEnd, newSpace) <- Type.unionConstructor
103103 chompConstructors (ctor:ctors) newEnd newSpace
104− , return ( reverse ctors, end, space )
104+ , return ( reverse ctors, end, pos )
105105 ]
106106
107107
@@ -128,9 +128,9 @@ infixDeclHelp start assoc =
128128 spaces
129129 op <- infixOp
130130 end <- getPosition
131− space <- whitespace
131+ pos <- whitespace
132132 let decl = A.at start end (Decl.Fixity (Decl.Infix op assoc n))
133− return ( Decl.Whatever decl, end, space )
133+ return ( Decl.Whatever decl, end, pos )
134134
135135
136136
@@ -145,7 +145,7 @@ portDecl start =
145145 spaces
146146 hasType
147147 spaces
148− (tipe, end, space) <- Type.expression
148+ (tipe, end, pos) <- Type.expression
149149 let decl = A.at start end (Decl.Port name tipe)
150− return ( Decl.Whatever decl, end, space )
150+ return ( Decl.Whatever decl, end, pos )
151151
src/Parse/Module.hs+9−14
@@ -2,7 +2,6 @@
22{-# LANGUAGE OverloadedStrings #-}
33module Parse.Module where
44
5−import Control.Monad (guard)
65import Data.Text (Text)
76
87import qualified AST.Module as Module
@@ -18,8 +17,7 @@ import qualified Reporting.Region as R
1817
1918header :: Parser (Module.Header [Module.UserImport])
2019header =
21− do space <- whitespace
22− guard (space == Freshline || space == None)
20+ do freshLine
2321 oneOf
2422 [ fullHeader
2523 , Module.defaultHeader <$> chompImports []
@@ -143,12 +141,12 @@ chompImports imports =
143141 spaces
144142 name <- qualifiedCapVar
145143 end <- getPosition
146− space <- whitespace
144+ pos <- whitespace
147145 oneOf
148− [ do guard (space == Freshline)
146+ [ do checkFreshline pos
149147 let userImport = method start end name Nothing Var.closedListing
150148 chompImports (userImport:imports)
151− , do checkSpaces space
149+ , do checkSpace pos
152150 oneOf
153151 [ chompAs start name imports
154152 , chompExposing start name Nothing imports
@@ -164,12 +162,12 @@ chompAs start name imports =
164162 spaces
165163 alias <- capVar
166164 end <- getPosition
167− space <- whitespace
165+ pos <- whitespace
168166 oneOf
169− [ do guard (space == Freshline)
167+ [ do checkFreshline pos
170168 let userImport = method start end name (Just alias) Var.closedListing
171169 chompImports (userImport:imports)
172− , do checkSpaces space
170+ , do checkSpace pos
173171 chompExposing start name (Just alias) imports
174172 ]
175173
@@ -249,9 +247,6 @@ listingValue =
249247
250248freshLine :: Parser ()
251249freshLine =
252− do space <- whitespace
253− if space == Freshline
254− then return ()
255− else failure (error "TODO freshLine")
256−
250+ do pos <- whitespace
251+ checkFreshline pos
257252
src/Parse/Parse.hs+5−5
@@ -1,8 +1,8 @@
11{-# OPTIONS_GHC -Wall -fno-warn-unused-do-bind #-}
22module Parse.Parse (program) where
33
4−import Control.Monad (guard)
5−import Data.Text (Text, unpack)
4+import qualified Data.Text as Text
5+import Data.Text (Text)
66
77import qualified AST.Declaration as Decl
88import qualified AST.Module as Module
@@ -25,7 +25,7 @@ program pkgName src =
2525 Validate.validate modul
2626
2727 Left err ->
28− error (unlines $ take 10 $ "TODO program parse error" : lines (unpack src)) err
28+ error ("TODO program parse error\n" ++ show err ++ "\n" ++ Text.unpack (Text.take 100 src))
2929
3030
3131chompProgram :: Package.Name -> Parser Module.Source
@@ -40,9 +40,9 @@ chompProgram pkgName =
4040
4141chompDeclarations :: [Decl.Source] -> Parser [Decl.Source]
4242chompDeclarations decls =
43− do (decl, _, space) <- Parse.declaration
43+ do (decl, _, pos) <- Parse.declaration
4444 oneOf
45− [ do guard (space == Freshline)
45+ [ do checkFreshline pos
4646 chompDeclarations (decl:decls)
4747 , return (reverse (decl:decls))
4848 ]