-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Lua parser and pretty-printer -- -- Lua 5.3 lexer, parser and pretty-printer. @package language-lua @version 0.8.1 -- | 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. module Language.Lua.Annotated.Syntax data Name a Name :: a -> String -> Name a data Stat a -- | var1, var2 .. = exp1, exp2 .. Assign :: a -> [Var a] -> [Exp a] -> Stat a -- | function call FunCall :: a -> (FunCall a) -> Stat a -- | label for goto Label :: a -> (Name a) -> Stat a -- | break Break :: a -> Stat a -- | goto label Goto :: a -> (Name a) -> Stat a -- | do .. end Do :: a -> (Block a) -> Stat a -- | while .. do .. end While :: a -> (Exp a) -> (Block a) -> Stat a -- | repeat .. until .. Repeat :: a -> (Block a) -> (Exp a) -> Stat a -- | if .. then .. [elseif ..] [else ..] end If :: a -> [(Exp a, Block a)] -> (Maybe (Block a)) -> Stat a -- | for x=start, end [, step] do .. end ForRange :: a -> (Name a) -> (Exp a) -> (Exp a) -> (Maybe (Exp a)) -> (Block a) -> Stat a -- | for x in .. do .. end ForIn :: a -> [Name a] -> [Exp a] -> (Block a) -> Stat a -- | function <var> (..) .. end FunAssign :: a -> (FunName a) -> (FunBody a) -> Stat a -- | local function <var> (..) .. end LocalFunAssign :: a -> (Name a) -> (FunBody a) -> Stat a -- | local var1, var2 .. = exp1, exp2 .. LocalAssign :: a -> [Name a] -> (Maybe [Exp a]) -> Stat a -- | ; EmptyStat :: a -> Stat a data Exp a Nil :: a -> Exp a Bool :: a -> Bool -> Exp a Number :: a -> String -> Exp a String :: a -> String -> Exp a -- | ... Vararg :: a -> Exp a -- | function (..) .. end EFunDef :: a -> (FunDef a) -> Exp a PrefixExp :: a -> (PrefixExp a) -> Exp a -- | table constructor TableConst :: a -> (Table a) -> Exp a -- | binary operators, + - * ^ % .. <= >= == ~= and or Binop :: a -> (Binop a) -> (Exp a) -> (Exp a) -> Exp a -- | unary operators, - not # Unop :: a -> (Unop a) -> (Exp a) -> Exp a data Var a -- | variable VarName :: a -> (Name a) -> Var a -- | table[exp] Select :: a -> (PrefixExp a) -> (Exp a) -> Var a -- | table.variable SelectName :: a -> (PrefixExp a) -> (Name a) -> Var a data Binop a Add :: a -> Binop a Sub :: a -> Binop a Mul :: a -> Binop a Div :: a -> Binop a Exp :: a -> Binop a Mod :: a -> Binop a Concat :: a -> Binop a LT :: a -> Binop a LTE :: a -> Binop a GT :: a -> Binop a GTE :: a -> Binop a EQ :: a -> Binop a NEQ :: a -> Binop a And :: a -> Binop a Or :: a -> Binop a IDiv :: a -> Binop a ShiftL :: a -> Binop a ShiftR :: a -> Binop a BAnd :: a -> Binop a BOr :: a -> Binop a BXor :: a -> Binop a data Unop a Neg :: a -> Unop a Not :: a -> Unop a Len :: a -> Unop a Complement :: a -> Unop a data PrefixExp a PEVar :: a -> (Var a) -> PrefixExp a PEFunCall :: a -> (FunCall a) -> PrefixExp a Paren :: a -> (Exp a) -> PrefixExp a data Table a -- | list of table fields Table :: a -> [TableField a] -> Table a data TableField a -- | [exp] = exp ExpField :: a -> (Exp a) -> (Exp a) -> TableField a -- | name = exp NamedField :: a -> (Name a) -> (Exp a) -> TableField a Field :: a -> (Exp a) -> TableField a -- | A block is list of statements with optional return statement. data Block a Block :: a -> [Stat a] -> (Maybe [Exp a]) -> Block a data FunName a FunName :: a -> (Name a) -> [Name a] -> (Maybe (Name a)) -> FunName a data FunDef a FunDef :: a -> (FunBody a) -> FunDef a data FunBody a -- | (args, vararg, block) FunBody :: a -> [Name a] -> (Maybe a) -> (Block a) -> FunBody a data FunCall a -- | prefixexp ( funarg ) NormalFunCall :: a -> (PrefixExp a) -> (FunArg a) -> FunCall a -- | prefixexp : name ( funarg ) MethodCall :: a -> (PrefixExp a) -> (Name a) -> (FunArg a) -> FunCall a data FunArg a -- | list of args Args :: a -> [Exp a] -> FunArg a -- | table constructor TableArg :: a -> (Table a) -> FunArg a -- | string StringArg :: a -> String -> FunArg a class Functor ast => Annotated ast -- | Retrieve the annotation of an AST node. ann :: Annotated ast => ast l -> l -- | 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. amap :: Annotated ast => (l -> l) -> ast l -> ast l instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2Var instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1Var instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Var instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Var instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2PrefixExp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1PrefixExp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0PrefixExp instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1PrefixExp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1FunCall instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0FunCall instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1FunCall instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_14Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_13Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_12Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_11Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_10Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_9Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_8Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_7Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_6Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_5Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_4Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_3Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Stat instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Stat instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Block instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Block instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0FunBody instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1FunBody instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0FunDef instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1FunDef instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_9Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_8Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_7Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_6Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_5Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_4Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_3Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Exp instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Exp instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2TableField instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1TableField instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0TableField instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1TableField instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Table instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Table instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2FunArg instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1FunArg instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0FunArg instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1FunArg instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0FunName instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1FunName instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_3Unop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2Unop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1Unop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Unop instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Unop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_20Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_19Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_18Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_17Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_16Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_15Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_14Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_13Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_12Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_11Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_10Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_9Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_8Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_7Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_6Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_5Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_4Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_3Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_2Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_1Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Binop instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Binop instance GHC.Generics.Constructor Language.Lua.Annotated.Syntax.C1_0Name instance GHC.Generics.Datatype Language.Lua.Annotated.Syntax.D1Name instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Var a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Var a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Var instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Var a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Var a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.PrefixExp a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.PrefixExp a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.PrefixExp instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.PrefixExp a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.PrefixExp a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.FunCall a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.FunCall a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.FunCall instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.FunCall a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.FunCall a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Stat a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Stat a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Stat instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Stat a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Stat a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Block a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Block a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Block instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Block a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Block a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.FunBody a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.FunBody a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.FunBody instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.FunBody a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.FunBody a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.FunDef a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.FunDef a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.FunDef instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.FunDef a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.FunDef a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Exp a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Exp a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Exp instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Exp a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Exp a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.TableField a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.TableField a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.TableField instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.TableField a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.TableField a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Table a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Table a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Table instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Table a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Table a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.FunArg a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.FunArg a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.FunArg instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.FunArg a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.FunArg a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.FunName a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.FunName a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.FunName instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.FunName a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.FunName a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Unop a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Unop a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Unop instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Unop a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Unop a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Binop a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Binop a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Binop instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Binop a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Binop a) instance GHC.Generics.Generic (Language.Lua.Annotated.Syntax.Name a) instance Data.Data.Data a => Data.Data.Data (Language.Lua.Annotated.Syntax.Name a) instance GHC.Base.Functor Language.Lua.Annotated.Syntax.Name instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Syntax.Name a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Syntax.Name a) instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Stat instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Exp instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Var instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Binop instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Unop instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.PrefixExp instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Table instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.TableField instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Block instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.FunName instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.FunDef instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.FunBody instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.FunCall instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.FunArg instance Language.Lua.Annotated.Syntax.Annotated Language.Lua.Annotated.Syntax.Name instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Name a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Stat a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Exp a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Var a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Binop a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Unop a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.PrefixExp a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Table a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.TableField a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.Block a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.FunName a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.FunDef a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.FunBody a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.FunCall a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Language.Lua.Annotated.Syntax.FunArg a) module Language.Lua.StringLiteral interpretStringLiteral :: String -> Maybe ByteString -- | Convert a string literal body to string literal syntax constructStringLiteral :: ByteString -> String module Language.Lua.Token -- | Lua tokens data LToken -- | + LTokPlus :: LToken -- | - LTokMinus :: LToken -- | * LTokStar :: LToken -- | / LTokSlash :: LToken -- | % LTokPercent :: LToken -- | ^ LTokExp :: LToken -- | # LTokSh :: LToken -- | == LTokEqual :: LToken -- | ~= LTokNotequal :: LToken -- | <= LTokLEq :: LToken -- | >= LTokGEq :: LToken -- | < LTokLT :: LToken -- | > LTokGT :: LToken -- | = LTokAssign :: LToken -- | ( LTokLParen :: LToken -- | ) LTokRParen :: LToken -- | { LTokLBrace :: LToken -- | } LTokRBrace :: LToken -- | [ LTokLBracket :: LToken -- | ] LTokRBracket :: LToken -- | :: LTokDColon :: LToken -- | ; LTokSemic :: LToken -- | : LTokColon :: LToken -- | , LTokComma :: LToken -- | . LTokDot :: LToken -- | .. LTokDDot :: LToken -- | ... LTokEllipsis :: LToken -- | << LTokDLT :: LToken -- |
-- > --LTokDGT :: LToken -- | & LTokAmpersand :: LToken -- | | LTokPipe :: LToken -- | // LTokDSlash :: LToken -- | ~ LTokTilde :: LToken -- | and LTokAnd :: LToken -- | break LTokBreak :: LToken -- | do LTokDo :: LToken -- | else LTokElse :: LToken -- | elseif LTokElseIf :: LToken -- | end LTokEnd :: LToken -- | false LTokFalse :: LToken -- | for LTokFor :: LToken -- | function LTokFunction :: LToken -- | goto LTokGoto :: LToken -- | if LTokIf :: LToken -- | in LTokIn :: LToken -- | local LTokLocal :: LToken -- | nil LTokNil :: LToken -- | not LTokNot :: LToken -- | or LTokOr :: LToken -- | repeat LTokRepeat :: LToken -- | return LTokReturn :: LToken -- | then LTokThen :: LToken -- | true LTokTrue :: LToken -- | until LTokUntil :: LToken -- | while LTokWhile :: LToken -- | number constant LTokNum :: String -> LToken -- | string constant. Includes quotes! LTokSLit :: String -> LToken -- | identifier LTokIdent :: String -> LToken -- | end of file LTokEof :: LToken instance GHC.Classes.Eq Language.Lua.Token.LToken instance GHC.Show.Show Language.Lua.Token.LToken module Language.Lua.Annotated.Lexer -- | Lua lexer. llex :: String -> Either (String, AlexPosn) [LTok] -- | Run Lua lexer on a file. llexFile :: FilePath -> IO (Either (String, AlexPosn) [LTok]) -- | Lua token with position information. type LTok = (LToken, AlexPosn) data AlexPosn AlexPn :: !Int -> !Int -> !Int -> AlexPosn instance GHC.Classes.Eq Language.Lua.Annotated.Lexer.AlexPosn instance GHC.Show.Show Language.Lua.Annotated.Lexer.AlexPosn instance GHC.Base.Functor Language.Lua.Annotated.Lexer.Alex instance GHC.Base.Applicative Language.Lua.Annotated.Lexer.Alex instance GHC.Base.Monad Language.Lua.Annotated.Lexer.Alex instance GHC.Base.Functor Language.Lua.Annotated.Lexer.AlexLastAcc -- | Lexer/Parsec interface module Text.Parsec.LTok -- | Parses given LToken. tok :: (Stream [LTok] m LTok) => LToken -> ParsecT [LTok] u m LToken tok' :: (Stream [LTok] m LTok) => LToken -> ParsecT [LTok] u m () -- | Parses a LTokIdent. anyIdent :: Monad m => ParsecT [LTok] u m String -- | Parses a LTokNum. number :: Monad m => ParsecT [LTok] u m String -- | Parses a LTokSLit. stringlit :: Monad m => ParsecT [LTok] u m String type Parser = Parsec [LTok] () module Language.Lua.Annotated.Parser -- | Runs Lua lexer before parsing. Use parseText stat to parse -- statements, and parseText exp to parse expressions. parseText :: Parser a -> String -> Either ParseError a -- | Runs Lua lexer before parsing. Use parseNamedText stat "name" -- to parse statements, and parseText exp "name" to parse -- expressions. parseNamedText :: Parser a -> String -> String -> Either ParseError a -- | Parse a Lua file. You can use parseText chunk to parse a file -- from a string. parseFile :: FilePath -> IO (Either ParseError (Block SourcePos)) -- | Statement parser. stat :: Parser (Stat SourcePos) -- | Expression parser. exp :: Parser (Exp SourcePos) -- | Lua file parser. chunk :: Parser (Block SourcePos) instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Parser.SuffixedExp a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Parser.SuffixedExp a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Parser.SuffixExp a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Parser.SuffixExp a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Lua.Annotated.Parser.PrimaryExp a) instance GHC.Show.Show a => GHC.Show.Show (Language.Lua.Annotated.Parser.PrimaryExp a) module Language.Lua.Annotated -- | Runs Lua lexer before parsing. Use parseText stat to parse -- statements, and parseText exp to parse expressions. parseText :: Parser a -> String -> Either ParseError a -- | Runs Lua lexer before parsing. Use parseNamedText stat "name" -- to parse statements, and parseText exp "name" to parse -- expressions. parseNamedText :: Parser a -> String -> String -> Either ParseError a -- | Parse a Lua file. You can use parseText chunk to parse a file -- from a string. parseFile :: FilePath -> IO (Either ParseError (Block SourcePos)) -- | Statement parser. stat :: Parser (Stat SourcePos) -- | Expression parser. exp :: Parser (Exp SourcePos) -- | Lua file parser. chunk :: Parser (Block SourcePos) -- | Lua 5.3 syntax tree, as specified in -- http://www.lua.org/manual/5.3/manual.html#9. module Language.Lua.Syntax type Name = String data Stat -- | var1, var2 .. = exp1, exp2 .. Assign :: [Var] -> [Exp] -> Stat -- | function call FunCall :: FunCall -> Stat -- | label for goto Label :: Name -> Stat -- | break Break :: Stat -- | goto label Goto :: Name -> Stat -- | do .. end Do :: Block -> Stat -- | while .. do .. end While :: Exp -> Block -> Stat -- | repeat .. until .. Repeat :: Block -> Exp -> Stat -- | if .. then .. [elseif ..] [else ..] end If :: [(Exp, Block)] -> (Maybe Block) -> Stat -- | for x=start, end [, step] do .. end ForRange :: Name -> Exp -> Exp -> (Maybe Exp) -> Block -> Stat -- | for x in .. do .. end ForIn :: [Name] -> [Exp] -> Block -> Stat -- | function <var> (..) .. end FunAssign :: FunName -> FunBody -> Stat -- | local function <var> (..) .. end LocalFunAssign :: Name -> FunBody -> Stat -- | local var1, var2 .. = exp1, exp2 .. LocalAssign :: [Name] -> (Maybe [Exp]) -> Stat -- | ; EmptyStat :: Stat data Exp Nil :: Exp Bool :: Bool -> Exp Number :: String -> Exp String :: String -> Exp -- | ... Vararg :: Exp -- | function (..) .. end EFunDef :: FunBody -> Exp PrefixExp :: PrefixExp -> Exp -- | table constructor TableConst :: [TableField] -> Exp -- | binary operators, + - * ^ % .. <= >= == ~= and or Binop :: Binop -> Exp -> Exp -> Exp -- | unary operators, - not # Unop :: Unop -> Exp -> Exp data Var -- | variable VarName :: Name -> Var -- | table[exp] Select :: PrefixExp -> Exp -> Var -- | table.variable SelectName :: PrefixExp -> Name -> Var data Binop Add :: Binop Sub :: Binop Mul :: Binop Div :: Binop Exp :: Binop Mod :: Binop Concat :: Binop LT :: Binop LTE :: Binop GT :: Binop GTE :: Binop EQ :: Binop NEQ :: Binop And :: Binop Or :: Binop IDiv :: Binop ShiftL :: Binop ShiftR :: Binop BAnd :: Binop BOr :: Binop BXor :: Binop data Unop Neg :: Unop Not :: Unop Len :: Unop Complement :: Unop data PrefixExp PEVar :: Var -> PrefixExp PEFunCall :: FunCall -> PrefixExp Paren :: Exp -> PrefixExp data TableField -- | [exp] = exp ExpField :: Exp -> Exp -> TableField -- | name = exp NamedField :: Name -> Exp -> TableField Field :: Exp -> TableField -- | A block is list of statements with optional return statement. data Block Block :: [Stat] -> (Maybe [Exp]) -> Block data FunName FunName :: Name -> [Name] -> (Maybe Name) -> FunName data FunBody -- | (args, vararg, block) FunBody :: [Name] -> Bool -> Block -> FunBody data FunCall -- | prefixexp ( funarg ) NormalFunCall :: PrefixExp -> FunArg -> FunCall -- | prefixexp : name ( funarg ) MethodCall :: PrefixExp -> Name -> FunArg -> FunCall data FunArg -- | list of args Args :: [Exp] -> FunArg -- | table constructor TableArg :: [TableField] -> FunArg -- | string StringArg :: String -> FunArg instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2Var instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1Var instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Var instance GHC.Generics.Datatype Language.Lua.Syntax.D1Var instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2PrefixExp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1PrefixExp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0PrefixExp instance GHC.Generics.Datatype Language.Lua.Syntax.D1PrefixExp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1FunCall instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0FunCall instance GHC.Generics.Datatype Language.Lua.Syntax.D1FunCall instance GHC.Generics.Constructor Language.Lua.Syntax.C1_14Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_13Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_12Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_11Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_10Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_9Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_8Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_7Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_6Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_5Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_4Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_3Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Stat instance GHC.Generics.Datatype Language.Lua.Syntax.D1Stat instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Block instance GHC.Generics.Datatype Language.Lua.Syntax.D1Block instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0FunBody instance GHC.Generics.Datatype Language.Lua.Syntax.D1FunBody instance GHC.Generics.Constructor Language.Lua.Syntax.C1_9Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_8Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_7Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_6Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_5Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_4Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_3Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Exp instance GHC.Generics.Datatype Language.Lua.Syntax.D1Exp instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2TableField instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1TableField instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0TableField instance GHC.Generics.Datatype Language.Lua.Syntax.D1TableField instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2FunArg instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1FunArg instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0FunArg instance GHC.Generics.Datatype Language.Lua.Syntax.D1FunArg instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0FunName instance GHC.Generics.Datatype Language.Lua.Syntax.D1FunName instance GHC.Generics.Constructor Language.Lua.Syntax.C1_3Unop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2Unop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1Unop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Unop instance GHC.Generics.Datatype Language.Lua.Syntax.D1Unop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_20Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_19Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_18Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_17Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_16Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_15Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_14Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_13Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_12Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_11Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_10Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_9Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_8Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_7Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_6Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_5Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_4Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_3Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_2Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_1Binop instance GHC.Generics.Constructor Language.Lua.Syntax.C1_0Binop instance GHC.Generics.Datatype Language.Lua.Syntax.D1Binop instance GHC.Generics.Generic Language.Lua.Syntax.Var instance Data.Data.Data Language.Lua.Syntax.Var instance GHC.Classes.Eq Language.Lua.Syntax.Var instance GHC.Show.Show Language.Lua.Syntax.Var instance GHC.Generics.Generic Language.Lua.Syntax.PrefixExp instance Data.Data.Data Language.Lua.Syntax.PrefixExp instance GHC.Classes.Eq Language.Lua.Syntax.PrefixExp instance GHC.Show.Show Language.Lua.Syntax.PrefixExp instance GHC.Generics.Generic Language.Lua.Syntax.FunCall instance Data.Data.Data Language.Lua.Syntax.FunCall instance GHC.Classes.Eq Language.Lua.Syntax.FunCall instance GHC.Show.Show Language.Lua.Syntax.FunCall instance GHC.Generics.Generic Language.Lua.Syntax.Stat instance Data.Data.Data Language.Lua.Syntax.Stat instance GHC.Classes.Eq Language.Lua.Syntax.Stat instance GHC.Show.Show Language.Lua.Syntax.Stat instance GHC.Generics.Generic Language.Lua.Syntax.Block instance Data.Data.Data Language.Lua.Syntax.Block instance GHC.Classes.Eq Language.Lua.Syntax.Block instance GHC.Show.Show Language.Lua.Syntax.Block instance GHC.Generics.Generic Language.Lua.Syntax.FunBody instance Data.Data.Data Language.Lua.Syntax.FunBody instance GHC.Classes.Eq Language.Lua.Syntax.FunBody instance GHC.Show.Show Language.Lua.Syntax.FunBody instance GHC.Generics.Generic Language.Lua.Syntax.Exp instance Data.Data.Data Language.Lua.Syntax.Exp instance GHC.Classes.Eq Language.Lua.Syntax.Exp instance GHC.Show.Show Language.Lua.Syntax.Exp instance GHC.Generics.Generic Language.Lua.Syntax.TableField instance Data.Data.Data Language.Lua.Syntax.TableField instance GHC.Classes.Eq Language.Lua.Syntax.TableField instance GHC.Show.Show Language.Lua.Syntax.TableField instance GHC.Generics.Generic Language.Lua.Syntax.FunArg instance Data.Data.Data Language.Lua.Syntax.FunArg instance GHC.Classes.Eq Language.Lua.Syntax.FunArg instance GHC.Show.Show Language.Lua.Syntax.FunArg instance GHC.Generics.Generic Language.Lua.Syntax.FunName instance Data.Data.Data Language.Lua.Syntax.FunName instance GHC.Classes.Eq Language.Lua.Syntax.FunName instance GHC.Show.Show Language.Lua.Syntax.FunName instance GHC.Generics.Generic Language.Lua.Syntax.Unop instance Data.Data.Data Language.Lua.Syntax.Unop instance GHC.Classes.Eq Language.Lua.Syntax.Unop instance GHC.Show.Show Language.Lua.Syntax.Unop instance GHC.Generics.Generic Language.Lua.Syntax.Binop instance Data.Data.Data Language.Lua.Syntax.Binop instance GHC.Classes.Eq Language.Lua.Syntax.Binop instance GHC.Show.Show Language.Lua.Syntax.Binop instance Control.DeepSeq.NFData Language.Lua.Syntax.Stat instance Control.DeepSeq.NFData Language.Lua.Syntax.Exp instance Control.DeepSeq.NFData Language.Lua.Syntax.Var instance Control.DeepSeq.NFData Language.Lua.Syntax.Binop instance Control.DeepSeq.NFData Language.Lua.Syntax.Unop instance Control.DeepSeq.NFData Language.Lua.Syntax.PrefixExp instance Control.DeepSeq.NFData Language.Lua.Syntax.TableField instance Control.DeepSeq.NFData Language.Lua.Syntax.Block instance Control.DeepSeq.NFData Language.Lua.Syntax.FunName instance Control.DeepSeq.NFData Language.Lua.Syntax.FunBody instance Control.DeepSeq.NFData Language.Lua.Syntax.FunCall instance Control.DeepSeq.NFData Language.Lua.Syntax.FunArg -- | Lua pretty-printer. module Language.Lua.PrettyPrinter -- | This is the default pretty printer which is used by show, -- putDoc and hPutDoc. (renderPretty ribbonfrac width -- x) renders document x with a page width of -- width and a ribbon width of (ribbonfrac * width) -- characters. The ribbon width is the maximal amount of non-indentation -- characters on a line. The parameter ribbonfrac should be -- between 0.0 and 1.0. If it is lower or higher, the -- ribbon width will be 0 or width respectively. renderPretty :: Float -> Int -> Doc -> SimpleDoc -- | (displayS simpleDoc) takes the output simpleDoc from -- a rendering function and transforms it to a ShowS type (for use -- in the Show class). -- --
-- showWidth :: Int -> Doc -> String -- showWidth w x = displayS (renderPretty 0.4 w x) "" --displayS :: SimpleDoc -> ShowS -- | (displayIO handle simpleDoc) writes simpleDoc to the -- file handle handle. This function is used for example by -- hPutDoc: -- --
-- hPutDoc handle doc = displayIO handle (renderPretty 0.4 100 doc) --displayIO :: Handle -> SimpleDoc -> IO () class LPretty a where pprint = pprint' 0 pprint' _ = pprint pprint :: LPretty a => a -> Doc instance Language.Lua.PrettyPrinter.LPretty [GHC.Types.Char] instance Language.Lua.PrettyPrinter.LPretty GHC.Types.Bool instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Exp instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Var instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Binop instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Unop instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.PrefixExp instance Language.Lua.PrettyPrinter.LPretty [Language.Lua.Syntax.TableField] instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.TableField instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Block instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.FunName instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.FunBody instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.FunCall instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.FunArg instance Language.Lua.PrettyPrinter.LPretty Language.Lua.Syntax.Stat -- | Remove annotations. module Language.Lua.Annotated.Simplify sName :: Name a -> Name sStat :: Stat a -> Stat sExp :: Exp a -> Exp sBlock :: Block a -> Block sVar :: Var a -> Var sFunCall :: FunCall a -> FunCall sFunName :: FunName a -> FunName sFunBody :: FunBody a -> FunBody sFunDef :: FunDef a -> FunBody sPrefixExp :: PrefixExp a -> PrefixExp sTable :: Table a -> [TableField] sBinop :: Binop a -> Binop sUnop :: Unop a -> Unop sFunArg :: FunArg a -> FunArg sTableField :: TableField a -> TableField module Language.Lua.Parser -- | Runs Lua lexer before parsing. Use parseText stat to parse -- statements, and parseText exp to parse expressions. parseText :: Parser a -> String -> Either ParseError a -- | Runs Lua lexer before parsing. Use parseNamedText stat "name" -- to parse statements, and parseText exp "name" to parse -- expressions. parseNamedText :: Parser a -> String -> String -> Either ParseError a parseFile :: FilePath -> IO (Either ParseError Block) stat :: Parser Stat exp :: Parser Exp chunk :: Parser Block module Language.Lua -- | Runs Lua lexer before parsing. Use parseText stat to parse -- statements, and parseText exp to parse expressions. parseText :: Parser a -> String -> Either ParseError a -- | Runs Lua lexer before parsing. Use parseNamedText stat "name" -- to parse statements, and parseText exp "name" to parse -- expressions. parseNamedText :: Parser a -> String -> String -> Either ParseError a parseFile :: FilePath -> IO (Either ParseError Block) stat :: Parser Stat exp :: Parser Exp chunk :: Parser Block pprint :: LPretty a => a -> Doc