language-lua-0.10.0: Lua parser and pretty-printer

Safe HaskellSafe
LanguageHaskell2010

Language.Lua.Annotated.Syntax

Description

Lua 5.3 syntax tree, as specified in http://www.lua.org/manual/5.3/manual.html#9. Annotation implementation is inspired by haskell-src-exts.

Synopsis

Documentation

data Name a Source #

Constructors

Name a Text 

Instances

Functor Name Source # 

Methods

fmap :: (a -> b) -> Name a -> Name b #

(<$) :: a -> Name b -> Name a #

Annotated Name Source # 

Methods

ann :: Name l -> l Source #

amap :: (l -> l) -> Name l -> Name l Source #

Eq a => Eq (Name a) Source # 

Methods

(==) :: Name a -> Name a -> Bool #

(/=) :: Name a -> Name a -> Bool #

Data a => Data (Name a) Source # 

Methods

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

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

toConstr :: Name a -> Constr #

dataTypeOf :: Name a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Name a) Source # 

Methods

showsPrec :: Int -> Name a -> ShowS #

show :: Name a -> String #

showList :: [Name a] -> ShowS #

Generic (Name a) Source # 

Associated Types

type Rep (Name a) :: * -> * #

Methods

from :: Name a -> Rep (Name a) x #

to :: Rep (Name a) x -> Name a #

NFData a => NFData (Name a) Source # 

Methods

rnf :: Name a -> () #

type Rep (Name a) Source # 
type Rep (Name a) = D1 (MetaData "Name" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) (C1 (MetaCons "Name" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text))))

data Stat a Source #

Constructors

Assign a [Var a] [Exp a]

var1, var2 .. = exp1, exp2 ..

FunCall a (FunCall a)

function call

Label a (Name a)

label for goto

Break a

break

Goto a (Name a)

goto label

Do a (Block a)

do .. end

While a (Exp a) (Block a)

while .. do .. end

Repeat a (Block a) (Exp a)

repeat .. until ..

If a [(Exp a, Block a)] (Maybe (Block a))

if .. then .. [elseif ..] [else ..] end

ForRange a (Name a) (Exp a) (Exp a) (Maybe (Exp a)) (Block a)

for x=start, end [, step] do .. end

ForIn a [Name a] [Exp a] (Block a)

for x in .. do .. end

FunAssign a (FunName a) (FunBody a)

function <var> (..) .. end

LocalFunAssign a (Name a) (FunBody a)

local function <var> (..) .. end

LocalAssign a [Name a] (Maybe [Exp a])

local var1, var2 .. = exp1, exp2 ..

EmptyStat a

;

Instances

Functor Stat Source # 

Methods

fmap :: (a -> b) -> Stat a -> Stat b #

(<$) :: a -> Stat b -> Stat a #

Annotated Stat Source # 

Methods

ann :: Stat l -> l Source #

amap :: (l -> l) -> Stat l -> Stat l Source #

Eq a => Eq (Stat a) Source # 

Methods

(==) :: Stat a -> Stat a -> Bool #

(/=) :: Stat a -> Stat a -> Bool #

Data a => Data (Stat a) Source # 

Methods

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

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

toConstr :: Stat a -> Constr #

dataTypeOf :: Stat a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Stat a) Source # 

Methods

showsPrec :: Int -> Stat a -> ShowS #

show :: Stat a -> String #

showList :: [Stat a] -> ShowS #

Generic (Stat a) Source # 

Associated Types

type Rep (Stat a) :: * -> * #

Methods

from :: Stat a -> Rep (Stat a) x #

to :: Rep (Stat a) x -> Stat a #

NFData a => NFData (Stat a) Source # 

Methods

rnf :: Stat a -> () #

