From 967be9e750221ab2ab783f95df79bb26d290a45e Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:07:58 +0200 Subject: add: added projects --- tiger-compiler/tcsh/src/tiger_common.i | 73 ++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tiger-compiler/tcsh/src/tiger_common.i (limited to 'tiger-compiler/tcsh/src/tiger_common.i') diff --git a/tiger-compiler/tcsh/src/tiger_common.i b/tiger-compiler/tcsh/src/tiger_common.i new file mode 100644 index 0000000..ff43652 --- /dev/null +++ b/tiger-compiler/tcsh/src/tiger_common.i @@ -0,0 +1,73 @@ +// -*- C++ -*- + +%module tiger_common + +%include std_string.i + +%{ + #include + #include + #include + #include + #include + #include +%} + +// Warning 454: Setting a pointer/reference variable may leak memory. +%warnfilter(454) Cout; +%warnfilter(454) Cerr; +%warnfilter(454) Clog; + +// Ofstream. +%inline %{ + struct Ofstream + { + Ofstream (const std::string& filename) : closed_ (false) + { + stream_ = new std::ofstream (filename.c_str ()); + } + + ~Ofstream () + { + if (!closed_) + close (); + } + + std::ostream& + to () + { + assert (stream_); + return *stream_; + } + + void + close () + { + assert (stream_); + stream_->close (); + delete stream_; + closed_ = true; + } + + std::ofstream* stream_; + bool closed_; + }; + + std::ostream& + get_cout() + { + return std::cout; + } + + std::ostream& + get_cerr() + { + return std::cerr; + } + + std::ostream* Cout = &std::cout; + std::ostream* Cerr = &std::cerr; + std::ostream* Clog = &std::clog; + + misc::timer timer; +%} -- cgit v1.2.3