Cabal-syntax-3.12.0.0: A library for working with .cabal files
Safe HaskellNone
LanguageHaskell2010

Distribution.SPDX.LicenseExpression

Synopsis

Documentation

data LicenseExpression Source #

SPDX License Expression.

idstring              = 1*(ALPHA / DIGIT / "-" / "." )
license id            = <short form license identifier inAppendix I.1>
license exception id  = <short form license exception identifier inAppendix I.2>
license ref           = ["DocumentRef-"1*(idstring)":"]"LicenseRef-"1*(idstring)

simple expression     = license id / license id"+" / license ref

compound expression   = 1*1(simple expression /
                        simple expression "WITH" license exception id /
                        compound expression "AND" compound expression /
                        compound expression "OR" compound expression ) /
                        "(" compound expression ")" )

license expression    = 1*1(simple expression / compound expression)

Instances

Instances details
Parsec LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Pretty LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Structured LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Binary LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

NFData LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Methods

rnf :: LicenseExpression -> () Source #

Data LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LicenseExpression -> c LicenseExpression #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LicenseExpression #

toConstr :: LicenseExpression -> Constr #

dataTypeOf :: LicenseExpression -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LicenseExpression) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LicenseExpression) #

gmapT :: (forall b. Data b => b -> b) -> LicenseExpression -> LicenseExpression #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExpression -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExpression -> r #

gmapQ :: (forall d. Data d => d -> u) -> LicenseExpression -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LicenseExpression -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression #

Generic LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Read LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Show LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Eq LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Ord LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

type Rep LicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

data SimpleLicenseExpression Source #

Simple License Expressions.

Constructors

ELicenseId LicenseId

An SPDX License List Short Form Identifier. For example: GPL-2.0-only

ELicenseIdPlus LicenseId

An SPDX License List Short Form Identifier with a unary"+" operator suffix to represent the current version of the license or any later version. For example: GPL-2.0+

ELicenseRef LicenseRef

A SPDX user defined license reference: For example: LicenseRef-23, LicenseRef-MIT-Style-1, or DocumentRef-spdx-tool-1.2:LicenseRef-MIT-Style-2

Instances

Instances details
Parsec SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Pretty SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Structured SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Binary SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

NFData SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Data SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SimpleLicenseExpression -> c SimpleLicenseExpression #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SimpleLicenseExpression #

toConstr :: SimpleLicenseExpression -> Constr #

dataTypeOf :: SimpleLicenseExpression -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SimpleLicenseExpression) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SimpleLicenseExpression) #

gmapT :: (forall b. Data b => b -> b) -> SimpleLicenseExpression -> SimpleLicenseExpression #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SimpleLicenseExpression -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SimpleLicenseExpression -> r #

gmapQ :: (forall d. Data d => d -> u) -> SimpleLicenseExpression -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SimpleLicenseExpression -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SimpleLicenseExpression -> m SimpleLicenseExpression #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SimpleLicenseExpression -> m SimpleLicenseExpression #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SimpleLicenseExpression -> m SimpleLicenseExpression #

Generic SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Associated Types

type Rep SimpleLicenseExpression 
Instance details

Defined in Distribution.SPDX.LicenseExpression

type Rep SimpleLicenseExpression = D1 ('MetaData "SimpleLicenseExpression" "Distribution.SPDX.LicenseExpression" "Cabal-syntax-3.12.0.0-d5d4" 'False) (C1 ('MetaCons "ELicenseId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseId)) :+: (C1 ('MetaCons "ELicenseIdPlus" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseId)) :+: C1 ('MetaCons "ELicenseRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseRef))))
Read SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Show SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Eq SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Ord SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

type Rep SimpleLicenseExpression Source # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

type Rep SimpleLicenseExpression = D1 ('MetaData "SimpleLicenseExpression" "Distribution.SPDX.LicenseExpression" "Cabal-syntax-3.12.0.0-d5d4" 'False) (C1 ('MetaCons "ELicenseId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseId)) :+: (C1 ('MetaCons "ELicenseIdPlus" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseId)) :+: C1 ('MetaCons "ELicenseRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseRef))))