type Rep (Stat a) Source # 
type Rep (Stat a) = D1 (MetaData "Stat" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "Assign" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Var a])) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Exp a]))))) ((:+:) (C1 (MetaCons "FunCall" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunCall a))))) (C1 (MetaCons "Label" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Name a))))))) ((:+:) ((:+:) (C1 (MetaCons "Break" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Goto" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Name a)))))) ((:+:) (C1 (MetaCons "Do" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a))))) (C1 (MetaCons "While" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a))))))))) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "Repeat" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a)))))) (C1 (MetaCons "If" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Exp a, Block a)])) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Block a)))))))) ((:+:) (C1 (MetaCons "ForRange" PrefixI False) ((:*:) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Name a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a))))) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a))) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Exp a)))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a))))))) (C1 (MetaCons "ForIn" PrefixI False) ((:*:) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Name a]))) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Exp a])) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Block a)))))))) ((:+:) ((:+:) (C1 (MetaCons "FunAssign" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunName a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunBody a)))))) (C1 (MetaCons "LocalFunAssign" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Name a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunBody a))))))) ((:+:) (C1 (MetaCons "LocalAssign" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Name a])) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [Exp a])))))) (C1 (MetaCons "EmptyStat" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))))

data Exp a Source #

Constructors

Nil a 
Bool a Bool 
Number a Text 
String a Text 
Vararg a

...

EFunDef a (FunDef a)

function (..) .. end

PrefixExp a (PrefixExp a) 
TableConst a (Table a)

table constructor

Binop a (Binop a) (Exp a) (Exp a)

binary operators, + - * ^ % .. <= >= == ~= and or

Unop a (Unop a) (Exp a)

unary operators, - not #

Instances

Functor Exp Source # 

Methods

fmap :: (a -> b) -> Exp a -> Exp b #

(<$) :: a -> Exp b -> Exp a #

Annotated Exp Source # 

Methods

ann :: Exp l -> l Source #

amap :: (l -> l) -> Exp l -> Exp l Source #

Eq a => Eq (Exp a) Source # 

Methods

(==) :: Exp a -> Exp a -> Bool #

(/=) :: Exp a -> Exp a -> Bool #

Data a => Data (Exp a) Source # 

Methods

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

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

toConstr :: Exp a -> Constr #

dataTypeOf :: Exp a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Exp a) Source # 

Methods

showsPrec :: Int -> Exp a -> ShowS #

show :: Exp a -> String #

showList :: [Exp a] -> ShowS #

Generic (Exp a) Source # 

Associated Types

type Rep (Exp a) :: * -> * #

Methods

from :: Exp a -> Rep (Exp a) x #

to :: Rep (Exp a) x -> Exp a #

NFData a => NFData (Exp a) Source # 

Methods

rnf :: Exp a -> () #

type Rep (Exp a) Source # 
type Rep (Exp a) = D1 (MetaData "Exp" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "Nil" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Bool" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))) ((:+:) (C1 (MetaCons "Number" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))) ((:+:) (C1 (MetaCons "String" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))) (C1 (MetaCons "Vararg" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))) ((:+:) ((:+:) (C1 (MetaCons "EFunDef" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunDef a))))) (C1 (MetaCons "PrefixExp" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (PrefixExp a)))))) ((:+:) (C1 (MetaCons "TableConst" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Table a))))) ((:+:) (C1 (MetaCons "Binop" PrefixI False) ((:*:) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Binop a)))) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a)))))) (C1 (MetaCons "Unop" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Unop a))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Exp a))))))))))

data Var a Source #

Constructors

VarName a (Name a)

variable

Select a (PrefixExp a) (Exp a)

table[exp]

SelectName a (PrefixExp a) (Name a)

table.variable

Instances

Functor Var Source # 

Methods

fmap :: (a -> b) -> Var a -> Var b #

(<$) :: a -> Var b -> Var a #

Annotated Var Source # 

Methods

ann :: Var l -> l Source #

amap :: (l -> l) -> Var l -> Var l Source #

Eq a => Eq (Var a) Source # 

Methods

(==) :: Var a -> Var a -> Bool #

(/=) :: Var a -> Var a -> Bool #

Data a => Data (Var a) Source # 

Methods

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

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

toConstr :: Var a -> Constr #

dataTypeOf :: Var a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Var a) Source # 

Methods

showsPrec :: Int -> Var a -> ShowS #

show :: Var a -> String #

showList :: [Var a] -> ShowS #

Generic (Var a) Source # 

Associated Types

type Rep (Var a) :: * -> * #

Methods

from :: Var a -> Rep (Var a) x #

to :: Rep (Var a) x -> Var a #

NFData a => NFData (Var a) Source # 

Methods

rnf :: Var a -> () #

type Rep (Var a) Source # 

data Binop a Source #

Constructors

Add a 
Sub a 
Mul a 
Div a 
Exp a 
Mod a 
Concat a 
LT a 
LTE a 
GT a 
GTE a 
EQ a 
NEQ a 
And a 
Or a 
IDiv a 
ShiftL a 
ShiftR a 
BAnd a 
BOr a 
BXor a 

Instances

Functor Binop Source # 

Methods

fmap :: (a -> b) -> Binop a -> Binop b #

(<$) :: a -> Binop b -> Binop a #

Annotated Binop Source # 

Methods

ann :: Binop l -> l Source #

amap :: (l -> l) -> Binop l -> Binop l Source #

Eq a => Eq (Binop a) Source # 

Methods

(==) :: Binop a -> Binop a -> Bool #

(/=) :: Binop a -> Binop a -> Bool #

Data a => Data (Binop a) Source # 

Methods

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

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

toConstr :: Binop a -> Constr #

dataTypeOf :: Binop a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Binop a) Source # 

Methods

showsPrec :: Int -> Binop a -> ShowS #

show :: Binop a -> String #

showList :: [Binop a] -> ShowS #

Generic (Binop a) Source # 

Associated Types

type Rep (Binop a) :: * -> * #

Methods

from :: Binop a -> Rep (Binop a) x #

to :: Rep (Binop a) x -> Binop a #

NFData a => NFData (Binop a) Source # 

Methods

rnf :: Binop a -> () #

type Rep (Binop a) Source # 
type Rep (Binop a) = D1 (MetaData "Binop" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) ((:+:) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "Add" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Sub" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) ((:+:) (C1 (MetaCons "Mul" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) ((:+:) (C1 (MetaCons "Div" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Exp" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))) ((:+:) ((:+:) (C1 (MetaCons "Mod" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Concat" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) ((:+:) (C1 (MetaCons "LT" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) ((:+:) (C1 (MetaCons "LTE" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "GT" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "GTE" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "EQ" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) ((:+:) (C1 (MetaCons "NEQ" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) ((:+:) (C1 (MetaCons "And" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Or" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))))) ((:+:) ((:+:) (C1 (MetaCons "IDiv" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) ((:+:) (C1 (MetaCons "ShiftL" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "ShiftR" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))) ((:+:) (C1 (MetaCons "BAnd" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) ((:+:) (C1 (MetaCons "BOr" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "BXor" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))))))

data Unop a Source #

Constructors

Neg a 
Not a 
Len a 
Complement a 

Instances

Functor Unop Source # 

Methods

fmap :: (a -> b) -> Unop a -> Unop b #

(<$) :: a -> Unop b -> Unop a #

Annotated Unop Source # 

Methods

ann :: Unop l -> l Source #

amap :: (l -> l) -> Unop l -> Unop l Source #

Eq a => Eq (Unop a) Source # 

Methods

(==) :: Unop a -> Unop a -> Bool #

(/=) :: Unop a -> Unop a -> Bool #

Data a => Data (Unop a) Source # 

Methods

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

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

toConstr :: Unop a -> Constr #

dataTypeOf :: Unop a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Unop a) Source # 

Methods

showsPrec :: Int -> Unop a -> ShowS #

show :: Unop a -> String #

showList :: [Unop a] -> ShowS #

Generic (Unop a) Source # 

Associated Types

type Rep (Unop a) :: * -> * #

Methods

from :: Unop a -> Rep (Unop a) x #

to :: Rep (Unop a) x -> Unop a #

NFData a => NFData (Unop a) Source # 

Methods

rnf :: Unop a -> () #

type Rep (Unop a) Source # 

data PrefixExp a Source #

Constructors

PEVar a (Var a) 
PEFunCall a (FunCall a) 
Paren a (Exp a) 

Instances

Functor PrefixExp Source # 

Methods

fmap :: (a -> b) -> PrefixExp a -> PrefixExp b #

(<$) :: a -> PrefixExp b -> PrefixExp a #

Annotated PrefixExp Source # 

Methods

ann :: PrefixExp l -> l Source #

amap :: (l -> l) -> PrefixExp l -> PrefixExp l Source #

Eq a => Eq (PrefixExp a) Source # 

Methods

(==) :: PrefixExp a -> PrefixExp a -> Bool #

(/=) :: PrefixExp a -> PrefixExp a -> Bool #

Data a => Data (PrefixExp a) Source # 

Methods

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

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

toConstr :: PrefixExp a -> Constr #

dataTypeOf :: PrefixExp a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (PrefixExp a) Source # 
Generic (PrefixExp a) Source # 

Associated Types

type Rep (PrefixExp a) :: * -> * #

Methods

from :: PrefixExp a -> Rep (PrefixExp a) x #

to :: Rep (PrefixExp a) x -> PrefixExp a #

NFData a => NFData (PrefixExp a) Source # 

Methods

rnf :: PrefixExp a -> () #

type Rep (PrefixExp a) Source # 

data Table a Source #

Constructors

Table a [TableField a]

list of table fields

Instances

Functor Table Source # 

Methods

fmap :: (a -> b) -> Table a -> Table b #

(<$) :: a -> Table b -> Table a #

Annotated Table Source # 

Methods

ann :: Table l -> l Source #

amap :: (l -> l) -> Table l -> Table l Source #

Eq a => Eq (Table a) Source # 

Methods

(==) :: Table a -> Table a -> Bool #

(/=) :: Table a -> Table a -> Bool #

Data a => Data (Table a) Source # 

Methods

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

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

toConstr :: Table a -> Constr #

dataTypeOf :: Table a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Table a) Source # 

