Portability | All |
---|---|
Stability | experimental |
Maintainer | Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk> |
Safe Haskell | None |
Include the interface that is exported
- runCpphs :: CpphsOptions -> FilePath -> String -> IO String
- runCpphsReturningSymTab :: CpphsOptions -> FilePath -> String -> IO (String, [(String, String)])
- cppIfdef :: FilePath -> [(String, String)] -> [String] -> BoolOptions -> String -> IO [(Posn, String)]
- macroPass :: [(String, String)] -> BoolOptions -> [(Posn, String)] -> IO String
- macroPassReturningSymTab :: [(String, String)] -> BoolOptions -> [(Posn, String)] -> IO (String, [(String, String)])
- data CpphsOptions = CpphsOptions {}
- data BoolOptions = BoolOptions {}
- parseOptions :: [String] -> Either String CpphsOptions
- defaultCpphsOptions :: CpphsOptions
- defaultBoolOptions :: BoolOptions
- data Posn = Pn String !Int !Int (Maybe Posn)
- newfile :: String -> Posn
- addcol :: Int -> Posn -> Posn
- newline :: Posn -> Posn
- tab :: Posn -> Posn
- newlines :: Int -> Posn -> Posn
- newpos :: Int -> Maybe String -> Posn -> Posn
- cppline :: Posn -> String
- haskline :: Posn -> String
- cpp2hask :: String -> String
- filename :: Posn -> String
- lineno :: Posn -> Int
- directory :: Posn -> FilePath
Documentation
runCpphsReturningSymTab :: CpphsOptions -> FilePath -> String -> IO (String, [(String, String)])Source
:: FilePath | File for error reports |
-> [(String, String)] | Pre-defined symbols and their values |
-> [String] | Search path for #includes |
-> BoolOptions | Options controlling output style |
-> String | The input file content |
-> IO [(Posn, String)] | The file after processing (in lines) |
Run a first pass of cpp, evaluating #ifdef's and processing #include's, whilst taking account of #define's and #undef's as we encounter them.
:: [(String, String)] | Pre-defined symbols and their values |
-> BoolOptions | Options that alter processing style |
-> [(Posn, String)] | The input file content |
-> IO String | The file after processing |
Walk through the document, replacing calls of macros with the expanded RHS.
macroPassReturningSymTabSource
:: [(String, String)] | Pre-defined symbols and their values |
-> BoolOptions | Options that alter processing style |
-> [(Posn, String)] | The input file content |
-> IO (String, [(String, String)]) | The file and symbol table after processing |
Walk through the document, replacing calls of macros with the expanded RHS. Additionally returns the active symbol table after processing.
data BoolOptions Source
Options representable as Booleans.
BoolOptions | |
|
parseOptions :: [String] -> Either String CpphsOptionsSource
Parse all command-line options.
defaultCpphsOptions :: CpphsOptionsSource
Default options.
defaultBoolOptions :: BoolOptionsSource
Default settings of boolean options.
Source positions contain a filename, line, column, and an inclusion point, which is itself another source position, recursively.