mirror of
https://github.com/github/semantic.git
synced 2024-12-30 02:14:20 +03:00
analyze takes an explicit interpreter parameter.
This commit is contained in:
parent
b5485e8ab8
commit
dab97a9298
@ -88,8 +88,8 @@ parse :: Member Task effs => Parser term -> Blob -> Eff effs term
|
|||||||
parse parser = send . Parse parser
|
parse parser = send . Parse parser
|
||||||
|
|
||||||
-- | A task running some 'Analysis.MonadAnalysis' to completion.
|
-- | A task running some 'Analysis.MonadAnalysis' to completion.
|
||||||
analyze :: (Analysis.Interpreter m analysisEffects, Member Task effs) => m analysisEffects result -> Eff effs (Analysis.Result m analysisEffects result)
|
analyze :: Member Task effs => (Analysis.Evaluator location term value effects a -> result) -> Analysis.Evaluator location term value effects a -> Eff effs result
|
||||||
analyze = send . Analyze
|
analyze interpret analysis = send (Analyze interpret analysis)
|
||||||
|
|
||||||
-- | A task which decorates a 'Term' with values computed using the supplied 'RAlgebra' function.
|
-- | A task which decorates a 'Term' with values computed using the supplied 'RAlgebra' function.
|
||||||
decorate :: (Functor f, Member Task effs) => RAlgebra (TermF f (Record fields)) (Term f (Record fields)) field -> Term f (Record fields) -> Eff effs (Term f (Record (field ': fields)))
|
decorate :: (Functor f, Member Task effs) => RAlgebra (TermF f (Record fields)) (Term f (Record fields)) field -> Term f (Record fields) -> Eff effs (Term f (Record (field ': fields)))
|
||||||
@ -131,7 +131,7 @@ runTaskWithOptions options task = do
|
|||||||
-- | An effect describing high-level tasks to be performed.
|
-- | An effect describing high-level tasks to be performed.
|
||||||
data Task output where
|
data Task output where
|
||||||
Parse :: Parser term -> Blob -> Task term
|
Parse :: Parser term -> Blob -> Task term
|
||||||
Analyze :: Analysis.Interpreter m effects => m effects result -> Task (Analysis.Result m effects result)
|
Analyze :: (Analysis.Evaluator location term value effects a -> result) -> Analysis.Evaluator location term value effects a -> Task result
|
||||||
Decorate :: Functor f => RAlgebra (TermF f (Record fields)) (Term f (Record fields)) field -> Term f (Record fields) -> Task (Term f (Record (field ': fields)))
|
Decorate :: Functor f => RAlgebra (TermF f (Record fields)) (Term f (Record fields)) field -> Term f (Record fields) -> Task (Term f (Record (field ': fields)))
|
||||||
Diff :: Differ syntax ann1 ann2 -> Term syntax ann1 -> Term syntax ann2 -> Task (Diff syntax ann1 ann2)
|
Diff :: Differ syntax ann1 ann2 -> Term syntax ann1 -> Term syntax ann2 -> Task (Diff syntax ann1 ann2)
|
||||||
Render :: Renderer input output -> input -> Task output
|
Render :: Renderer input output -> input -> Task output
|
||||||
@ -140,7 +140,7 @@ data Task output where
|
|||||||
runTaskF :: Members '[Reader Options, Telemetry, Exc SomeException, IO] effs => Eff (Task ': effs) a -> Eff effs a
|
runTaskF :: Members '[Reader Options, Telemetry, Exc SomeException, IO] effs => Eff (Task ': effs) a -> Eff effs a
|
||||||
runTaskF = interpret $ \ task -> case task of
|
runTaskF = interpret $ \ task -> case task of
|
||||||
Parse parser blob -> runParser blob parser
|
Parse parser blob -> runParser blob parser
|
||||||
Analyze analysis -> pure (Analysis.interpret analysis)
|
Analyze interpret analysis -> pure (interpret analysis)
|
||||||
Decorate algebra term -> pure (decoratorWithAlgebra algebra term)
|
Decorate algebra term -> pure (decoratorWithAlgebra algebra term)
|
||||||
Semantic.Task.Diff differ term1 term2 -> pure (differ term1 term2)
|
Semantic.Task.Diff differ term1 term2 -> pure (differ term1 term2)
|
||||||
Render renderer input -> pure (renderer input)
|
Render renderer input -> pure (renderer input)
|
||||||
|
Loading…
Reference in New Issue
Block a user