#ifndef __TreeSitter__rule__ #define __TreeSitter__rule__ #include namespace tree_sitter { template class TransitionMap; namespace rules { class Rule { public: virtual TransitionMap transitions() const = 0; virtual bool operator==(const Rule& other) const = 0; virtual std::string to_string() const = 0; }; typedef std::shared_ptr rule_ptr; std::ostream& operator<<(std::ostream& stream, const Rule &rule); } } #endif