packages feed

glualint-1.24.6: src/GLua/AG/AST.hs


{-# 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.TokenTypes ()
import GHC.Generics
import Data.Aeson
{-# 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]