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