Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
5fa086c5
Commit
5fa086c5
authored
Nov 24, 2010
by
Ian Lynagh
Browse files
Separate NondecreasingIndentation out into its own extension
parent
04a12a3d
Changes
2
Hide whitespace changes
Inline
Side-by-side
compiler/main/DynFlags.hs
View file @
5fa086c5
...
...
@@ -361,6 +361,7 @@ data ExtensionFlag
|
Opt_AlternativeLayoutRule
|
Opt_AlternativeLayoutRuleTransitional
|
Opt_DatatypeContexts
|
Opt_NondecreasingIndentation
|
Opt_RelaxedLayout
deriving
(
Eq
,
Show
)
...
...
@@ -795,6 +796,7 @@ languageExtensions Nothing
-- In due course I'd like Opt_MonoLocalBinds to be on by default
-- But NB it's implied by GADTs etc
-- SLPJ September 2010
:
Opt_NondecreasingIndentation
-- This has been on by default for some time
:
Opt_RelaxedLayout
-- This has been on by default for some time
:
languageExtensions
(
Just
Haskell2010
)
...
...
@@ -1593,6 +1595,7 @@ xFlags = [
(
"AlternativeLayoutRule"
,
Opt_AlternativeLayoutRule
,
nop
),
(
"AlternativeLayoutRuleTransitional"
,
Opt_AlternativeLayoutRuleTransitional
,
nop
),
(
"DatatypeContexts"
,
Opt_DatatypeContexts
,
nop
),
(
"NondecreasingIndentation"
,
Opt_NondecreasingIndentation
,
nop
),
(
"RelaxedLayout"
,
Opt_RelaxedLayout
,
nop
),
(
"MonoLocalBinds"
,
Opt_MonoLocalBinds
,
nop
),
(
"RelaxedPolyRec"
,
Opt_RelaxedPolyRec
,
...
...
compiler/parser/Lexer.x
View file @
5fa086c5
...
...
@@ -1120,8 +1120,8 @@ new_layout_context strict span _buf _len = do
(AI l _) <- getInput
let offset = srcLocCol l
ctx <- getContext
relaxed
<- extension
relaxedLayout
let strict' = strict || not
relaxed
nondecreasing
<- extension
nondecreasingIndentation
let strict' = strict || not
nondecreasing
case ctx of
Layout prev_off : _ |
(strict' && prev_off >= offset ||
...
...
@@ -1778,6 +1778,8 @@ alternativeLayoutRuleBit :: Int
alternativeLayoutRuleBit = 23
relaxedLayoutBit :: Int
relaxedLayoutBit = 24
nondecreasingIndentationBit :: Int
nondecreasingIndentationBit = 25
always :: Int -> Bool
always _ = True
...
...
@@ -1823,6 +1825,8 @@ alternativeLayoutRule :: Int -> Bool
alternativeLayoutRule flags = testBit flags alternativeLayoutRuleBit
relaxedLayout :: Int -> Bool
relaxedLayout flags = testBit flags relaxedLayoutBit
nondecreasingIndentation :: Int -> Bool
nondecreasingIndentation flags = testBit flags nondecreasingIndentationBit
-- PState for parsing options pragmas
--
...
...
@@ -1877,6 +1881,7 @@ mkPState flags buf loc =
.|. newQualOpsBit `setBitIf` xopt Opt_NewQualifiedOperators flags
.|. alternativeLayoutRuleBit `setBitIf` xopt Opt_AlternativeLayoutRule flags
.|. relaxedLayoutBit `setBitIf` xopt Opt_RelaxedLayout flags
.|. nondecreasingIndentationBit `setBitIf` xopt Opt_NondecreasingIndentation flags
--
setBitIf :: Int -> Bool -> Int
b `setBitIf` cond | cond = bit b
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment