# HG changeset patch # User unc0rr # Date 1399660575 -14400 # Node ID bfae7354d42fa5cd7444bb4ba66b937721224514 # Parent ed8bab6e92baa095bf58623e92a2e25cd24d4f9a Support OR operator in $IFDEF. Fixes pas2c builds. diff -r ed8bab6e92ba -r bfae7354d42f tools/pas2c/Pas2C.hs --- a/tools/pas2c/Pas2C.hs Wed May 07 22:47:54 2014 +0200 +++ b/tools/pas2c/Pas2C.hs Fri May 09 22:36:15 2014 +0400 @@ -121,7 +121,7 @@ let ptree = parse pascalUnit fileName fc case ptree of (Left a) -> do - liftIO $ writeFile (outputPath ++ "preprocess.out") fc + liftIO $ writeFile (outputPath ++ fileName ++ "preprocess.out") fc printLn $ show a ++ "\nsee preprocess.out for preprocessed source" fail "stop" (Right a) -> do diff -r ed8bab6e92ba -r bfae7354d42f tools/pas2c/PascalPreprocessor.hs --- a/tools/pas2c/PascalPreprocessor.hs Wed May 07 22:47:54 2014 +0200 +++ b/tools/pas2c/PascalPreprocessor.hs Fri May 09 22:36:15 2014 +0400 @@ -92,13 +92,12 @@ s <- try (string "IFDEF") <|> try (string "IFNDEF") let f = if s == "IFNDEF" then not else id - spaces - d <- identifier + ds <- (spaces >> identifier) `sepBy` (spaces >> string "OR") spaces char' '}' updateState $ \(m, b) -> - (m, (f $ d `Map.member` m) : b) + (m, (f $ any (flip Map.member m) ds) : b) return ""