Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !
Expression::Expression() = default;

explicit Expression::Expression(Type::Token c_token, Type::Token c_name = 0, std::vector<std::unique_ptr<ILexeme>> c_lexemes = {});

auto Expression::operator>>(std::unique_ptr<ILexeme>&& lexeme) -> Expression&;

auto Expression::operator>>(std::string string) -> Expression&;

auto Expression::operator>>(char c) -> Expression&;

auto Expression::operator>>(const Expression& expression) -> Expression&;

auto Expression::operator>>(NamedParser<Types...> namedParser) -> Expression&;

auto Expression::operator>>(TagLexeme tagLexeme) -> Expression&;

auto Expression::operator>>(Recurrence recurrence) -> Expression&;

auto Expression::operator>>(Alternative alternative) -> Expression&;

[[nodiscard]] auto Expression::operator~() const -> Recurrence;

[[nodiscard]] auto Expression::operator>(std::size_t repetitions) const -> Recurrence;

[[nodiscard]] auto Expression::operator>=(std::size_t repetitions) const -> Recurrence;

[[nodiscard]] auto Expression::operator*(std::size_t repetitions) const -> Recurrence;

[[nodiscard]] auto Expression::operator||(const Expression& rhs) const -> Alternative;

[[nodiscard]] auto Expression::operator!=(std::string string) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(char c) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(const Expression& expression) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(ParsingFunction<Types...> function) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(TagLexeme tagLexeme) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(Recurrence recurrence) const -> Exclusion;

[[nodiscard]] auto Expression::operator!=(Alternative alternative) const -> Exclusion;

Type::Token token;
Type::Token name;
std::vector< std::unique_ptr< ILexeme > > lexemes;