pianod2
multisource multiuser scriptable networked music player
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
Parsnip::IntegerEvaluator Class Reference

Evaluate and validate an integral value field. More...

#include <parsnip_evaluate.h>

Inheritance diagram for Parsnip::IntegerEvaluator:
Inheritance graph
[legend]
Collaboration diagram for Parsnip::IntegerEvaluator:
Collaboration graph
[legend]

Public Member Functions

virtual Parsnip::Data evaluateToken (ArgvCursor *cursor) const override
 
virtual bool operator== (const Evaluator &other) const override
 Check if two evaluators are the same. More...
 
virtual SchemaBasegetSchema () const override final
 
- Public Member Functions inherited from Parsnip::ValueEvaluator
virtual void convertToOptionEvaluator () override
 Make any changes to the parse tree to convert it to an options evaluator. More...
 
virtual void constructSchema (const DictionarySchema &scheme, const Schema::OptionSchemas &option_schemas, const SchemaIntegratorCallback &integrator) const override
 Construct a schema from an evaluator tree. More...
 
 Evaluator ()=default
 
 Evaluator (Evaluator *original)
 Upgrade an evaluator. More...
 
- Public Member Functions inherited from Parsnip::Evaluator
 Evaluator (Evaluator *original)
 Upgrade an evaluator. More...
 
virtual ~Evaluator ()=default
 
int evaluate (ArgvCursor *cursor, Parsnip::Data &result_dict)
 Evaluate a token in the command line, and recurse if there is more to go. More...
 
bool operator!= (const Evaluator &other) const
 

Static Public Member Functions

static IntegerEvaluatorconstruct (EvaluatorRef &evaluator, const std::string &name, const std::string &min, const std::string &max)
 Construct an evaluator (or validate the existing validator) for accepting an integer with a limited range. More...
 
- Static Public Member Functions inherited from Parsnip::ValueEvaluator
static void construct (EvaluatorRef &parser, const ArgvCursor &cursor, CommandId id, Parser *parent_parser, std::string name, std::string keywords)
 Construct a value/fill-in token handler. More...
 
- Static Public Member Functions inherited from Parsnip::Evaluator
static void construct (EvaluatorRef &evaluator, const ArgvCursor &cursor, CommandId id, Parser *parent_parser)
 Construct token handler from the token in a parsing definition. More...
 

Private Attributes

long minimum
 Minimum acceptable value. More...
 
long maximum
 Maximum acceptable value. More...
 
int radix = 1
 0 = automatic, otherwise the base. More...
 

Additional Inherited Members

- Public Types inherited from Parsnip::Evaluator
using StringType = std::string
 
using CommandId = int
 
- Protected Member Functions inherited from Parsnip::ValueEvaluator
virtual EvaluatorgetNextEvaluator (const StringType &value) const override
 Determine if and how to evaluate additional command line tokens. More...
 
- Protected Member Functions inherited from Parsnip::Evaluator
 Evaluator ()=default
 
void setCommandId (CommandId id)
 Set the command ID in an evaluator. More...
 
- Static Protected Member Functions inherited from Parsnip::Evaluator
static void set_name (EvaluatorRef &target, const std::string &name)
 Assign a name by which to store values for value evaluators. More...
 
- Protected Attributes inherited from Parsnip::ValueEvaluator
EvaluatorRef next_evaluator
 
- Protected Attributes inherited from Parsnip::Evaluator
CommandId command_id {NoCommand}
 If this completes a command, the command ID. More...
 
std::string name
 If not empty, the name by which this value shall be accessed. More...
 

Detailed Description

Evaluate and validate an integral value field.

Member Function Documentation

◆ construct()

IntegerEvaluator * Parsnip::IntegerEvaluator::construct ( EvaluatorRef evaluator,
const std::string &  name,
const std::string &  min,
const std::string &  max 
)
static

Construct an evaluator (or validate the existing validator) for accepting an integer with a limited range.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ evaluateToken()

Parsnip::Data Parsnip::IntegerEvaluator::evaluateToken ( ArgvCursor cursor) const
overridevirtual
Returns
the current token as a long integer
Exceptions
Ifvalue is not in range.

Implements Parsnip::Evaluator.

◆ getSchema()

SchemaBase * Parsnip::IntegerEvaluator::getSchema ( ) const
finaloverridevirtual

◆ operator==()

bool Parsnip::IntegerEvaluator::operator== ( const Evaluator other) const
overridevirtual

Check if two evaluators are the same.

Subclasses should override this to check their details.

Parameters
otherAnother evaluator to which to compare.

Reimplemented from Parsnip::ValueEvaluator.

Member Data Documentation

◆ maximum

long Parsnip::IntegerEvaluator::maximum
private

Maximum acceptable value.

◆ minimum

long Parsnip::IntegerEvaluator::minimum
private

Minimum acceptable value.

◆ radix

int Parsnip::IntegerEvaluator::radix = 1
private

0 = automatic, otherwise the base.


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