forked from KPGPMC/furlang
refactor(furc): mark AST nodes as final
This commit is contained in:
@@ -42,7 +42,7 @@ protected:
|
||||
front::token m_name;
|
||||
};
|
||||
|
||||
class function_definition_node : public function_declaration_node {
|
||||
class function_definition_node final : public function_declaration_node {
|
||||
public:
|
||||
function_definition_node(front::token name, body_h&& body)
|
||||
: function_declaration_node(name), m_body(std::move(body)) {}
|
||||
|
||||
@@ -27,7 +27,7 @@ protected:
|
||||
bool equal(const node& rhs) const override;
|
||||
};
|
||||
|
||||
class var_read_expression_node : public expression_node {
|
||||
class var_read_expression_node final : public expression_node {
|
||||
public:
|
||||
var_read_expression_node(handle<std::string_view>&& name)
|
||||
: m_name(std::move(name)) {}
|
||||
@@ -55,7 +55,7 @@ enum class unaryop_expression_node_t {
|
||||
PostfixDecrement,
|
||||
};
|
||||
|
||||
class unaryop_expression_node : public expression_node {
|
||||
class unaryop_expression_node final : public expression_node {
|
||||
public:
|
||||
unaryop_expression_node(unaryop_expression_node_t type, expression_node_h&& node)
|
||||
: m_type(type), m_node(std::move(node)) {}
|
||||
@@ -95,7 +95,7 @@ enum class binop_expression_node_t {
|
||||
GreaterEqual,
|
||||
};
|
||||
|
||||
class binop_expression_node : public expression_node {
|
||||
class binop_expression_node final : public expression_node {
|
||||
public:
|
||||
binop_expression_node(binop_expression_node_t type, expression_node_h&& lhs, expression_node_h&& rhs)
|
||||
: m_type(type), m_lhs(std::move(lhs)), m_rhs(std::move(rhs)) {}
|
||||
@@ -121,7 +121,7 @@ private:
|
||||
expression_node_h m_rhs;
|
||||
};
|
||||
|
||||
class var_assign_expression_node : public expression_node {
|
||||
class var_assign_expression_node final : public expression_node {
|
||||
public:
|
||||
var_assign_expression_node(expression_node_h&& lhs, expression_node_h&& rhs)
|
||||
: m_compound(binop_expression_node_t::None), m_lhs(std::move(lhs)), m_rhs(std::move(rhs)) {}
|
||||
|
||||
@@ -24,7 +24,7 @@ protected:
|
||||
bool equal(const node& rhs) const override;
|
||||
};
|
||||
|
||||
class string_literal_node : public literal_node {
|
||||
class string_literal_node final : public literal_node {
|
||||
public:
|
||||
string_literal_node(handle<std::string_view>&& value)
|
||||
: m_value(std::move(value)) {}
|
||||
@@ -42,7 +42,7 @@ private:
|
||||
handle<std::string_view> m_value;
|
||||
};
|
||||
|
||||
class integer_literal_node : public literal_node {
|
||||
class integer_literal_node final : public literal_node {
|
||||
public:
|
||||
integer_literal_node(handle<front::integer_token>&& value)
|
||||
: m_value(std::move(value)) {}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
namespace furc {
|
||||
namespace ast {
|
||||
|
||||
class program_node : public node {
|
||||
class program_node final : public node {
|
||||
public:
|
||||
program_node() = default;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ protected:
|
||||
bool equal(const node& rhs) const override;
|
||||
};
|
||||
|
||||
class return_statement_node : public statement_node {
|
||||
class return_statement_node final : public statement_node {
|
||||
public:
|
||||
return_statement_node() = default;
|
||||
|
||||
@@ -43,7 +43,7 @@ private:
|
||||
expression_node_h m_value;
|
||||
};
|
||||
|
||||
class if_statement_node : public statement_node {
|
||||
class if_statement_node final : public statement_node {
|
||||
public:
|
||||
if_statement_node(expression_node_h&& cond, statement_node_h&& then)
|
||||
: m_cond(std::move(cond)), m_then(std::move(then)) {}
|
||||
@@ -68,7 +68,7 @@ private:
|
||||
statement_node_h m_else;
|
||||
};
|
||||
|
||||
class compound_statement_node : public statement_node {
|
||||
class compound_statement_node final : public statement_node {
|
||||
public:
|
||||
compound_statement_node(body_h&& body)
|
||||
: m_body(std::move(body)) {}
|
||||
|
||||
Reference in New Issue
Block a user