Methods

showsPrec :: Int -> Table a -> ShowS #

show :: Table a -> String #

showList :: [Table a] -> ShowS #

Generic (Table a) Source # 

Associated Types

type Rep (Table a) :: * -> * #

Methods

from :: Table a -> Rep (Table a) x #

to :: Rep (Table a) x -> Table a #

NFData a => NFData (Table a) Source # 

Methods

rnf :: Table a -> () #

type Rep (Table a) Source # 
type Rep (Table a) = D1 (MetaData "Table" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) (C1 (MetaCons "Table" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [TableField a]))))

data TableField a Source #

Constructors

ExpField a (Exp a) (Exp a)

[exp] = exp

NamedField a (Name a) (Exp a)

name = exp

Field a (Exp a) 

Instances

Functor TableField Source # 

Methods

fmap :: (a -> b) -> TableField a -> TableField b #

(<$) :: a -> TableField b -> TableField a #

Annotated TableField Source # 

Methods

ann :: TableField l -> l Source #

amap :: (l -> l) -> TableField l -> TableField l Source #

Eq a => Eq (TableField a) Source # 

Methods

(==) :: TableField a -> TableField a -> Bool #

(/=) :: TableField a -> TableField a -> Bool #

Data a => Data (TableField a) Source # 

Methods

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

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

