pFilePath :: Lexer FilePath'
pFilePath = FilePath' <$> do
    dots <- many (char '.')
    cs <-
        (:) <$> char '/'
            <*> many pFilePathChar
        <|> pure ""
    notFollowedBy pFilePathChar
    let path = dots <> cs
    guard $ not (null path)
    return path
  where
    pFilePathChar :: Lexer Char
    pFilePathChar =
        char '\\' *> anySingle <|>
        satisfy isFilePathChar
pFilePath :: Lexer FilePath'
pFilePath = FilePath' <$> do
    dots <- many (char '.')
    cs <-
        (:) <$> char '/'
            <*> many pFilePathChar
        <|> pure ""
    notFollowedBy pFilePathChar
    let path = dots <> cs
    guard $ not (null path)
    return path
  where
    pFilePathChar :: Lexer Char
    pFilePathChar =
        char '\\' *> anySingle <|>
        satisfy isFilePathChar
pFilePath = FilePath' <$> do
    dots <- many (char '.')
    cs <-
        (:) <$> char '/'
            <*> many pFilePathChar
        <|> pure ""
    notFollowedBy pFilePathChar
    let path = dots <> cs
    guard $ not (null path)
    return path
  where
    pFilePathChar :: Lexer Char
    pFilePathChar =
        char '\\' *> anySingle <|>
        satisfy isFilePathChar