From e44bdc6a2a0cf624b08046ecc7e5c5d5d9d2d66c Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 16 Oct 2026 13:21:05 +0000 Subject: fix(compiler): correct CIE semantics and diagnostic locations Use standard WHILE headers and default-public class fields, resolve pseudocode identifiers without case sensitivity, and check signed i64 literal boundaries before conversion. Preserve source locations across recursive emission and function diagnostics. Add 22 regression cases and update compiler examples and documentation. Validated all 69 CTest entries with the original Linux Actions seed and verified the release package's embedded, native and IR output paths. --- include/cps/FileAST.h | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'include/cps/FileAST.h') diff --git a/include/cps/FileAST.h b/include/cps/FileAST.h index 04bd06a..a151597 100644 --- a/include/cps/FileAST.h +++ b/include/cps/FileAST.h @@ -9,55 +9,47 @@ namespace cps { class OpenFileStmtAST : public StmtAST { std::unique_ptr FileName; FileMode Mode; - int Line; public: OpenFileStmtAST(std::unique_ptr FileName, FileMode Mode, int Line) - : FileName(std::move(FileName)), Mode(Mode), Line(Line) {} + : StmtAST(Line), FileName(std::move(FileName)), Mode(Mode) {} ExprAST *getFileName() const { return FileName.get(); } FileMode getMode() const { return Mode; } - int getLine() const { return Line; } }; class ReadFileStmtAST : public StmtAST { std::unique_ptr FileName; std::string VarName; - int Line; public: ReadFileStmtAST(std::unique_ptr FileName, const std::string &VarName, int Line) - : FileName(std::move(FileName)), VarName(VarName), Line(Line) {} + : StmtAST(Line), FileName(std::move(FileName)), VarName(VarName) {} ExprAST *getFileName() const { return FileName.get(); } const std::string &getVarName() const { return VarName; } - int getLine() const { return Line; } }; class WriteFileStmtAST : public StmtAST { std::unique_ptr FileName; std::unique_ptr Data; - int Line; public: WriteFileStmtAST(std::unique_ptr FileName, std::unique_ptr Data, int Line) - : FileName(std::move(FileName)), Data(std::move(Data)), Line(Line) {} + : StmtAST(Line), FileName(std::move(FileName)), Data(std::move(Data)) {} ExprAST *getFileName() const { return FileName.get(); } ExprAST *getData() const { return Data.get(); } - int getLine() const { return Line; } }; class CloseFileStmtAST : public StmtAST { std::unique_ptr FileName; - int Line; public: CloseFileStmtAST(std::unique_ptr FileName, int Line) - : FileName(std::move(FileName)), Line(Line) {} + : StmtAST(Line), FileName(std::move(FileName)) {} ExprAST *getFileName() const { return FileName.get(); } - int getLine() const { return Line; } }; } // namespace cps -- cgit v1.3.1-4-g156e