1
1
mirror of https://github.com/github/semantic.git synced 2024-12-19 12:51:52 +03:00

Define a single instance of AnalyzeTerm.

This commit is contained in:
Rob Rix 2019-10-18 14:39:22 -04:00
parent bef3ca1ed8
commit 298d584c29
No known key found for this signature in database
GPG Key ID: F188A01508EA1CF7

View File

@ -55,13 +55,11 @@ import Data.Abstract.Value.Type as Type
import Data.Abstract.AccessControls.Instances ()
import Data.Blob
import Data.Graph
import Data.Graph.ControlFlowVertex (VertexDeclaration, VertexDeclaration1)
import Data.Graph.ControlFlowVertex (VertexDeclaration)
import Data.Language as Language
import Data.List (isPrefixOf, isSuffixOf)
import qualified Data.Map as Map
import Data.Project
import Data.Quieterm (Quieterm)
import Data.Term
import Data.Text (pack, unpack)
import Language.Haskell.HsColour
import Language.Haskell.HsColour.Colourise
@ -90,26 +88,16 @@ class
) => AnalyzeTerm (term :: * -> *)
instance
( VertexDeclaration1 syntax
, Declarations1 syntax
, Evaluatable syntax
, FreeVariables1 syntax
, AccessControls1 syntax
, Functor syntax
, Ord1 syntax
, Show1 syntax
) => AnalyzeTerm (Term syntax)
instance
( VertexDeclaration1 syntax
, Declarations1 syntax
, Evaluatable syntax
, FreeVariables1 syntax
, AccessControls1 syntax
, Functor syntax
, Ord1 syntax
, Show1 syntax
) => AnalyzeTerm (Quieterm syntax)
( AccessControls (term Loc)
, Declarations (term Loc)
, Evaluatable (Base (term Loc))
, FreeVariables (term Loc)
, HasSpan (term Loc)
, Ord (term Loc)
, Recursive (term Loc)
, Show (term Loc)
, VertexDeclaration term
) => AnalyzeTerm term
analysisParsers :: Map Language (SomeParser AnalyzeTerm Loc)
analysisParsers = Map.fromList