toConstr :: TableField a -> Constr #

dataTypeOf :: TableField a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (TableField a) Source # 
Generic (TableField a) Source # 

Associated Types

type Rep (TableField a) :: * -> * #

Methods

from :: TableField a -> Rep (TableField a) x #

to :: Rep (TableField a) x -> TableField a #

NFData a => NFData (TableField a) Source # 

Methods

rnf :: TableField a -> () #

type Rep (TableField a) Source # 

data Block a Source #

A block is list of statements with optional return statement.

Constructors

Block a [Stat a] (Maybe [Exp a]) 

Instances

Functor Block Source # 

Methods

fmap :: (a -> b) -> Block a -> Block b #

(<$) :: a -> Block b -> Block a #

Annotated Block Source # 

Methods

ann :: Block l -> l Source #

amap :: (l -> l) -> Block l -> Block l Source #

Eq a => Eq (Block a) Source # 

Methods

(==) :: Block a -> Block a -> Bool #

(/=) :: Block a -> Block a -> Bool #

Data a => Data (Block a) Source # 

Methods

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

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

toConstr :: Block a -> Constr #

dataTypeOf :: Block a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (Block a) Source # 

Methods

showsPrec :: Int -> Block a -> ShowS #

show :: Block a -> String #

showList :: [Block a] -> ShowS #

Generic (Block a) Source # 

Associated Types

type Rep (Block a) :: * -> * #

Methods

from :: Block a -> Rep (Block a) x #

to :: Rep (Block a) x -> Block a #

NFData a => NFData (Block a) Source # 

Methods

rnf :: Block a -> () #

type Rep (Block a) Source # 

data FunName a Source #

Constructors

FunName a (Name a) [Name a] (Maybe (Name a)) 

Instances

Functor FunName Source # 

Methods

fmap :: (a -> b) -> FunName a -> FunName b #

(<$) :: a -> FunName b -> FunName a #

Annotated FunName Source # 

Methods

ann :: FunName l -> l Source #

amap :: (l -> l) -> FunName l -> FunName l Source #

Eq a => Eq (FunName a) Source # 

Methods

(==) :: FunName a -> FunName a -> Bool #

(/=) :: FunName a -> FunName a -> Bool #

Data a => Data (FunName a) Source # 

Methods

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

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

toConstr :: FunName a -> Constr #

dataTypeOf :: FunName a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (FunName a) Source # 

Methods

showsPrec :: Int -> FunName a -> ShowS #

show :: FunName a -> String #

showList :: [FunName a] -> ShowS #

Generic (FunName a) Source # 

Associated Types

type Rep (FunName a) :: * -> * #

Methods

from :: FunName a -> Rep (FunName a) x #

to :: Rep (FunName a) x -> FunName a #

NFData a => NFData (FunName a) Source # 

Methods

rnf :: FunName a -> () #

type Rep (FunName a) Source # 

data FunDef a Source #

Constructors

FunDef a (FunBody a) 

Instances

Functor FunDef Source # 

Methods

fmap :: (a -> b) -> FunDef a -> FunDef b #

(<$) :: a -> FunDef b -> FunDef a #

Annotated FunDef Source # 

Methods

ann :: FunDef l -> l Source #

amap :: (l -> l) -> FunDef l -> FunDef l Source #

Eq a => Eq (FunDef a) Source # 

Methods

(==) :: FunDef a -> FunDef a -> Bool #

(/=) :: FunDef a -> FunDef a -> Bool #

Data a => Data (FunDef a) Source # 

Methods

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

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

toConstr :: FunDef a -> Constr #

dataTypeOf :: FunDef a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (FunDef a) Source # 

Methods

showsPrec :: Int -> FunDef a -> ShowS #

show :: FunDef a -> String #

showList :: [FunDef a] -> ShowS #

Generic (FunDef a) Source # 

Associated Types

type Rep (FunDef a) :: * -> * #

Methods

from :: FunDef a -> Rep (FunDef a) x #

to :: Rep (FunDef a) x -> FunDef a #

NFData a => NFData (FunDef a) Source # 

Methods

rnf :: FunDef a -> () #

type Rep (FunDef a) Source # 
type Rep (FunDef a) = D1 (MetaData "FunDef" "Language.Lua.Annotated.Syntax" "language-lua-0.10.0-LwLnSVnMwI831ftXyalofr" False) (C1 (MetaCons "FunDef" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FunBody a)))))

data FunBody a Source #

Constructors

FunBody a [Name a] (Maybe a) (Block a)

(args, vararg, block)

Instances

Functor FunBody Source # 

Methods

fmap :: (a -> b) -> FunBody a -> FunBody b #

(<$) :: a -> FunBody b -> FunBody a #

Annotated FunBody Source # 

Methods

ann :: FunBody l -> l Source #

amap :: (l -> l) -> FunBody l -> FunBody l Source #

Eq a => Eq (FunBody a) Source # 

Methods

(==) :: FunBody a -> FunBody a -> Bool #

(/=) :: FunBody a -> FunBody a -> Bool #

Data a => Data (FunBody a) Source # 

Methods

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

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

toConstr :: FunBody a -> Constr #

dataTypeOf :: FunBody a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (FunBody a) Source # 

Methods

showsPrec :: Int -> FunBody a -> ShowS #

show :: FunBody a -> String #

showList :: [FunBody a] -> ShowS #

Generic (FunBody a) Source # 

Associated Types

type Rep (FunBody a) :: * -> * #

Methods

from :: FunBody a -> Rep (FunBody a) x #

to :: Rep (FunBody a) x -> FunBody a #

NFData a => NFData (FunBody a) Source # 

Methods

rnf :: FunBody a -> () #

type Rep (FunBody a) Source # 

data FunCall a Source #

Constructors

NormalFunCall a (PrefixExp a) (FunArg a)

prefixexp ( funarg )

MethodCall a (PrefixExp a) (Name a) (FunArg a)

prefixexp : name ( funarg )

Instances

Functor FunCall Source # 

Methods

fmap :: (a -> b) -> FunCall a -> FunCall b #

(<$) :: a -> FunCall b -> FunCall a #

Annotated FunCall Source # 

Methods

ann :: FunCall l -> l Source #

amap :: (l -> l) -> FunCall l -> FunCall l Source #

Eq a => Eq (FunCall a) Source # 

Methods

(==) :: FunCall a -> FunCall a -> Bool #

(/=) :: FunCall a -> FunCall a -> Bool #

Data a => Data (FunCall a) Source # 

Methods

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

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

toConstr :: FunCall a -> Constr #

dataTypeOf :: FunCall a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (FunCall a) Source # 

Methods

showsPrec :: Int -> FunCall a -> ShowS #

show :: FunCall a -> String #

showList :: [FunCall a] -> ShowS #

Generic (FunCall a) Source # 

Associated Types

type Rep (FunCall a) :: * -> * #

Methods

from :: FunCall a -> Rep (FunCall a) x #

to :: Rep (FunCall a) x -> FunCall a #

NFData a => NFData (FunCall a) Source # 

Methods

rnf :: FunCall a -> () #

type Rep (FunCall a) Source # 

data FunArg a Source #

Constructors

Args a [Exp a]

list of args

TableArg a (Table a)

table constructor

StringArg a Text

string

Instances

Functor FunArg Source # 

Methods

fmap :: (a -> b) -> FunArg a -> FunArg b #

(<$) :: a -> FunArg b -> FunArg a #

Annotated FunArg Source # 

Methods

ann :: FunArg l -> l Source #

amap :: (l -> l) -> FunArg l -> FunArg l Source #

Eq a => Eq (FunArg a) Source # 

Methods

(==) :: FunArg a -> FunArg a -> Bool #

(/=) :: FunArg a -> FunArg a -> Bool #

Data a => Data (FunArg a) Source # 

Methods

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

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

toConstr :: FunArg a -> Constr #

dataTypeOf :: FunArg a -> DataType #

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

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

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

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

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

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

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

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

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

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

Show a => Show (FunArg a) Source # 

Methods

showsPrec :: Int -> FunArg a -> ShowS #

show :: FunArg a -> String #

showList :: [FunArg a] -> ShowS #

Generic (FunArg a) Source # 

Associated Types

type Rep (FunArg a) :: * -> * #

Methods

from :: FunArg a -> Rep (FunArg a) x #

to :: Rep (FunArg a) x -> FunArg a #

NFData a => NFData (FunArg a) Source # 

Methods

rnf :: FunArg a -> () #

type Rep (FunArg a) Source # 

class Functor ast => Annotated ast where Source #

Minimal complete definition

ann, amap

Methods

ann :: ast l -> l Source #

Retrieve the annotation of an AST node.

amap :: (l -> l) -> ast l -> ast l Source #

Change the annotation of an AST node. Note that only the annotation of the node itself is affected, and not the annotations of any child nodes. if all nodes in the AST tree are to be affected, use fmap.

Instances

Annotated FunArg Source # 

Methods

ann :: FunArg l -> l Source #

amap :: (l -> l) -> FunArg l -> FunArg l Source #

Annotated FunCall Source # 

Methods

ann :: FunCall l -> l Source #

amap :: (l -> l) -> FunCall l -> FunCall l Source #

Annotated FunBody Source # 

Methods

ann :: FunBody l -> l Source #

amap :: (l -> l) -> FunBody l -> FunBody l Source #

Annotated FunDef Source # 

Methods

ann :: FunDef l -> l Source #

amap :: (l -> l) -> FunDef l -> FunDef l Source #

Annotated FunName Source # 

Methods

ann :: FunName l -> l Source #

amap :: (l -> l) -> FunName l -> FunName l Source #

Annotated Block Source # 

Methods

ann :: Block l -> l Source #

amap :: (l -> l) -> Block l -> Block l Source #

Annotated TableField Source # 

Methods

ann :: TableField l -> l Source #

amap :: (l -> l) -> TableField l -> TableField l Source #

Annotated Table Source # 

Methods

ann :: Table l -> l Source #

amap :: (l -> l) -> Table l -> Table l Source #

Annotated PrefixExp Source # 

Methods

ann :: PrefixExp l -> l Source #

amap :: (l -> l) -> PrefixExp l -> PrefixExp l Source #

Annotated Unop Source # 

Methods

ann :: Unop l -> l Source #

amap :: (l -> l) -> Unop l -> Unop l Source #

Annotated Binop Source # 

Methods

ann :: Binop l -> l Source #

amap :: (l -> l) -> Binop l -> Binop l Source #

Annotated Var Source # 

Methods

ann :: Var l -> l Source #

amap :: (l -> l) -> Var l -> Var l Source #

Annotated Exp Source # 

Methods

ann :: Exp l -> l Source #

amap :: (l -> l) -> Exp l -> Exp l Source #

Annotated Stat Source # 

Methods

ann :: Stat l -> l Source #

amap :: (l -> l) -> Stat l -> Stat l Source #

Annotated Name Source # 

Methods

ann :: Name l -> l Source #

amap :: (l -> l) -> Name l -> Name l Source #