PUMA Library Reference Manual
Loading...
Searching...
No Matches
Puma::CUnit Class Reference

#include <Puma/CUnit.h>

+ Inheritance diagram for Puma::CUnit:

Description

Specialized token unit for C/C++ tokens.

Provides a streaming interface for easy scanning of C/C++ tokens using a Puma::CScanner object. The input stream is scanned either by calling Puma::CUnit::scan() or by using the stream manipulator Puma::endu.

Example:

Puma::CUnit unit(es)
unit << "int main() {" << std::endl;
unit << " int fac0 = 1;" << std::endl;
for (int i = 1; i < 10; i++) {
unit << " int fac" << i << " = " << i
<< " * fac" << (i-1) << ";" << std::endl;
}
unit << "}\n" << Puma::endu;
Specialized token unit for C/C++ tokens.
Definition CUnit.h:52
An error stream is a special ErrorSink that prints out an error message as soon as it is complete.
Definition ErrorStream.h:37
std::ostream & endu(std::ostream &outs)
End-of-unit stream manipulator.
Definition CUnit.h:71


Public Member Functions

 CUnit (ErrorSink &err)
 Constructor.
 
virtual ~CUnit ()
 Destructor.
 
CScanner & scanner () const
 Get the scanner used to scan the string stream.
 
void scan ()
 Scan the stream now.
 
- Public Member Functions inherited from Puma::Unit
 Unit ()
 Constructor.
 
 Unit (const List &list)
 Copy-constructor.
 
virtual ~Unit ()
 Destructor.
 
virtual void name (const char *name)
 Set the name of the unit (usually the file name).
 
char * name () const
 Get the name of the unit (usually the file name).
 
virtual void print (std::ostream &os) const
 Print the tokens of the unit on the given stream.
 
virtual bool isFile () const
 Check if this is a unit for a file.
 
virtual bool isMacroExp () const
 Check if this is a unit for a macro expansion.
 
virtual bool isTemplateInstance () const
 Check if this is a unit for a template instance.
 
UnitState & state ()
 Get the state of the unit.
 
char * toString () const
 Serialize the tokens of the unit.
 
Token * first () const
 Get the first token in the unit.
 
Token * last () const
 Get the last token in the unit.
 
Token * next (const Token *token) const
 Get the next token of the given token.
 
Token * prev (const Token *token) const
 Get the previous token of the given token.
 
- Public Member Functions inherited from Puma::List
 List ()
 Constructor.
 
 List (const List &copy)
 Copy-constructor.
 
 ~List ()
 Destructor.
 
List & operator= (const List &copy)
 Assignment operator.
 
List & operator+= (const List &list)
 Append the given list.
 
List operator+ (const List &list)
 Create a new list containing the elements of this list followed by the elements of the given list.
 
void clear ()
 Destroy the list elements.
 
void append (ListElement &element)
 Append an element to the list.
 
void prepend (ListElement &element)
 Prepend an element to the list.
 
void insert (ListElement *at, ListElement &element)
 Insert an element at the given list position.
 
void remove (ListElement *element)
 Remove the given element from the list.
 
void kill (ListElement *from, ListElement *to=(ListElement *) 0)
 Remove and destroy all elements between the given list elements.
 
void cut (List &out, ListElement *from, ListElement *to=(ListElement *) 0)
 Cut all elements between the given list elements.
 
List * copy (ListElement *from=(ListElement *) 0, ListElement *to=(ListElement *) 0)
 Copy all elements between the given list elements.
 
void paste (ListElement *at, const List &l)
 Insert copies of the elements of the given list at the given list position.
 
void paste_before (ListElement *at, const List &l)
 Insert copies of the elements of the given list before the given list position.
 
void move (ListElement *at, List &l)
 Insert the elements of the given list at the given list position.
 
void move_before (ListElement *at, List &l)
 Insert the elements of the given list before the given list position.
 
bool empty () const
 Check if the list is empty.
 
const ListElement * first () const
 Get the first element in the list.
 
const ListElement * last () const
 Get the last element in the list.
 
const ListElement * next (const ListElement *element) const
 Get the next element of the given element.
 
const ListElement * prev (const ListElement *element) const
 Get the previous element of the given element.
 
- Public Member Functions inherited from Puma::Printable
virtual ~Printable ()
 Destructor.
 

Constructor & Destructor Documentation

◆ CUnit()

Puma::CUnit::CUnit ( ErrorSink &  err)
inline

Constructor.

Parameters
errThe error stream on which to report errors.

◆ ~CUnit()

virtual Puma::CUnit::~CUnit ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ scan()

void Puma::CUnit::scan ( )

Scan the stream now.

Produces the token chain.

◆ scanner()

CScanner & Puma::CUnit::scanner ( ) const
inline

Get the scanner used to scan the string stream.