Give rules::Visitor a virtual destructor
This commit is contained in:
parent
4dd1f9fbce
commit
6ea4e6b2b0
4 changed files with 13 additions and 10 deletions
|
|
@ -2,38 +2,38 @@
|
|||
|
||||
namespace tree_sitter_examples {
|
||||
using namespace tree_sitter::rules;
|
||||
|
||||
|
||||
rule_ptr comma_sep1(rule_ptr element) {
|
||||
return seq({ element, repeat(seq({ str(","), element })) });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr comma_sep(rule_ptr element) {
|
||||
return choice({ comma_sep1(element), blank() });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr optional(rule_ptr rule) {
|
||||
return choice({ rule, blank() });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr in_parens(rule_ptr rule) {
|
||||
return seq({ str("("), rule, str(")") });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr in_braces(rule_ptr rule) {
|
||||
return seq({ str("{"), rule, str("}") });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr in_brackets(rule_ptr rule) {
|
||||
return seq({ str("["), rule, str("]") });
|
||||
}
|
||||
|
||||
|
||||
rule_ptr infix(int precedence, std::string op) {
|
||||
return prec(precedence, seq({
|
||||
sym("expression"),
|
||||
str(op),
|
||||
sym("expression") }));
|
||||
}
|
||||
|
||||
|
||||
rule_ptr prefix(int precedence, std::string op) {
|
||||
return prec(precedence, seq({
|
||||
str(op),
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
namespace tree_sitter_examples {
|
||||
using namespace tree_sitter::rules;
|
||||
|
||||
|
||||
rule_ptr comma_sep1(rule_ptr element);
|
||||
rule_ptr comma_sep(rule_ptr element);
|
||||
rule_ptr optional(rule_ptr rule);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,10 @@
|
|||
|
||||
namespace tree_sitter {
|
||||
using std::vector;
|
||||
|
||||
|
||||
namespace rules {
|
||||
Visitor::~Visitor() {}
|
||||
|
||||
rule_ptr IdentityRuleFn::default_apply(const Rule *rule) {
|
||||
return rule->copy();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ namespace tree_sitter {
|
|||
virtual void visit(const String *rule) = 0;
|
||||
virtual void visit(const Symbol *rule) = 0;
|
||||
virtual void visit(const ISymbol *rule) = 0;
|
||||
virtual ~Visitor();
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue