1
1
mirror of https://github.com/github/semantic.git synced 2024-12-24 23:42:31 +03:00

Either makes this easier

This commit is contained in:
Ayman Nadeem 2019-10-15 13:27:54 -04:00
parent be5f00ee50
commit c9219f71c3

View File

@ -41,17 +41,15 @@ main :: IO ()
main = generateAST =<< execParser opts
generateAST :: SemanticAST -> IO ()
generateAST (SemanticAST _ filePath sourceString) = do
case filePath of
Just filePath -> do
generateAST (SemanticAST _ source) = do
case source of
Left filePath -> do
bytestring <- Data.ByteString.readFile filePath
print =<< parseByteString @TreeSitter.Python.AST.Module @(Range, Span) tree_sitter_python bytestring
Nothing -> do
case sourceString of
Just sourceString -> do
bytestring <- Data.ByteString.Char8.pack . Prelude.head <$> getArgs
print =<< parseByteString @TreeSitter.Python.AST.Module @(Range, Span) tree_sitter_python bytestring
Nothing -> print "please provide a file path or source string to parse"
Right source -> do
let bytestring = Data.ByteString.Char8.pack source
print =<< parseByteString @TreeSitter.Python.AST.Module @(Range, Span) tree_sitter_python bytestring
opts :: ParserInfo SemanticAST
opts = info (parseAST <**> helper)