traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Utils.ASTRewriting

Synopsis

Documentation

class HasAst a where #

Typeclass for the ast lens, which looks at immediate children

Methods

_ast :: Traversal' a a #

Instances

Instances details
HasAst (Stmt size) # 
Instance details

Defined in Traq.CQPL.Syntax

Methods

_ast :: Traversal' (Stmt size) (Stmt size) #

HasAst (Stmt ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Methods

_ast :: Traversal' (Stmt ext) (Stmt ext) #

class HasStmt p where #

Typeclass for lifting underlying ASTs.

Associated Types

type StmtOf p #

Methods

_stmt :: Traversal' p (StmtOf p) #

Instances

Instances details
HasStmt (CProcBody size) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (CProcBody size) #

Methods

_stmt :: Traversal' (CProcBody size) (StmtOf (CProcBody size)) #

HasStmt (ProcDef size) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (ProcDef size) #

Methods

_stmt :: Traversal' (ProcDef size) (StmtOf (ProcDef size)) #

HasStmt (Program size) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (Program size) #

Methods

_stmt :: Traversal' (Program size) (StmtOf (Program size)) #

HasStmt (Stmt size) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (Stmt size) #

Methods

_stmt :: Traversal' (Stmt size) (StmtOf (Stmt size)) #

HasStmt (FunBody ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (FunBody ext) #

Methods

_stmt :: Traversal' (FunBody ext) (StmtOf (FunBody ext)) #

HasStmt (FunDef ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (FunDef ext) #

Methods

_stmt :: Traversal' (FunDef ext) (StmtOf (FunDef ext)) #

HasStmt (NamedFunDef ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (NamedFunDef ext) #

HasStmt (Program ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (Program ext) #

Methods

_stmt :: Traversal' (Program ext) (StmtOf (Program ext)) #

HasStmt (Stmt ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (Stmt ext) #

Methods

_stmt :: Traversal' (Stmt ext) (StmtOf (Stmt ext)) #

rewriteAST :: (s ~ StmtOf p, HasAst s, HasStmt p) => (s -> Maybe s) -> p -> p #

Rewrite an AST locally.