Template Struct AstBase

Inheritance Relationships

Base Type

  • public Annotation

Struct Documentation

template<typename Annotation>
struct AstBase : public Annotation

Public Functions

inline AstBase(const char *path, size_t line, size_t column, const char *name, const std::vector<std::shared_ptr<AstBase>> &nodes, size_t position = 0, size_t length = 0, size_t choice_count = 0, size_t choice = 0)
inline AstBase(const char *path, size_t line, size_t column, const char *name, const std::string_view &token, size_t position = 0, size_t length = 0, size_t choice_count = 0, size_t choice = 0)
inline AstBase(const AstBase &ast, const char *original_name, size_t position = 0, size_t length = 0, size_t original_choice_count = 0, size_t original_choice = 0)
inline std::string token_to_string() const
template<typename T>
inline T token_to_number() const

Public Members

const std::string path
const size_t line = 1
const size_t column = 1
const std::string name
size_t position
size_t length
const size_t choice_count
const size_t choice
const std::string original_name
const size_t original_choice_count
const size_t original_choice
const unsigned int tag
const unsigned int original_tag
const bool is_token
const std::string_view token
std::vector<std::shared_ptr<AstBase<Annotation>>> nodes
std::weak_ptr<AstBase<Annotation>> parent