
#9628: Add Annotations to the AST to simplify source to source conversions -------------------------------------+------------------------------------- Reporter: alanz | Owner: alanz Type: feature | Status: new request | Milestone: Priority: normal | Version: 7.9 Component: Compiler | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: D297 | -------------------------------------+------------------------------------- Comment (by NeilMitchell): I had a slightly different design in mind. {{{ data Ann = AnnModule | AnnWhere | AnnSemi | AnnOpen | AnnClose }}} Then you can basically have a function: {{{ getAnnotation :: ASTNode -> Ann -> Maybe SrcSpan }}} You'd be down to only a single annotation. Things like Pragma could use AnnOpen for the {-# and AnnClose for the #-} bit. As long as you have a separate annotation constructor for each part of a pair, then everything is associated with a Maybe SrcSpan, and you don't have to pack the SrcSpan inside the Ann field. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9628#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler