{-# LANGUAGE DeriveGeneric #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- UUAGC 0.9.53.1 (src/GLua/AG/AST.ag) module GLua.AG.AST where {-# LINE 10 "src/GLua/AG/AST.ag" #-} import GLua.AG.Token import GLua.Position import GLua.TokenTypes () import GHC.Generics import Data.Aeson {-# LINE 16 "src/GLua/AG/AST.hs" #-} -- AReturn ----------------------------------------------------- data AReturn = AReturn (Region) (MExprList) | NoReturn deriving ( Generic,Show) -- AST --------------------------------------------------------- data AST = AST (([MToken])) (Block) deriving ( Generic,Show) -- Args -------------------------------------------------------- data Args = ListArgs (MExprList) | TableArg (FieldList) | StringArg (MToken) deriving ( Generic,Show) -- BinOp ------------------------------------------------------- data BinOp = AOr | AAnd | ALT | AGT | ALEQ | AGEQ | ANEq | AEq | AConcatenate | APlus | BinMinus | AMultiply | ADivide | AModulus | APower deriving ( Eq,Generic,Ord,Show) -- Block ------------------------------------------------------- data Block = Block (Region) (MStatList) (AReturn) deriving ( Generic,Show) -- Declaration ------------------------------------------------- type Declaration = ( PrefixExp,MaybeMExpr) -- Else -------------------------------------------------------- type Else = Maybe (MElse) -- ElseIf ------------------------------------------------------ type ElseIf = ( MExpr,Block) -- ElseIfList -------------------------------------------------- type ElseIfList = [MElseIf] -- Expr -------------------------------------------------------- data Expr = ANil | AFalse | ATrue | ANumber (String) | AString (MToken) | AVarArg | AnonymousFunc (([MToken])) (Block) | APrefixExpr (PrefixExp) | ATableConstructor (FieldList) | BinOpExpr (BinOp) (MExpr) (MExpr) | UnOpExpr (UnOp) (MExpr) deriving ( Generic,Show) -- ExprSuffixList ---------------------------------------------- type ExprSuffixList = [PFExprSuffix] -- Field ------------------------------------------------------- data Field = ExprField (MExpr) (MExpr) (FieldSep) | NamedField (MToken) (MExpr) (FieldSep) | UnnamedField (MExpr) (FieldSep) deriving ( Generic,Show) -- FieldList --------------------------------------------------- type FieldList = [Field] -- FieldSep ---------------------------------------------------- data FieldSep = CommaSep | SemicolonSep | NoSep deriving ( Eq,Generic,Show) -- FuncName ---------------------------------------------------- data FuncName = FuncName (([MToken])) ((Maybe MToken)) deriving ( Generic,Show) -- MElse ------------------------------------------------------- data MElse = MElse (Region) (Block) deriving ( Generic,Show) -- MElseIf ----------------------------------------------------- data MElseIf = MElseIf (Region) (ElseIf) deriving ( Generic,Show) -- MExpr ------------------------------------------------------- data MExpr = MExpr (Region) (Expr) deriving ( Generic,Show) -- MExprList --------------------------------------------------- type MExprList = [MExpr] -- MStat ------------------------------------------------------- data MStat = MStat (Region) (Stat) deriving ( Generic,Show) -- MStatList --------------------------------------------------- type MStatList = [MStat] -- MaybeMExpr -------------------------------------------------- type MaybeMExpr = Maybe (MExpr) -- PFExprSuffix ------------------------------------------------ data PFExprSuffix = Call (Args) | MetaCall (MToken) (Args) | ExprIndex (MExpr) | DotIndex (MToken) deriving ( Generic,Show) -- PrefixExp --------------------------------------------------- data PrefixExp = PFVar (MToken) (ExprSuffixList) | ExprVar (MExpr) (ExprSuffixList) deriving ( Generic,Show) -- Stat -------------------------------------------------------- data Stat = Def (VarsList) | LocDef (VarsList) | AFuncCall (PrefixExp) | ALabel (MToken) | ABreak | AContinue | AGoto (MToken) | ADo (Block) | AWhile (MExpr) (Block) | ARepeat (Block) (MExpr) | AIf (MExpr) (Block) (ElseIfList) (Else) | ANFor (MToken) (MExpr) (MExpr) (MExpr) (Block) | AGFor (([MToken])) (MExprList) (Block) | AFunc (FuncName) (([MToken])) (Block) | ALocFunc (FuncName) (([MToken])) (Block) deriving ( Generic,Show) -- UnOp -------------------------------------------------------- data UnOp = UnMinus | ANot | AHash deriving ( Generic,Show) -- VarsList ---------------------------------------------------- type VarsList = [Declaration]