fortran-src-0.9.0: src/Language/Fortran/Parser/Free/Utils.hs
{-# LANGUAGE CPP #-}
module Language.Fortran.Parser.Free.Utils where
import Language.Fortran.Parser.Free.Lexer
import Language.Fortran.Parser.Monad
import Control.Monad.State
unitNameCheck :: Token -> String -> Parse AlexInput Token ()
unitNameCheck (TId _ name1) name2
| name1 == name2 = return ()
| otherwise = fail "Unit name does not match the corresponding END statement."
unitNameCheck _ _ = return ()
parseError :: Token -> LexAction a
parseError _ = do
parseState <- get
#ifdef DEBUG
tokens <- reverse <$> aiPreviousTokensInLine <$> getAlex
#endif
fail $ psFilename parseState ++ ": parsing failed. "
#ifdef DEBUG
++ '\n' : show tokens
#endif