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

Assign import declarations (not hidden)

This commit is contained in:
Rick Winfrey 2018-06-08 17:18:39 -07:00
parent fadf84870e
commit 9317972ca2
10 changed files with 1138 additions and 14 deletions

View File

@ -54,7 +54,11 @@ type Syntax = '[
, Syntax.FunctionType
, Syntax.GADT
, Syntax.GADTConstructor
, Syntax.HiddenImport
, Syntax.Identifier
, Syntax.Import
, Syntax.ImportAlias
, Syntax.ImportDeclaration
, Syntax.InfixOperatorPattern
, Syntax.Kind
, Syntax.KindFunctionType
@ -67,6 +71,8 @@ type Syntax = '[
, Syntax.NewType
, Syntax.Pragma
, Syntax.PrimitiveConstructorIdentifier
, Syntax.PrimitiveVariableIdentifier
, Syntax.QualifiedImportDeclaration
, Syntax.QualifiedModuleIdentifier
, Syntax.QualifiedTypeConstructorIdentifier
, Syntax.QuotedName
@ -187,6 +193,8 @@ expressionChoices = [
, functionType
, gadtConstructor
, gadtDeclaration
, importAlias
, importDeclaration
, infixOperatorPattern
, integer
, kind
@ -201,6 +209,8 @@ expressionChoices = [
, parenthesizedTypePattern
, pragma
, primitiveConstructorIdentifier
, primitiveVariableIdentifier
, qualifiedImportDeclaration
, qualifiedModuleIdentifier
, qualifiedTypeConstructorIdentifier
, quotedName
@ -281,6 +291,29 @@ gadtDeclaration = makeTerm
where
typeParameters' = makeTerm <$> location <*> manyTermsTill expression (symbol KindSignature <|> symbol Where')
hiddenImport :: Assignment
hiddenImport = makeTerm <$> symbol HiddenImport <*> children (Syntax.HiddenImport <$> expressions)
hiddenImportSpec :: Assignment.Assignment [] Grammar [Term]
hiddenImportSpec = symbol HiddenImportSpec *> children (manyTerm hiddenImport)
import' :: Assignment
import' = makeTerm <$> symbol Import <*> children (Syntax.Import <$> expressions)
importAlias :: Assignment
importAlias = makeTerm <$> symbol ImportAlias <*> children (Syntax.ImportAlias <$> expression <*> expression)
importDeclaration :: Assignment
importDeclaration = makeTerm
<$> symbol ImportDeclaration
<*> children (Syntax.ImportDeclaration
<$> (packageQualifiedImport <|> emptyTerm)
<*> expression
<*> (importSpec <|> hiddenImportSpec <|> pure []))
importSpec :: Assignment.Assignment [] Grammar [Term]
importSpec = symbol ImportSpec *> children (manyTerm import')
infixOperatorPattern :: Assignment
infixOperatorPattern = makeTerm <$> symbol InfixOperatorPattern <*> children (Syntax.InfixOperatorPattern <$> expression <*> operator <*> expression)
@ -318,7 +351,10 @@ listType = makeTerm <$> symbol ListType <*> children (Literal.Array <$> manyTerm
module' :: Assignment
module' = makeTerm
<$> symbol Module
<*> children (Syntax.Module <$> (term moduleIdentifier <|> emptyTerm) <*> moduleExports <*> (where' <|> expressions <|> emptyTerm))
<*> children (Syntax.Module
<$> (term moduleIdentifier <|> emptyTerm)
<*> moduleExports
<*> (where' <|> expressions <|> emptyTerm))
where
moduleExports = symbol ModuleExports *> children (manyTerm export)
<|> pure []
@ -340,6 +376,9 @@ newType = makeTerm <$> symbol NewtypeDeclaration <*> children (Syntax.NewType <$
operator :: Assignment
operator = typeOperator <|> constructorOperator <|> variableOperator
packageQualifiedImport :: Assignment
packageQualifiedImport = makeTerm <$> symbol PackageQualifiedImport <*> (Literal.TextElement <$> source)
parenthesizedTypePattern :: Assignment
parenthesizedTypePattern = symbol ParenthesizedTypePattern *> children expressions
@ -349,6 +388,17 @@ pragma = makeTerm <$> symbol Pragma <*> (Syntax.Pragma <$> source)
primitiveConstructorIdentifier :: Assignment
primitiveConstructorIdentifier = makeTerm <$> symbol PrimitiveConstructorIdentifier <*> (Syntax.PrimitiveConstructorIdentifier . Name.name <$> source)
primitiveVariableIdentifier :: Assignment
primitiveVariableIdentifier = makeTerm <$> symbol PrimitiveVariableIdentifier <*> (Syntax.PrimitiveVariableIdentifier . Name.name <$> source)
qualifiedImportDeclaration :: Assignment
qualifiedImportDeclaration = makeTerm
<$> symbol QualifiedImportDeclaration
<*> children (Syntax.QualifiedImportDeclaration
<$> (packageQualifiedImport <|> emptyTerm)
<*> expression
<*> (importSpec <|> hiddenImportSpec <|> pure []))
qualifiedModuleIdentifier :: Assignment
qualifiedModuleIdentifier = makeTerm <$> symbol QualifiedModuleIdentifier <*> children (Syntax.QualifiedModuleIdentifier <$> someTerm' expression)

View File

@ -434,6 +434,15 @@ instance Show1 PrimitiveConstructorIdentifier where liftShowsPrec = genericLiftS
instance Evaluatable PrimitiveConstructorIdentifier
newtype PrimitiveVariableIdentifier a = PrimitiveVariableIdentifier { primitiveVariableIdentifierName :: Name }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 PrimitiveVariableIdentifier where liftEq = genericLiftEq
instance Ord1 PrimitiveVariableIdentifier where liftCompare = genericLiftCompare
instance Show1 PrimitiveVariableIdentifier where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable PrimitiveVariableIdentifier
newtype ConstructorSymbol a = ConstructorSymbol { constructorSymbolName :: Name }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
@ -469,3 +478,48 @@ instance Ord1 StandaloneDerivingInstance where liftCompare = genericLiftCompare
instance Show1 StandaloneDerivingInstance where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable StandaloneDerivingInstance
data ImportDeclaration a = ImportDeclaration { importPackageQualifiedContent :: a, importModule :: a, importSpec :: [a] }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ImportDeclaration where liftEq = genericLiftEq
instance Ord1 ImportDeclaration where liftCompare = genericLiftCompare
instance Show1 ImportDeclaration where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ImportDeclaration
data QualifiedImportDeclaration a = QualifiedImportDeclaration { qualifiedImportPackageQualifiedContent :: a, qualifiedImportModule :: a, qualifiedImportSpec :: [a] }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 QualifiedImportDeclaration where liftEq = genericLiftEq
instance Ord1 QualifiedImportDeclaration where liftCompare = genericLiftCompare
instance Show1 QualifiedImportDeclaration where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable QualifiedImportDeclaration
newtype Import a = Import { importContent :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Import where liftEq = genericLiftEq
instance Ord1 Import where liftCompare = genericLiftCompare
instance Show1 Import where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable Import
newtype HiddenImport a = HiddenImport { hiddenimportContent :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 HiddenImport where liftEq = genericLiftEq
instance Ord1 HiddenImport where liftCompare = genericLiftCompare
instance Show1 HiddenImport where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable HiddenImport
data ImportAlias a = ImportAlias { importAliasSource :: a, importAliasName :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ImportAlias where liftEq = genericLiftEq
instance Ord1 ImportAlias where liftCompare = genericLiftCompare
instance Show1 ImportAlias where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ImportAlias

View File

@ -62,10 +62,6 @@
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
@ -79,6 +75,10 @@
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}

View File

@ -62,6 +62,15 @@
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
@ -72,15 +81,6 @@
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}

View File

@ -0,0 +1,27 @@
module A where
import Maybe
import Either()
import Data.Maybe (Maybe(..))
import Data.Aeson ((.:))
import Control.Comonad.Cofree ((:<))
import Data.Maybe (fromMaybe, fromJust)
import Data.Maybe (Maybe(..), fromMaybe, fromJust)
import qualified Data.Maybe
import qualified Either ()
import qualified Data.Function (fix)
import Data.Maybe as DM (Maybe(..))
import qualified Data.Maybe as DM
import qualified Either as E ()
import qualified Data.Aeson as JSON
import qualified Data.Aeson as D.A
import Data.Maybe as DM (Maybe(..), fromMaybe)
import qualified Data.Maybe as M (Maybe(..), fromMaybe)
import GHC.Prim (Proxy#, proxy#)
import "hint" HLint.Default

View File

@ -0,0 +1,27 @@
module A where
import Data.Maybe
import Data.Either()
import Data.Util.Maybe (Maybe(..))
import Data.Util.Aeson ((.:))
import Control.Util.Comonad.Cofree ((:<))
import Data.Util.Maybe (fromMaybe, fromJust)
import Data.Util.Maybe (Maybe(..), fromJust, fromMaybe)
import qualified Data.Util.Maybe
import qualified Data.Either ()
import qualified Data.Util.Function (fix)
import Data.Util.Maybe as DM (Maybe(..))
import qualified Data.Util.Maybe as DM
import qualified Data.Either as E ()
import qualified Data.Util.Aeson as JSON
import qualified Data.Util.Aeson as D.A
import Data.Util.Maybe as DM (Maybe(..), fromMaybe)
import qualified Data.Util.Maybe as UM (Maybe(..), fromMaybe)
import GHC.Prim (Box#, box#)
import "hlint" HLint.Util.Default

View File

@ -0,0 +1,321 @@
(Module
(ModuleIdentifier)
(Statements
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableOperator
{+(VariableSymbol)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(PrimitiveConstructorIdentifier)+})+}
{+(Import
{+(PrimitiveVariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(TextElement)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{-(ImportDeclaration
{-(Empty)-}
{-(ModuleIdentifier)-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(ModuleIdentifier)-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableOperator
{-(VariableSymbol)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ModuleIdentifier)-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(PrimitiveConstructorIdentifier)-})-}
{-(Import
{-(PrimitiveVariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(TextElement)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}))

View File

@ -0,0 +1,321 @@
(Module
(ModuleIdentifier)
(Statements
{+(ImportDeclaration
{+(Empty)+}
{+(ModuleIdentifier)+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(ModuleIdentifier)+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableOperator
{+(VariableSymbol)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ModuleIdentifier)+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(QualifiedImportDeclaration
{+(Empty)+}
{+(ImportAlias
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(AllConstructors)+})+})+}
{+(Import
{+(VariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(Empty)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+}
{+(Import
{+(PrimitiveConstructorIdentifier)+})+}
{+(Import
{+(PrimitiveVariableIdentifier)+})+})+}
{+(ImportDeclaration
{+(TextElement)+}
{+(QualifiedModuleIdentifier
{+(ModuleIdentifier)+}
{+(ModuleIdentifier)+})+})+}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableOperator
{-(VariableSymbol)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(QualifiedImportDeclaration
{-(Empty)-}
{-(ImportAlias
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(AllConstructors)-})-})-}
{-(Import
{-(VariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(Empty)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-}
{-(Import
{-(PrimitiveConstructorIdentifier)-})-}
{-(Import
{-(PrimitiveVariableIdentifier)-})-})-}
{-(ImportDeclaration
{-(TextElement)-}
{-(QualifiedModuleIdentifier
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-}
{-(ModuleIdentifier)-})-})-}))

View File

@ -0,0 +1,151 @@
(Module
(ModuleIdentifier)
(Statements
(ImportDeclaration
(Empty)
(ModuleIdentifier))
(ImportDeclaration
(Empty)
(ModuleIdentifier))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableOperator
(VariableSymbol))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(ConstructorOperator
(ConstructorSymbol))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableIdentifier))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier))
(Import
(VariableIdentifier)))
(QualifiedImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ModuleIdentifier))
(QualifiedImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors))))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(ModuleIdentifier)
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))))
(ImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(PrimitiveConstructorIdentifier))
(Import
(PrimitiveVariableIdentifier)))
(ImportDeclaration
(TextElement)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)))))

View File

@ -0,0 +1,173 @@
(Module
(ModuleIdentifier)
(Statements
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableOperator
(VariableSymbol))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(ConstructorOperator
(ConstructorSymbol))))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableIdentifier))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier))
(Import
(VariableIdentifier)))
(QualifiedImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors))))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))))
(ImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier)))
(QualifiedImportDeclaration
(Empty)
(ImportAlias
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier))
(ModuleIdentifier))
(Import
(Statements
(TypeConstructorIdentifier)
(AllConstructors)))
(Import
(VariableIdentifier)))
(ImportDeclaration
(Empty)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Import
(PrimitiveConstructorIdentifier))
(Import
(PrimitiveVariableIdentifier)))
(ImportDeclaration
(TextElement)
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier)
(ModuleIdentifier)))))