glualint-1.26.0: src/GLua/AG/AST.hs
{-# LANGUAGE DeriveGeneric #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- UUAGC 0.9.55 (src/GLua/AG/AST.ag)
module GLua.AG.AST where
{-# LINE 10 "src/GLua/AG/AST.ag" #-}
import Data.Aeson
import GHC.Generics
import GLua.AG.Token
import GLua.TokenTypes ()
{-# LINE 15 "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 (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]