Rework identifier handling, adds typedef statement.
This commit is contained in:
@@ -37,12 +37,12 @@ namespace MalachScript::Parser {
|
||||
};
|
||||
|
||||
class ParsedClassStatement : public ParsedStatementImpl<ParsedStatementKind::Class> {
|
||||
std::u8string_view _identifier;
|
||||
std::vector<std::u8string_view> _inherits;
|
||||
Identifier _identifier;
|
||||
std::vector<Identifier> _inherits;
|
||||
std::vector<std::unique_ptr<const ParsedStatement>> _body;
|
||||
|
||||
public:
|
||||
ParsedClassStatement(TextSpan span, std::u8string_view identifier, std::vector<std::u8string_view> inherits,
|
||||
ParsedClassStatement(TextSpan span, Identifier identifier, std::vector<Identifier> inherits,
|
||||
const std::vector<const ParsedStatement*>& body)
|
||||
: ParsedStatementImpl<ParsedStatementKind::Class>(span), _identifier(identifier), _inherits(inherits),
|
||||
_body(body.size()) {
|
||||
@@ -50,6 +50,18 @@ namespace MalachScript::Parser {
|
||||
_body[i] = std::unique_ptr<const ParsedStatement>(body[i]);
|
||||
}
|
||||
};
|
||||
|
||||
class ParsedTypeDefStatement : public ParsedStatementImpl<ParsedStatementKind::TypeDef> {
|
||||
Identifier _defineFrom;
|
||||
Identifier _defineTo;
|
||||
|
||||
public:
|
||||
ParsedTypeDefStatement(TextSpan span, const Identifier& defineFrom, const Identifier& defineTo)
|
||||
: ParsedStatementImpl<ParsedStatementKind::TypeDef>(span), _defineFrom(defineFrom), _defineTo(defineTo) {}
|
||||
|
||||
inline const Identifier& GetDefineFrom() const noexcept { return _defineFrom; }
|
||||
inline const Identifier& GetDefineTo() const noexcept { return _defineTo; }
|
||||
};
|
||||
}
|
||||
|
||||
#endif // MALACHSCRIPT_PARSEDSTATEMENT_HPP
|
||||
|
||||
Reference in New Issue
Block a user