mulang-4.0.0: src/Language/Mulang/Analyzer/SampleParser.hs
module Language.Mulang.Analyzer.SampleParser (
parseSample) where
import Language.Mulang
import Language.Mulang.Parsers (EitherParser, maybeToEither)
import Language.Mulang.Parsers.Haskell
import Language.Mulang.Parsers.JavaScript (parseJavaScript)
import Language.Mulang.Parsers.Prolog (parseProlog)
import Language.Mulang.Parsers.Java (parseJava)
import Language.Mulang.Parsers.Python (parsePython)
import Language.Mulang.Analyzer.Analysis (Sample(..), Language(..))
parseSample :: Sample -> Either String Expression
parseSample (CodeSample language content) = (parserFor language) content
parseSample (MulangSample ast) = Right ast
parserFor :: Language -> EitherParser
parserFor Haskell = parseHaskell
parserFor Java = parseJava
parserFor JavaScript = maybeToEither parseJavaScript
parserFor Prolog = parseProlog
parserFor Python = parsePython