libwreport  2.9
Public Member Functions | Data Fields | Protected Member Functions
wreport::opcode::Printer Class Reference

opcode::Visitor that pretty-prints the opcodes using indentation to show structure More...

#include <opcode.h>

Inheritance diagram for wreport::opcode::Printer:
wreport::opcode::Visitor

Public Member Functions

virtual void b_variable (Varcode code)
 Notify of a B variable entry. More...
 
virtual void c_modifier (Varcode code)
 Notify of a C modifier. More...
 
virtual void c_change_data_width (Varcode code, int change)
 Notify a change of data width. More...
 
virtual void c_change_data_scale (Varcode code, int change)
 Notify a change of data scale. More...
 
virtual void c_associated_field (Varcode code, Varcode sig_code, unsigned nbits)
 Notify the declaration of an associated field for the next values. More...
 
virtual void c_char_data (Varcode code)
 Notify raw character data encoded via a C modifier. More...
 
virtual void c_char_data_override (Varcode code, unsigned new_length)
 Notify an override of character data length. More...
 
virtual void c_quality_information_bitmap (Varcode code)
 Notify a bitmap for quality information data. More...
 
virtual void c_substituted_value_bitmap (Varcode code)
 Notify a bitmap for substituted values. More...
 
virtual void c_substituted_value (Varcode code)
 Notify a substituted value. More...
 
virtual void c_local_descriptor (Varcode code, Varcode desc_code, unsigned nbits)
 Notify the length of the following local descriptor. More...
 
virtual void r_replication (Varcode code, Varcode delayed_code, const Opcodes &ops)
 Notify a replicated section. More...
 
virtual void d_group_begin (Varcode code)
 Notify the start of a D group. More...
 
virtual void d_group_end (Varcode code)
 Notify the end of a D group. More...
 
- Public Member Functions inherited from wreport::opcode::Visitor
virtual void c_increase_scale_ref_width (Varcode code, int change)
 Notify an increase of scale, reference value and data width. More...
 

Data Fields

FILE * out
 Output stream. More...
 
const Vartablebtable
 Table used to get variable descriptions (optional). More...
 
unsigned indent
 Current indent level. More...
 
unsigned indent_step
 How many spaces in an indentation level.
 
- Data Fields inherited from wreport::opcode::Visitor
const DTabledtable
 D table to use to expand D groups. More...
 

Protected Member Functions

void print_lead (Varcode code)
 Print line lead (indentation and formatted code) More...
 

Detailed Description

opcode::Visitor that pretty-prints the opcodes using indentation to show structure

Member Function Documentation

virtual void wreport::opcode::Printer::b_variable ( Varcode  code)
virtual

Notify of a B variable entry.

Parameters
codeThe B variable code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_associated_field ( Varcode  code,
Varcode  sig_code,
unsigned  nbits 
)
virtual

Notify the declaration of an associated field for the next values.

Parameters
codeThe C modifier code
sig_codeThe B code of the associated field significance opcode (or 0 to mark the end of the associated field encoding)
nbitsThe number of bits used for the associated field.

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_change_data_scale ( Varcode  code,
int  change 
)
virtual

Notify a change of data scale.

Parameters
codeThe C modifier code
changeThe scale change (positive or negative)

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_change_data_width ( Varcode  code,
int  change 
)
virtual

Notify a change of data width.

Parameters
codeThe C modifier code
changeThe width change (positive or negative)

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_char_data ( Varcode  code)
virtual

Notify raw character data encoded via a C modifier.

Parameters
codeThe C modifier code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_char_data_override ( Varcode  code,
unsigned  new_length 
)
virtual

Notify an override of character data length.

Parameters
codeThe C modifier code
new_lengthNew length of all following character data (or 0 to reset to default)

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_local_descriptor ( Varcode  code,
Varcode  desc_code,
unsigned  nbits 
)
virtual

Notify the length of the following local descriptor.

Parameters
codeThe C modifier code
desc_codeLocal descriptor for which the length is provided
nbitsBit size of the data described by desc_code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_modifier ( Varcode  code)
virtual

Notify of a C modifier.

Whenever the modifier is a supported one, this is followed by an invocation of one of the specific c_* methods.

Parameters
codeThe C modifier code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_quality_information_bitmap ( Varcode  code)
virtual

Notify a bitmap for quality information data.

Parameters
codeThe C modifier code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_substituted_value ( Varcode  code)
virtual

Notify a substituted value.

Parameters
codeThe C modifier code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::c_substituted_value_bitmap ( Varcode  code)
virtual

Notify a bitmap for substituted values.

Parameters
codeThe C modifier code

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::d_group_begin ( Varcode  code)
virtual

Notify the start of a D group.

Parameters
codeThe D code that is being expanded

Reimplemented from wreport::opcode::Visitor.

virtual void wreport::opcode::Printer::d_group_end ( Varcode  code)
virtual

Notify the end of a D group.

Parameters
codeThe D code that has just been expanded

Reimplemented from wreport::opcode::Visitor.

void wreport::opcode::Printer::print_lead ( Varcode  code)
protected

Print line lead (indentation and formatted code)

Parameters
codeCode to format in the line lead
virtual void wreport::opcode::Printer::r_replication ( Varcode  code,
Varcode  delayed_code,
const Opcodes ops 
)
virtual

Notify a replicated section.

Parameters
codeThe R replication code
delayed_codeThe delayed replication B code, or 0 if delayed replication is not used
opsThe replicated operators

Reimplemented from wreport::opcode::Visitor.

Field Documentation

const Vartable* wreport::opcode::Printer::btable

Table used to get variable descriptions (optional).

It defaults to NULL, but if it is set, the output will contain descriptions of B variable entries

unsigned wreport::opcode::Printer::indent

Current indent level.

It defaults to 0 in a newly created Printer. You can set it to some other value to indent all the output by the given amount of spaces

FILE* wreport::opcode::Printer::out

Output stream.

It defaults to stdout, but it can be set to any FILE* stream


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