ROSE 0.11.145.147
Public Types | Static Public Member Functions | Protected Member Functions | List of all members
Rose::CommandLine::IntervalParser< Interval > Class Template Reference

Description

template<class Interval>
class Rose::CommandLine::IntervalParser< Interval >

Parse an interval.

An interval is specified in one of the following forms, where N and M are non-negative integers:

The integers can be specified in decimal, octal, hexadecimal, or binary using the usual C/C++ syntax.

Definition at line 32 of file IntervalParser.h.

#include <Rose/CommandLine/IntervalParser.h>

Inheritance diagram for Rose::CommandLine::IntervalParser< Interval >:
Inheritance graph
[legend]
Collaboration diagram for Rose::CommandLine::IntervalParser< Interval >:
Collaboration graph
[legend]

Public Types

using Ptr = Sawyer::SharedPointer< IntervalParser >
 Shared-ownership pointer.
 
- Public Types inherited from Sawyer::CommandLine::ValueParser
typedef SharedPointer< ValueParserPtr
 Reference counting pointer for this class.
 

Static Public Member Functions

static Ptr instance ()
 Default allocating constructor.
 
static Ptr instance (const Sawyer::CommandLine::ValueSaver::Ptr &valueSaver)
 Allocating constructor.
 
static std::string docString (const std::string &interval="interval", const std::string &value="value")
 Runtime documentation.
 
static Interval parse (const char *input, const char **rest)
 Parse an interval from a C string.
 
static Interval parse (const std::string &input)
 Parse an interval from a C++ string.
 
static std::string toString (const Interval &interval)
 Unparse an interval to a string.
 

Protected Member Functions

 IntervalParser (const Sawyer::CommandLine::ValueSaver::Ptr &valueSaver)
 
- Protected Member Functions inherited from Sawyer::CommandLine::ValueParser
 ValueParser ()
 Constructor for derived classes.
 
 ValueParser (const ValueSaver::Ptr &valueSaver)
 Constructor for derived classes.
 

Additional Inherited Members

- Public Member Functions inherited from Sawyer::CommandLine::ValueParser
ParsedValue matchString (const std::string &)
 Parse the entire string and return a value.
 
ParsedValue match (Cursor &)
 Parse a value from the beginning of the specified string.
 
Ptr valueSaver (const ValueSaver::Ptr &f)
 Property: functor responsible for saving a parsed value in user storage.
 
const ValueSaver::Ptr valueSaver () const
 Property: functor responsible for saving a parsed value in user storage.
 
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor.
 
 SharedObject (const SharedObject &)
 Copy constructor.
 
virtual ~SharedObject ()
 Virtual destructor.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 
- Public Member Functions inherited from Sawyer::SharedFromThis< ValueParser >
SharedPointer< ValueParser > sharedFromThis ()
 Create a shared pointer from this.
 
SharedPointer< const ValueParser > sharedFromThis () const
 Create a shared pointer from this.
 

Member Typedef Documentation

◆ Ptr

template<class Interval >
using Rose::CommandLine::IntervalParser< Interval >::Ptr = Sawyer::SharedPointer<IntervalParser>

Shared-ownership pointer.

See Shared ownership.

Definition at line 43 of file IntervalParser.h.

Constructor & Destructor Documentation

◆ IntervalParser() [1/2]

template<class Interval >
Rose::CommandLine::IntervalParser< Interval >::IntervalParser ( )
inlineprotected

Definition at line 34 of file IntervalParser.h.

◆ IntervalParser() [2/2]

template<class Interval >
Rose::CommandLine::IntervalParser< Interval >::IntervalParser ( const Sawyer::CommandLine::ValueSaver::Ptr valueSaver)
inlineprotected

Definition at line 36 of file IntervalParser.h.

Member Function Documentation

◆ instance() [1/2]

template<class Interval >
static Ptr Rose::CommandLine::IntervalParser< Interval >::instance ( )
inlinestatic

Default allocating constructor.

Definition at line 46 of file IntervalParser.h.

◆ instance() [2/2]

template<class Interval >
static Ptr Rose::CommandLine::IntervalParser< Interval >::instance ( const Sawyer::CommandLine::ValueSaver::Ptr valueSaver)
inlinestatic

Allocating constructor.

Definition at line 51 of file IntervalParser.h.

References Sawyer::CommandLine::ValueParser::valueSaver().

◆ docString()

template<class Interval >
static std::string Rose::CommandLine::IntervalParser< Interval >::docString ( const std::string &  interval = "interval",
const std::string &  value = "value" 
)
inlinestatic

Runtime documentation.

Definition at line 56 of file IntervalParser.h.

◆ parse() [1/2]

template<class Interval >
static Interval Rose::CommandLine::IntervalParser< Interval >::parse ( const char *  input,
const char **  rest 
)
inlinestatic

Parse an interval from a C string.

Tries to parse an interval from the input string, and if successful adjusts rest to point to the first character beyond what was parsed. If a syntax error occurs, then an std::runtime_error is thrown.

Definition at line 75 of file IntervalParser.h.

Referenced by Rose::CommandLine::IntervalParser< Interval >::parse().

◆ parse() [2/2]

template<class Interval >
static Interval Rose::CommandLine::IntervalParser< Interval >::parse ( const std::string &  input)
inlinestatic

Parse an interval from a C++ string.

Tries to parse an interval from the input string. The string may contain leading and trailing white space, but any extra characters will cause a syntax error. Syntax errors are reported by throwing std::runtime_error. Since the underlying parsing is done on C strings, this function is ill-defined when the input contains NUL characters.

Definition at line 188 of file IntervalParser.h.

References Rose::StringUtility::cEscape(), and Rose::CommandLine::IntervalParser< Interval >::parse().

◆ toString()

template<class Interval >
static std::string Rose::CommandLine::IntervalParser< Interval >::toString ( const Interval &  interval)
inlinestatic

Unparse an interval to a string.

Definition at line 199 of file IntervalParser.h.

References Rose::StringUtility::addrToString().


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