HSE parses based on pragmas by default. This can be configured through the ParseMode [1].
But your question regards HSP, Haskell Server Pages, which indeed just enables most extensions by default. Right now there's no way to configure that, but it shouldn't be hard for a skilled programmer to fix. Patches most welcome. :-) Cheers, Niklas [1] http://hackage.haskell.org/packages/archive/haskell-src-exts/1.13.5/doc/html/Language-Haskell-Exts-Parser.html#t:ParseMode On 20 Aug 2013 12:57, "Dag Odenhall" <dag.odenh...@gmail.com> wrote: > Good stuff! > > Is there any way, or plans for a way, to parse a file based on its > LANGUAGE pragmas? Last I checked e.g. HSP simply enabled all extensions > when parsing, which can cause code to be parsed incorrectly in some cases. > > > On Tue, Aug 20, 2013 at 10:15 AM, Niklas Broberg <niklas.brob...@gmail.com > > wrote: > >> Fellow Haskelleers, >> >> I'm pleased to announce the release of haskell-src-exts-1.14.0! >> >> * On hackage: http://hackage.haskell.org/package/haskell-src-exts >> * Via cabal: cabal install haskell-src-exts >> * git repo: >> https://github.com/haskell-suite/haskell-src-exts<http://code.haskell.org/haskell-src-exts> >> >> There are two primary reasons for this release, and a number of smaller >> ones. >> >> The first primary reason is technical: haskell-src-exts 1.14 revamps the >> Extension datatype, among other things to allow turning extensions on and >> off (similar to what Cabal allows). We also introduce the concept of a >> Language, separate from a set of extensions. This is the only >> backwards-incompatible change in this release. >> >> The second reason is structural: haskell-src-exts is now part of a larger >> context -- the Haskell Suite. The package has a new home on github (see >> above), alongside its new cool friends: haskell-names and haskell-packages. >> There is also a really nice issue tracker there - please help me fill it, >> or better yet, empty it! >> >> What this release does *not* cover is support for the extensions added to >> GHC in recent time (with the exceptions of CApiFFI and InterruptibleFFI). >> Work is in progress on many of these, and there will be another major >> release not far off in the future. >> >> >> This release owes many thanks to Roman Cheplyaka in particular, as well >> as Erik Hesselink, Simon Meier and David Fox. Thanks a lot! >> >> >> Complete changelog: >> >> 1.13.6 --> 1.14.0 >> =============== >> >> * Modernize the Extension datatype in L.H.E.Extension, following the lead >> of Cabal, to allow negative and positive extension modifiers (turning >> features on and off). You need to worry about backwards-incompatible >> changes if any of the following pertains to you: >> 1) If you use the Extension datatype programmatically - it has changed >> significantly (see documentation). >> 2) The ParseMode record now has one more field >> (baseLanguage :: Language), which might give you a type error. >> 3) The behavior of the (extensions :: [Extension]) field has changed, >> which could bite you if you pass custom extensions in the ParseMode. >> Previously, the ParseMode defaulted to the list of extensions >> accepted >> by Haskell2010, and if you set the list explicitly you would >> override >> this. Now, the defaults are { baseLanguage = Haskell2010, extensions >> = [] }, >> and explicitly setting a list of extensions will be interpreted on >> top of >> Haskell2010. See further the documentation for L.H.E.Extension. >> >> * Add support for the 'capi' calling convention. It is enabled with the >> CApiFFI >> extension. It's been included since GHC 7.4, and advertised since 7.6. >> >> * Add support for the 'interruptible' FFI safety annotation, enabled with >> the InterruptibleFFI extension. >> >> * Give better error message when lexing newline fails. In particular, fix >> the bug >> when the parser would crash if the file didn't end with a newline. >> >> * Support unboxed tuple expressions and patterns. >> >> * Fix bug in lexing of primitive integer literals in hex or octal >> notation. >> >> * Disallow negative primitive word literals >> (such as W# (-0x8000000000000000##)). >> >> * Allow phase control for SPECIALIZE pragma. >> >> * Derive Foldable and Traversable instances for all annotated AST types. >> >> * Fix bug with pretty-printing WARNING and DEPRECATED pragmas. >> >> >> Cheers, Niklas >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Haskell Server Pages" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to haskell-server-pages+unsubscr...@googlegroups.com. >> To post to this group, send email to >> haskell-server-pa...@googlegroups.com. >> Visit this group at http://groups.google.com/group/haskell-server-pages. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > You received this message because you are subscribed to the Google Groups > "Haskell Server Pages" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to haskell-server-pages+unsubscr...@googlegroups.com. > To post to this group, send email to haskell-server-pa...@googlegroups.com > . > Visit this group at http://groups.google.com/group/haskell-server-pages. > For more options, visit https://groups.google.com/groups/opt_out. >
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell