rename
This commit is contained in:
parent
805169bad1
commit
4c1e698b14
|
@ -178,7 +178,7 @@ namespace lib_syntax {
|
|||
/**
|
||||
* @brief token匹配
|
||||
*/
|
||||
template<typename ELEM, lib_token::TokenProcs<ELEM> XProc = nullptr>
|
||||
template<typename ELEM, lib_token::TokenProc<ELEM> XProc = nullptr>
|
||||
requires std::derived_from<ELEM, ast_basic::IExprInstance>
|
||||
class TokenMatch : public IBasicRule, public std::enable_shared_from_this<TokenMatch<ELEM, XProc>> {
|
||||
private:
|
||||
|
|
|
@ -253,7 +253,7 @@ class MM : public lib_syntax::IBasicRule {
|
|||
|
||||
#include "syntax_templets.h"
|
||||
std::shared_ptr<const ExprRule> NovalSyntax::getSyntaxTree() {
|
||||
lib_composit::TypeList<MM, MM> vv;
|
||||
lib_composit::__types_list<MM, MM> vv;
|
||||
|
||||
return std::make_shared<DocumentSyntax>();
|
||||
}
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
#include <concepts>
|
||||
|
||||
namespace lib_composit {
|
||||
template<typename... TYPES> class TypeList;
|
||||
template<typename... TYPES> class __types_list;
|
||||
|
||||
template<> class TypeList<> {
|
||||
template<> class __types_list<> {
|
||||
public:
|
||||
static QList<std::shared_ptr<const lib_syntax::IBasicRule>> getRules() {
|
||||
return QList<std::shared_ptr<const lib_syntax::IBasicRule>>();
|
||||
|
@ -15,25 +15,25 @@ namespace lib_composit {
|
|||
|
||||
template<typename T, typename... Rets>
|
||||
requires std::derived_from<T, lib_syntax::IBasicRule>
|
||||
class TypeList<T, Rets...> : public TypeList<Rets...> {
|
||||
class __types_list<T, Rets...> : public __types_list<Rets...> {
|
||||
public:
|
||||
static QList<std::shared_ptr<const lib_syntax::IBasicRule>> getRules() {
|
||||
auto list = TypeList<Rets...>::getRules();
|
||||
auto list = __types_list<Rets...>::getRules();
|
||||
list.prepend(std::make_shared<const T>());
|
||||
return list;
|
||||
}
|
||||
};
|
||||
|
||||
template<typename... TYPES>
|
||||
class AnyR : public lib_syntax::Any, public TypeList<TYPES...> {
|
||||
class AnyR : public lib_syntax::Any, public __types_list<TYPES...> {
|
||||
public:
|
||||
AnyR() : Any(TypeList<TYPES...>::getRules()){ }
|
||||
AnyR() : Any(__types_list<TYPES...>::getRules()){ }
|
||||
};
|
||||
|
||||
template<typename... TYPES>
|
||||
class SeqsR : public lib_syntax::Seqs, public TypeList<TYPES...> {
|
||||
class SeqsR : public lib_syntax::Seqs, public __types_list<TYPES...> {
|
||||
public:
|
||||
SeqsR() : Seqs(TypeList<TYPES...>::getRules()){ }
|
||||
SeqsR() : Seqs(__types_list<TYPES...>::getRules()){ }
|
||||
};
|
||||
|
||||
template<typename TYPE, int min, int max>
|
||||
|
@ -42,7 +42,7 @@ namespace lib_composit {
|
|||
ReptR() : Rept(std::make_shared<TYPE>(), min, max){ }
|
||||
};
|
||||
|
||||
template<typename E, typename T, lib_token::TokenProcs<E> xproc = nullptr>
|
||||
template<typename E, typename T, lib_token::TokenProc<E> xproc = nullptr>
|
||||
requires std::derived_from<E, ast_basic::IExprInstance> && std::derived_from<T, lib_token::ITokenProcess>
|
||||
class TokenR : public lib_syntax::TokenMatch<E, xproc> {
|
||||
public:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
namespace lib_token {
|
||||
|
||||
template<typename ExprT>
|
||||
using TokenProcs = void(*)(std::shared_ptr<ExprT> expr, std::shared_ptr<const lib_token::IToken> t);
|
||||
template<typename ExprT> requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
||||
using TokenProc = void(*)(std::shared_ptr<ExprT> expr, std::shared_ptr<const lib_token::IToken> t);
|
||||
|
||||
|
||||
// 基础token实现 ===================================================
|
||||
|
@ -48,7 +48,7 @@ namespace lib_token {
|
|||
/**
|
||||
* @brief 动作Token
|
||||
*/
|
||||
template<typename ExprT, TokenProcs<ExprT> proc>
|
||||
template<typename ExprT, TokenProc<ExprT> p> requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
||||
class ActionToken : public IActionToken {
|
||||
private:
|
||||
std::shared_ptr<const IToken> _bind_content;
|
||||
|
@ -60,7 +60,7 @@ namespace lib_token {
|
|||
|
||||
virtual std::shared_ptr<ast_basic::IExprInstance> makeSure(std::shared_ptr<ast_basic::IExprInstance> expr) {
|
||||
auto expr_inst = std::dynamic_pointer_cast<ExprT>(expr);
|
||||
proc(expr_inst, shared_from_this());
|
||||
p(expr_inst, shared_from_this());
|
||||
return expr;
|
||||
}
|
||||
|
||||
|
@ -91,8 +91,7 @@ namespace lib_token {
|
|||
/**
|
||||
* @brief 表达式起始token
|
||||
*/
|
||||
template<typename NExpr>
|
||||
requires std::derived_from<NExpr, ast_basic::IExprInstance>
|
||||
template<typename NExpr> requires std::derived_from<NExpr, ast_basic::IExprInstance>
|
||||
class ExprBeginToken : public IActionToken {
|
||||
private:
|
||||
std::shared_ptr<const IActionToken> _prev_token = nullptr;
|
||||
|
@ -149,8 +148,7 @@ namespace lib_token {
|
|||
/**
|
||||
* @brief 表达式终止token
|
||||
*/
|
||||
template<typename ExprT>
|
||||
requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
||||
template<typename ExprT> requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
||||
class ExprEndToken : public IActionToken {
|
||||
private:
|
||||
std::shared_ptr<const IActionToken> _prev_token = nullptr;
|
||||
|
|
Loading…
Reference in New Issue