coan  6.0.1
A C/C++ Configuration Analyzer
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
formal_parameter_list Struct Reference

struct formal_parameter_list encapsulates a list of formal macro parameters. More...

#include <formal_parameter_list.h>

Inheritance diagram for formal_parameter_list:
innards::parameter_list_base

Public Types

using base = innards::parameter_list_base
 Base class.
 

Public Member Functions

 formal_parameter_list (parameter_list_base const &parms)
 Explicitly construct from a parameter_list_base
 
 formal_parameter_list (size_t n=0)
 Construct for n arguments. More...
 
template<class CharSeq >
 formal_parameter_list (chewer< CharSeq > &chew)
 Explicitly construct given a chewer<CharSeq> More...
 
template<class CharSeq >
void read (chewer< CharSeq > &chew)
 Read the formal_parameter_list from a chewer<CharSeq> More...
 
- Public Member Functions inherited from innards::parameter_list_base
 parameter_list_base (size_t n=0)
 Constructor for n parameters. More...
 
template<class CharSeq >
 parameter_list_base (chewer< CharSeq > &chew)
 Explicitly construct a given a chewer<CharSeq>. More...
 
 parameter_list_base (parameter_list_base const &other)
 Copy constructor.
 
void swap (parameter_list_base &other)
 Swap with another parameter_list_base
 
parameter_list_baseoperator= (parameter_list_base other)
 Assignment.
 
bool operator== (parameter_list_base const &other) const
 Equality.
 
bool operator!= (parameter_list_base const &other) const
 Inequality.
 
bool well_formed () const
 Say whether the parameter_list_base is well-formed.
 
bool variadic () const
 Say whether the parameter_list_base is variadic.
 
size_t size () const
 Get the number of parameters in the parameter_list_base More...
 
bool null () const
 Say whether the parameter_list_base is null, i.e. is not even "()".
 
 operator bool () const
 Cast to boolean = !null()
 
std::string str () const
 Cast the parameter list to its canonical string representation.
 
size_t which (std::string const &str) const
 Get the index of the parameter that matches a string, if any, else -1.
 
template<class CharSeq >
void read (chewer< CharSeq > &chew)
 Read the parameter_list_base from chewer<CharSeq> More...
 
std::vector< std::string >
::iterator 
begin ()
 Get a [const] iterator to the start of the parameter list. More...
 
std::vector< std::string >
::const_iterator 
begin () const
 
std::vector< std::string >
::iterator 
end ()
 Get a [const] iterator to the end of the parameter list. More...
 
std::vector< std::string >
::const_iterator 
end () const
 
std::string const & at (size_t n) const
 Get a range-checked [const] reference to the nth parameter. More...
 
std::string & at (size_t n)
 
std::string const & operator[] (size_t n) const
 Get an un-range-checked [const] reference to the nth parameter. More...
 
std::string & operator[] (size_t n)
 

Additional Inherited Members

- Static Public Member Functions inherited from innards::parameter_list_base
template<typename BiIter >
static std::string make (BiIter first, BiIter last)
 Make a parameter list from a range of objects that are convertible to std::string. More...
 
- Protected Types inherited from innards::parameter_list_base
enum  defect { none, empty_param, unclosed, non_param }
 Enumeration of possible defects in a parameter_list_base More...
 
- Protected Attributes inherited from innards::parameter_list_base
std::shared_ptr< std::vector
< std::string > > 
_params
 The list of parameters.
 
defect _defect
 Is the parameter_list_base well-formed?
 
bool _variadic
 Is the parameter_list_base variadic?
 

Detailed Description

struct formal_parameter_list encapsulates a list of formal macro parameters.

Definition at line 46 of file formal_parameter_list.h.

Constructor & Destructor Documentation

formal_parameter_list::formal_parameter_list ( size_t  n = 0)
inlineexplicit

Construct for n arguments.

Parameters
nThe number of arguments.

If n > 0, the list of placeholder arguments $1,...,$n is constructed.

Definition at line 62 of file formal_parameter_list.h.

template<class CharSeq >
formal_parameter_list::formal_parameter_list ( chewer< CharSeq > &  chew)
inlineexplicit

Explicitly construct given a chewer<CharSeq>

Parameters
chewOn entry, a chewer<CharSeq> positioned at the offset in the associated CharSeq from which to scan. On returnchew is positioned to the first offset not consumed.
Template Parameters
Acharacter-sequence type

Definition at line 73 of file formal_parameter_list.h.

Member Function Documentation

template<class CharSeq >
template void formal_parameter_list::read ( chewer< CharSeq > &  chew)

Read the formal_parameter_list from a chewer<CharSeq>

Template Parameters
CharSeqA character-sequence type
Parameters
chewOn entry, a chewer<CharSeq> positioned at the offset in the associated CharSeq from which to scan. On returnchew is positioned to the first offset not consumed.

The formal_parameter_list is emptied and replaced by parsing the text from chew

Definition at line 45 of file formal_parameter_list.cpp.


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