Changed order of parameters in AstBase constructors

pull/105/head
yhirose 4 years ago
parent 49289420b9
commit ffbc58c103
  1. 24
      peglib.h

@ -3527,9 +3527,10 @@ private:
template <typename Annotation> struct AstBase : public Annotation {
AstBase(const char *a_path, size_t a_line, size_t a_column,
const char *a_name, size_t a_position, size_t a_length,
size_t a_choice_count, size_t a_choice,
const std::vector<std::shared_ptr<AstBase>> &a_nodes)
const char *a_name,
const std::vector<std::shared_ptr<AstBase>> &a_nodes,
size_t a_position = 0, size_t a_length = 0, size_t a_choice_count = 0,
size_t a_choice = 0)
: path(a_path ? a_path : ""), line(a_line), column(a_column),
name(a_name), position(a_position), length(a_length),
choice_count(a_choice_count), choice(a_choice), original_name(a_name),
@ -3538,8 +3539,8 @@ template <typename Annotation> struct AstBase : public Annotation {
nodes(a_nodes) {}
AstBase(const char *a_path, size_t a_line, size_t a_column,
const char *a_name, size_t a_position, size_t a_length,
size_t a_choice_count, size_t a_choice, const std::string &a_token)
const char *a_name, const std::string &a_token, size_t a_position = 0,
size_t a_length = 0, size_t a_choice_count = 0, size_t a_choice = 0)
: path(a_path ? a_path : ""), line(a_line), column(a_column),
name(a_name), position(a_position), length(a_length),
choice_count(a_choice_count), choice(a_choice), original_name(a_name),
@ -3547,9 +3548,9 @@ template <typename Annotation> struct AstBase : public Annotation {
tag(str2tag(a_name)), original_tag(tag), is_token(true),
token(a_token) {}
AstBase(const AstBase &ast, const char *a_original_name, size_t a_position,
size_t a_length, size_t a_original_choice_count,
size_t a_original_choise)
AstBase(const AstBase &ast, const char *a_original_name,
size_t a_position = 0, size_t a_length = 0,
size_t a_original_choice_count = 0, size_t a_original_choise = 0)
: path(ast.path), line(ast.line), column(ast.column), name(ast.name),
position(a_position), length(a_length), choice_count(ast.choice_count),
choice(ast.choice), original_name(a_original_name),
@ -3787,15 +3788,16 @@ public:
if (rule.is_token()) {
return std::make_shared<T>(
sv.path, line.first, line.second, name.c_str(),
sv.path, line.first, line.second, name.c_str(), sv.token(),
std::distance(sv.ss, sv.c_str()), sv.length(),
sv.choice_count(), sv.choice(), sv.token());
sv.choice_count(), sv.choice());
}
auto ast = std::make_shared<T>(
sv.path, line.first, line.second, name.c_str(),
sv.transform<std::shared_ptr<T>>(),
std::distance(sv.ss, sv.c_str()), sv.length(), sv.choice_count(),
sv.choice(), sv.transform<std::shared_ptr<T>>());
sv.choice());
for (auto node : ast->nodes) {
node->parent = ast;

Loading…
Cancel
Save