madlang 1.1.1.0 → 1.1.2.0
raw patch · 3 files changed
+15/−13 lines, 3 filesdep ~madlang
Dependency ranges changed: madlang
Files
- madlang.cabal +3/−3
- src/Text/Madlibs/Ana/Parse.hs +9/−7
- src/Text/Madlibs/Exec/Main.hs +3/−3
madlang.cabal view
@@ -1,5 +1,5 @@ name: madlang-version: 1.1.1.0+version: 1.1.2.0 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -63,7 +63,7 @@ main-is: Main.hs build-depends: base >=4.9.1.0 && <4.10,- madlang >=1.1.1.0 && <1.2+ madlang >=1.1.2.0 && <1.2 default-language: Haskell2010 hs-source-dirs: app @@ -72,7 +72,7 @@ main-is: Spec.hs build-depends: base >=4.9.1.0 && <4.10,- madlang >=1.1.1.0 && <1.2,+ madlang >=1.1.2.0 && <1.2, hspec >=2.4.2 && <2.5, megaparsec >=5.2.0 && <5.3, text >=1.2.2.1 && <1.3,
src/Text/Madlibs/Ana/Parse.hs view
@@ -37,12 +37,13 @@ -- | Make sure definition blocks start un-indented nonIndented = L.nonIndented spaceConsumer+--nonIndented = L.indentGuard spaceConsumer EQ (unsafePos 1) ---indentGuard = L.indentGuard spaceConsumer+indentGuard = L.indentGuard spaceConsumer GT (unsafePos 4) -- | Parse between quotes quote :: Parser a -> Parser a-quote = between .$ (symbol "\"")+quote = between .$ (char '"') --also CAN'T have any \n AFTER -- | Parse a keyword keyword :: String -> Parser String@@ -73,20 +74,21 @@ preStr ins = (fmap (Name . T.pack) name) <|> do { v <- var ;- pure . PreTok $ (<> " ") $ ins !! (v - 1)+ pure . PreTok $ ins !! (v - 1) } <|> do {- s <- quote (many $ noneOf ("\"\'" :: String)) ;+ s <- quote (many $ noneOf ("\"" :: String)) ;+ spaceConsumer ; pure $ PreTok . T.pack $ s- } + } --needs to stop on \n though <?> "string or function name" -- | Parse a probability/corresponding template pair :: [T.Text] -> Parser (Prob, [PreTok]) pair ins = do- --indentGuard+ indentGuard p <- float- str <- some $ preStr ins+ str <- some $ (preStr ins) pure (p, str) -- | Parse a `define` block
src/Text/Madlibs/Exec/Main.hs view
@@ -24,6 +24,9 @@ , version :: Bool <?> "Display version information for debugging" } deriving (Generic) +data Subcommand = Debug { file :: FilePath } + | Run { file :: FilePath , rep' :: Maybe Int , input' :: [String] } + -- | Generated automatically by optparse-generic. instance ParseRecord Program where @@ -62,11 +65,8 @@ parseFile :: [T.Text] -> FilePath -> IO (Either (ParseError Char Dec) RandTok) parseFile ins filepath = do txt <- readFile' filepath- --print $ runParser (program ins) "" txt let val = parseTok ins txt pure val---- pure . unsafePerformIO . print $ runParser (program ins) "" f -- | String with git commit string build :: String