From 3425b95cb654f8e1adc98365a4b370aa1fff8b4d Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 06:02:21 +0000 Subject: feat(classes): support ordinary member methods and this references Co-Authored-By: Claude Fable 5.1 --- include/cps/Parser.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include/cps/Parser.h') diff --git a/include/cps/Parser.h b/include/cps/Parser.h index fdbb99a..4874d7a 100644 --- a/include/cps/Parser.h +++ b/include/cps/Parser.h @@ -43,6 +43,8 @@ class Parser { std::unique_ptr ParseNumberExpr(); std::unique_ptr ParseIdentifierExpr(); std::unique_ptr ParseParenExpr(); + std::unique_ptr ParseMemberCall( + const std::string &Name, std::vector Accesses, int Line); std::string ParseTypeName(bool AllowVoid = false); std::unique_ptr ParseStatement(); @@ -66,11 +68,12 @@ class Parser { std::unique_ptr ParseTypeDecl(); std::optional> ParseRecordBody( - const std::string &Name, int Line, int EndToken); + const std::string &Name, int Line, int EndToken, + std::vector> *Methods = nullptr); bool ParseRecordField(std::vector &Out, bool IsPublic); - std::unique_ptr ParseFunction(); - std::unique_ptr ParseProcedure(); + std::unique_ptr ParseFunction(const std::string &OwnerClass = {}, bool IsPublic = true); + std::unique_ptr ParseProcedure(const std::string &OwnerClass = {}, bool IsPublic = true); std::unique_ptr ParseCallStmt(); std::unique_ptr ParseReturnStmt(); std::optional> ParsePrototypeArgs(bool AllowByRef); -- cgit v1.3.1-4-g156e