packages feed

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