Code Listener  [unstable] git snapshot
Public Member Functions
ICodeListener Class Referenceabstract

C++ interface for listener objects. More...

#include <cl.hh>

Inheritance diagram for ICodeListener:
Inheritance graph
[legend]

Public Member Functions

virtual ~ICodeListener ()
 
virtual void file_open (const char *file_name)=0
 See cl_code_listener::file_open. More...
 
virtual void file_close ()=0
 See cl_code_listener::file_close. More...
 
virtual void fnc_open (const struct cl_operand *fnc)=0
 See cl_code_listener::fnc_open. More...
 
virtual void fnc_arg_decl (int arg_id, const struct cl_operand *arg_src)=0
 See cl_code_listener::fnc_arg_decl. More...
 
virtual void fnc_close ()=0
 See cl_code_listener::fnc_close. More...
 
virtual void bb_open (const char *bb_name)=0
 See cl_code_listener::bb_open. More...
 
virtual void insn (const struct cl_insn *cli)=0
 See cl_code_listener::insn. More...
 
virtual void insn_call_open (const struct cl_loc *loc, const struct cl_operand *dst, const struct cl_operand *fnc)=0
 See cl_code_listener::insn_call_open. More...
 
virtual void insn_call_arg (int arg_id, const struct cl_operand *arg_src)=0
 See cl_code_listener::insn_call_arg. More...
 
virtual void insn_call_close ()=0
 See cl_code_listener::insn_call_close. More...
 
virtual void insn_switch_open (const struct cl_loc *loc, const struct cl_operand *src)=0
 See cl_code_listener::insn_switch_open. More...
 
virtual void insn_switch_case (const struct cl_loc *loc, const struct cl_operand *val_lo, const struct cl_operand *val_hi, const char *label)=0
 See cl_code_listener::insn_switch_case. More...
 
virtual void insn_switch_close ()=0
 See cl_code_listener::insn_switch_close. More...
 
virtual void acknowledge ()=0
 See cl_code_listener::acknowledge. More...
 

Detailed Description

C++ interface for listener objects.

It can be wrapped to struct cl_code_listener object when exposing to pure C world.

listener object - the core part of this interface

* It accepts a context-free language defined by substitution to regex:
*
*     (file_open FILE_CONTENT file_close)* acknowledge destroy
*
*
* FILE_CONTENT is defined by substitution to regex:
*
*     fnc_open (fnc_arg_decl)* FNC_BODY fnc_close
*
*
* FNC_BODY is defined by substitution to regex:
*
*     FNC_ENTRY (bb_open (NONTERM_INSN)* TERM_INSN)*
*
*
* FNC_ENTRY is defined as:
*
*     insn{CL_INSN_JMP}
*
*
* NON_TERM_INSN is defined as:
*
*     INSN_CALL | insn{CL_INSN_UNOP, CL_INSN_BINOP}
*
*
* TERM_INSN is defined as:
*
*     insn{CL_INSN_JMP, CL_INSN_COND, CL_INSN_RET, CL_INSN_ABORT} | INSN_SWITCH
*
*
* INSN_CALL is defined by regex:
*
*     insn_call_open (insn_call_arg)* insn_call_close
*
*
* INSN_SWITCH is defined by regex:
*
*     insn_switch_open (insn_switch_case)* insn_switch_close
*
* 

Definition at line 36 of file cl.hh.

Constructor & Destructor Documentation

virtual ~ICodeListener ( )
inlinevirtual

Definition at line 38 of file cl.hh.

Member Function Documentation

virtual void acknowledge ( )
pure virtual
virtual void bb_open ( const char *  bb_name)
pure virtual
virtual void file_close ( )
pure virtual
virtual void file_open ( const char *  file_name)
pure virtual
virtual void fnc_arg_decl ( int  arg_id,
const struct cl_operand arg_src 
)
pure virtual
virtual void fnc_close ( )
pure virtual
virtual void fnc_open ( const struct cl_operand fnc)
pure virtual
virtual void insn ( const struct cl_insn cli)
pure virtual
virtual void insn_call_arg ( int  arg_id,
const struct cl_operand arg_src 
)
pure virtual
virtual void insn_call_close ( )
pure virtual
virtual void insn_call_open ( const struct cl_loc loc,
const struct cl_operand dst,
const struct cl_operand fnc 
)
pure virtual
virtual void insn_switch_case ( const struct cl_loc loc,
const struct cl_operand val_lo,
const struct cl_operand val_hi,
const char *  label 
)
pure virtual
virtual void insn_switch_close ( )
pure virtual
virtual void insn_switch_open ( const struct cl_loc loc,
const struct cl_operand src 
)
pure virtual

The documentation for this class was generated from the following file: