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

Gather the rest of the command line tokens in a list. More...

#include <parsnip_evaluate.h>

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

Public Member Functions

virtual Parsnip::Data evaluateToken (ArgvCursor *cursor) const override
 
virtual void constructSchema (const DictionarySchema &scheme, const Schema::OptionSchemas &option_schemas, const SchemaIntegratorCallback &integrator) const override
 Construct a schema from an evaluator tree. More...
 
- Public Member Functions inherited from Parsnip::RemainderEvaluator
virtual EvaluatorgetNextEvaluator (const StringType &value) const override
 An evaluator that represents the rest of the command line. More...
 
virtual bool operator== (const Evaluator &other) const override
 Check if two evaluators are the same. More...
 
virtual void convertToOptionEvaluator () override
 Make any changes to the parse tree to convert it to an options evaluator. 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
 

Private Attributes

friend ValueEvaluator
 

Additional Inherited Members

- Public Types inherited from Parsnip::Evaluator
using StringType = std::string
 
using CommandId = int
 
- 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...
 
- 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::RemainderEvaluator
EvaluatorRef terminating_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

Gather the rest of the command line tokens in a list.

Member Function Documentation

◆ constructSchema()

void Parsnip::RemainingValuesEvaluator::constructSchema ( const DictionarySchema schema,
const Schema::OptionSchemas option_schemas,
const SchemaIntegratorCallback integrator 
) const
overridevirtual

Construct a schema from an evaluator tree.

This function depth-first searches the evaluation tree, calling the integrator function at leaf nodes and other valid statement endpoints.

Parameters
schemaThe schema, as constructed from the parse tree root.
option_schemasSchemas for option parsers that may be needed.
integratorAn integrator that merges various statement patterns into a complete schema.
Exceptions
NoSuchKeyA necessary option schema was not found.
SchemaConflictStatement definitions generate schema inconsistencies.

Implements Parsnip::Evaluator.

Here is the call graph for this function:

◆ evaluateToken()

Parsnip::Data Parsnip::RemainingValuesEvaluator::evaluateToken ( ArgvCursor cursor) const
overridevirtual
Returns
any remaining tokens in a list

Implements Parsnip::Evaluator.

Here is the call graph for this function:

Member Data Documentation

◆ ValueEvaluator

friend Parsnip::RemainingValuesEvaluator::ValueEvaluator
private

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