decompiler  1.0.0
Public Member Functions | Public Attributes | List of all members
PrintLanguage::Atom Struct Reference

A single non-operator token emitted by the decompiler. More...

#include <printlanguage.hh>

Public Member Functions

 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl)
 Construct a token with no associated data-flow annotations.
 
 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl, const Datatype *c)
 Construct a token for a data-type name.
 
 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl, const Datatype *c, int4 off)
 Construct a token for a field name.
 
 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl, const PcodeOp *o)
 Construct a token with an associated PcodeOp.
 
 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl, const PcodeOp *o, const Varnode *v)
 Construct a token with an associated PcodeOp and Varnode.
 
 Atom (const string &nm, tagtype t, EmitXml::syntax_highlight hl, const PcodeOp *o, const Funcdata *f)
 Construct a token for a function name.
 

Public Attributes

const string & name
 The actual printed characters of the token.
 
tagtype type
 The type of Atom.
 
EmitXml::syntax_highlight highlight
 The type of highlighting to use when emitting the token.
 
const PcodeOpop
 A p-code operation associated with the token.
 
union {
   const Varnode *   vn
 A Varnode associated with the token.
 
   const Funcdata *   fd
 A function associated with the token.
 
   const Datatype *   ct
 A type associated with the token.
 
ptr_second
 Other meta-data associated with the token.
 
int4 offset
 The offset (within the parent structure) for a field token.
 

Detailed Description

A single non-operator token emitted by the decompiler.

These play the role of variable tokens on the RPN stack with the operator tokens. The term variable has a broader meaning than just a Varnode. An Atom can also be a data-type name, a function name, or a structure field etc.


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