Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Public Member Functions
cli::Parser Class Reference

#include <Parser.h>

Public Member Functions

 Parser (cli::Lexer lexer)
 
void setHint (Lexer::Hint hint)
 
template<class ... TokenTypes>
bool check (TokenTypes ... tokens)
 
template<class ... NonreservedTokens>
bool check_nonreserved_kw (const NonreservedTokens &... kw)
 
template<class ... TokenTypes>
bool match (cli::Lexer::TokenType token, TokenTypes ... tokens)
 
template<class ... NonreservedTokens>
bool match_nonreserved_kw (const std::string &kw, const NonreservedTokens &... kws)
 
template<class ... TokenTypes>
bool check_then_match (cli::Lexer::TokenType token, TokenTypes ... tokens)
 
template<class ... NonreservedTokens>
bool check_then_match_nonreserved_kw (const std::string &kw, const NonreservedTokens &... kws)
 
std::string matchIdentifier ()
 
std::string matchString ()
 
std::string matchType ()
 
std::string matchFile ()
 
int matchInteger ()
 
double matchDouble ()
 
const std::string & getTokenValue () const
 
void incNestedLevel ()
 
void decNestedLevel ()
 
bool globalScope () const
 
std::unique_ptr< Expressionassign_expression ()
 
std::unique_ptr< Expressionor_expression ()
 
std::unique_ptr< Expressionand_expression ()
 
std::unique_ptr< Expressionbitwise_or_expression ()
 
std::unique_ptr< Expressionbitwise_and_expression ()
 
std::unique_ptr< Expressionbitwise_xor_expression ()
 
std::unique_ptr< Expressionequality_expression ()
 
std::unique_ptr< Expressionrelational_expression ()
 
std::unique_ptr< Expressionadd_expression ()
 
std::unique_ptr< Expressionmul_expression ()
 
std::unique_ptr< Expressioncast_expression ()
 
std::unique_ptr< Expressionprefix_expression ()
 
std::unique_ptr< Expressionsuffix_expression ()
 
std::unique_ptr< Expressionatom ()
 
std::vector< std::unique_ptr< Expression > > bracketed_expression_list ()
 
std::unique_ptr< CategoryOptioncategory_option ()
 
std::unique_ptr< TypeOptiontype_option ()
 
std::unique_ptr< TypeOptionoptional_type_option ()
 
std::unique_ptr< Argfile ()
 
std::unique_ptr< Argtype ()
 
std::unique_ptr< Argarg ()
 
std::unique_ptr< Argoptional_arg ()
 
std::unique_ptr< Argtemplate_arg ()
 
std::unique_ptr< Argoptional_variable ()
 
std::unique_ptr< Argoptional_binding ()
 
std::shared_ptr< Statementin_redirect ()
 
std::shared_ptr< Statementcommon ()
 
std::shared_ptr< Statementparam ()
 
std::shared_ptr< Statementstatement ()
 
std::shared_ptr< StatementListstatement_list ()
 
std::unique_ptr< Statementout_redirect ()
 
std::pair< bool, bool > introspect_cast_from_to ()
 
std::unique_ptr< Commandintrospect_command ()
 
std::unique_ptr< CommandListblock ()
 
std::unique_ptr< Expressionexpression ()
 
std::unique_ptr< Expressionbatch ()
 
std::unique_ptr< Expressionexpression_or_batch ()
 
std::unique_ptr< Expressionbatch_or_expression ()
 
std::pair< abstraction::TypeQualifiers::TypeQualifierSet, std::unique_ptr< Arg > > qualifiedType ()
 
std::pair< abstraction::TypeQualifiers::TypeQualifierSet, std::unique_ptr< Arg > > runnableParam ()
 
std::unique_ptr< Commandcommand ()
 
std::unique_ptr< Commandsemicolon_command ()
 
std::unique_ptr< CommandListparse ()
 

Constructor & Destructor Documentation

◆ Parser()

cli::Parser::Parser ( cli::Lexer  lexer)
inline

Member Function Documentation

◆ add_expression()

std::unique_ptr< Expression > cli::Parser::add_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ and_expression()

std::unique_ptr< Expression > cli::Parser::and_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ arg()

std::unique_ptr< Arg > cli::Parser::arg ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ assign_expression()

std::unique_ptr< Expression > cli::Parser::assign_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ atom()

std::unique_ptr< Expression > cli::Parser::atom ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ batch()

std::unique_ptr< Expression > cli::Parser::batch ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ batch_or_expression()

std::unique_ptr< Expression > cli::Parser::batch_or_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ bitwise_and_expression()

std::unique_ptr< Expression > cli::Parser::bitwise_and_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ bitwise_or_expression()

std::unique_ptr< Expression > cli::Parser::bitwise_or_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ bitwise_xor_expression()

std::unique_ptr< Expression > cli::Parser::bitwise_xor_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ block()

std::unique_ptr< CommandList > cli::Parser::block ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ bracketed_expression_list()

std::vector< std::unique_ptr< Expression > > cli::Parser::bracketed_expression_list ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cast_expression()

std::unique_ptr< Expression > cli::Parser::cast_expression ( )

◆ category_option()

std::unique_ptr< CategoryOption > cli::Parser::category_option ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check()

template<class ... TokenTypes>
bool cli::Parser::check ( TokenTypes ...  tokens)
inline
Here is the caller graph for this function:

◆ check_nonreserved_kw()

template<class ... NonreservedTokens>
bool cli::Parser::check_nonreserved_kw ( const NonreservedTokens &...  kw)
inline
Here is the caller graph for this function:

◆ check_then_match()

template<class ... TokenTypes>
bool cli::Parser::check_then_match ( cli::Lexer::TokenType  token,
TokenTypes ...  tokens 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_then_match_nonreserved_kw()

template<class ... NonreservedTokens>
bool cli::Parser::check_then_match_nonreserved_kw ( const std::string &  kw,
const NonreservedTokens &...  kws 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ command()

std::unique_ptr< Command > cli::Parser::command ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ common()

std::shared_ptr< Statement > cli::Parser::common ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ decNestedLevel()

void cli::Parser::decNestedLevel ( )
inline
Here is the caller graph for this function:

◆ equality_expression()

std::unique_ptr< Expression > cli::Parser::equality_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ expression()

std::unique_ptr< Expression > cli::Parser::expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ expression_or_batch()

std::unique_ptr< Expression > cli::Parser::expression_or_batch ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ file()

std::unique_ptr< Arg > cli::Parser::file ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTokenValue()

const std::string & cli::Parser::getTokenValue ( ) const
inline
Here is the caller graph for this function:

◆ globalScope()

bool cli::Parser::globalScope ( ) const
inline
Here is the caller graph for this function:

◆ in_redirect()

std::shared_ptr< Statement > cli::Parser::in_redirect ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ incNestedLevel()

void cli::Parser::incNestedLevel ( )
inline
Here is the caller graph for this function:

◆ introspect_cast_from_to()

std::pair< bool, bool > cli::Parser::introspect_cast_from_to ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ introspect_command()

std::unique_ptr< Command > cli::Parser::introspect_command ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ match()

template<class ... TokenTypes>
bool cli::Parser::match ( cli::Lexer::TokenType  token,
TokenTypes ...  tokens 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ match_nonreserved_kw()

template<class ... NonreservedTokens>
bool cli::Parser::match_nonreserved_kw ( const std::string &  kw,
const NonreservedTokens &...  kws 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchDouble()

double cli::Parser::matchDouble ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchFile()

std::string cli::Parser::matchFile ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchIdentifier()

std::string cli::Parser::matchIdentifier ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchInteger()

int cli::Parser::matchInteger ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchString()

std::string cli::Parser::matchString ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ matchType()

std::string cli::Parser::matchType ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mul_expression()

std::unique_ptr< Expression > cli::Parser::mul_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ optional_arg()

std::unique_ptr< Arg > cli::Parser::optional_arg ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ optional_binding()

std::unique_ptr< Arg > cli::Parser::optional_binding ( )
Here is the call graph for this function:

◆ optional_type_option()

std::unique_ptr< TypeOption > cli::Parser::optional_type_option ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ optional_variable()

std::unique_ptr< Arg > cli::Parser::optional_variable ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ or_expression()

std::unique_ptr< Expression > cli::Parser::or_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ out_redirect()

std::unique_ptr< Statement > cli::Parser::out_redirect ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ param()

std::shared_ptr< Statement > cli::Parser::param ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse()

std::unique_ptr< CommandList > cli::Parser::parse ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ prefix_expression()

std::unique_ptr< Expression > cli::Parser::prefix_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ qualifiedType()

std::pair< abstraction::TypeQualifiers::TypeQualifierSet, std::unique_ptr< Arg > > cli::Parser::qualifiedType ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ relational_expression()

std::unique_ptr< Expression > cli::Parser::relational_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ runnableParam()

std::pair< abstraction::TypeQualifiers::TypeQualifierSet, std::unique_ptr< Arg > > cli::Parser::runnableParam ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ semicolon_command()

std::unique_ptr< Command > cli::Parser::semicolon_command ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setHint()

void cli::Parser::setHint ( Lexer::Hint  hint)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ statement()

std::shared_ptr< Statement > cli::Parser::statement ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ statement_list()

std::shared_ptr< StatementList > cli::Parser::statement_list ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ suffix_expression()

std::unique_ptr< Expression > cli::Parser::suffix_expression ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ template_arg()

std::unique_ptr< Arg > cli::Parser::template_arg ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ type()

std::unique_ptr< Arg > cli::Parser::type ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ type_option()

std::unique_ptr< TypeOption > cli::Parser::type_option ( )
Here is the call graph for this function:
Here is the caller graph for this function:

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