├── tests ├── falcheck.tst ├── falrun.tst ├── package.packaged.sym ├── generic.sym ├── false.dtd └── import.sym ├── documentation ├── arm.tab ├── avr.tab ├── mips.tab ├── mmix.tab ├── ppc.tab ├── risc.tab ├── amd64.tab ├── avr32.tab ├── m68k.tab ├── mibl.tab ├── xtensa.tab ├── arma32.tab ├── arma64.tab ├── wasm.tab ├── code.tab └── or1k.tab ├── libraries └── cpp │ ├── assert.h │ ├── rcu │ ├── cfenv │ ├── iso646.h │ ├── ratio │ ├── complex.h │ ├── cuchar │ ├── future │ ├── codecvt │ ├── csignal │ ├── cwctype │ ├── fstream │ ├── sstream │ ├── stdfloat │ ├── cinttypes │ ├── stdexcept │ ├── streambuf │ ├── typeindex │ ├── cwchar │ ├── span │ ├── clocale │ ├── text_encoding │ ├── latch │ ├── print │ ├── random │ ├── limits │ ├── mdspan │ ├── mutex │ ├── barrier │ ├── stdbool.h │ ├── tgmath.h │ ├── valarray │ ├── variant │ ├── concepts │ ├── expected │ ├── flat_map │ ├── flat_set │ ├── numbers │ ├── optional │ ├── condition_variable │ ├── coroutine │ ├── execution │ ├── generator │ ├── iomanip │ ├── semaphore │ ├── stdatomic.h │ ├── stop_token │ ├── syncstream │ ├── typeinfo │ ├── spanstream │ ├── istream │ ├── chrono │ ├── stdalign.h │ ├── fenv.h │ ├── format │ ├── strstream │ ├── errno.h │ ├── float.h │ ├── regex │ ├── source_location │ ├── uchar.h │ ├── wchar.h │ ├── bitset │ ├── charconv │ ├── compare │ ├── complex │ ├── filesystem │ ├── limits.h │ ├── locale │ ├── locale.h │ ├── signal.h │ ├── wctype.h │ ├── iostream │ ├── stacktrace │ ├── ostream │ ├── inttypes.h │ ├── scoped_allocator │ ├── initializer_list │ ├── shared_mutex │ ├── new │ ├── stdarg.h │ ├── memory_resource │ ├── any │ ├── queue │ ├── stack │ ├── thread │ ├── array │ ├── bit │ ├── setjmp.h │ ├── stddef.h │ ├── ctime.cpp │ └── time.h ├── tools ├── xml.cpp ├── charset.hpp ├── xmlprinter.hpp ├── faltranspiler.hpp ├── obserializer.hpp ├── cppserializer.hpp ├── avrdisassembler.hpp ├── falemitter.hpp ├── m68kdisassembler.hpp ├── mmixdisassembler.hpp ├── riscdisassembler.hpp ├── avr32disassembler.hpp ├── xtensadisassembler.hpp ├── asmchecker.hpp ├── or1kdisassembler.hpp ├── arma32disassembler.hpp ├── arma64disassembler.hpp ├── armt32disassembler.hpp ├── wasmdisassembler.hpp ├── mibldisassembler.hpp ├── falprinter.hpp ├── obprinter.hpp ├── docprinter.hpp ├── obtranspiler.hpp ├── false.hpp ├── diagnostics.hpp ├── error.hpp ├── dbgdwarfconverter.hpp ├── mmixdisassembler.cpp ├── riscdisassembler.cpp ├── dochtmlformatter.hpp ├── or1kdisassembler.cpp ├── doclatexformatter.hpp ├── mibldisassembler.cpp ├── avrdisassembler.cpp ├── avr32assembler.hpp ├── m68kdisassembler.cpp ├── or1kassembler.hpp ├── amd64disassembler.hpp ├── armgenerator.hpp ├── avr32disassembler.cpp ├── xtensaassembler.hpp ├── arma32disassembler.cpp ├── arma64disassembler.cpp ├── cppemitter.hpp ├── wasmdisassembler.cpp ├── xtensadisassembler.cpp ├── wasmassembler.hpp ├── ppcdisassembler.hpp ├── asmprinter.hpp ├── miblassembler.hpp └── ppcdisassembler.cpp ├── runtime ├── winsdl.cpp ├── libsdl.cpp └── libdl.cpp └── utilities ├── freebsd.cpp └── osx.cpp /tests/falcheck.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EigenCompilerSuite/sources/HEAD/tests/falcheck.tst -------------------------------------------------------------------------------- /tests/falrun.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EigenCompilerSuite/sources/HEAD/tests/falrun.tst -------------------------------------------------------------------------------- /documentation/arm.tab: -------------------------------------------------------------------------------- 1 | // ARM instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/arm.def" 15 | -------------------------------------------------------------------------------- /documentation/avr.tab: -------------------------------------------------------------------------------- 1 | // AVR instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/avr.def" 15 | -------------------------------------------------------------------------------- /documentation/mips.tab: -------------------------------------------------------------------------------- 1 | // MIPS instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/mips.def" 15 | -------------------------------------------------------------------------------- /documentation/mmix.tab: -------------------------------------------------------------------------------- 1 | // MMIX instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/mmix.def" 15 | -------------------------------------------------------------------------------- /documentation/ppc.tab: -------------------------------------------------------------------------------- 1 | // PowerPC instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/ppc.def" 15 | -------------------------------------------------------------------------------- /documentation/risc.tab: -------------------------------------------------------------------------------- 1 | // RISC instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/risc.def" 15 | -------------------------------------------------------------------------------- /documentation/amd64.tab: -------------------------------------------------------------------------------- 1 | // AMD64 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/amd64.def" 15 | -------------------------------------------------------------------------------- /documentation/avr32.tab: -------------------------------------------------------------------------------- 1 | // AVR32 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/avr32.def" 15 | -------------------------------------------------------------------------------- /documentation/m68k.tab: -------------------------------------------------------------------------------- 1 | // M68000 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/m68k.def" 15 | -------------------------------------------------------------------------------- /documentation/mibl.tab: -------------------------------------------------------------------------------- 1 | // MicroBlaze instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/mibl.def" 15 | -------------------------------------------------------------------------------- /documentation/xtensa.tab: -------------------------------------------------------------------------------- 1 | // Xtensa instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/xtensa.def" 15 | -------------------------------------------------------------------------------- /documentation/arma32.tab: -------------------------------------------------------------------------------- 1 | // ARM A32 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/arma32.def" 15 | -------------------------------------------------------------------------------- /documentation/arma64.tab: -------------------------------------------------------------------------------- 1 | // ARM A64 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/arma64.def" 15 | -------------------------------------------------------------------------------- /documentation/wasm.tab: -------------------------------------------------------------------------------- 1 | // WebAssembly instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define MNEM(name, mnem) \instruction{name}{name instruction} 14 | #include "../tools/wasm.def" 15 | -------------------------------------------------------------------------------- /documentation/code.tab: -------------------------------------------------------------------------------- 1 | // Intermediate code instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define INSTR(name, mnem, class1, class2, class3, ...) \instruction{name}{__VA_ARGS__} 14 | #include "../tools/code.def" 15 | -------------------------------------------------------------------------------- /tests/package.packaged.sym: -------------------------------------------------------------------------------- 1 | (* Oberon symbol file for packaged import tests 2 | Copyright (C) Florian Negele 3 | 4 | This file is part of the Eigen Compiler Suite. 5 | 6 | The ECS is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | The ECS is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with the ECS. If not, see . *) 18 | 19 | MODULE Packaged IN Package; 20 | 21 | END Packaged. 22 | -------------------------------------------------------------------------------- /tests/generic.sym: -------------------------------------------------------------------------------- 1 | (* Oberon symbol file for generic import tests 2 | Copyright (C) Florian Negele 3 | 4 | This file is part of the Eigen Compiler Suite. 5 | 6 | The ECS is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | The ECS is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with the ECS. If not, see . *) 18 | 19 | MODULE Generic (Type*, Constant); 20 | 21 | VAR variable-: ARRAY Constant OF Type; 22 | 23 | BEGIN 24 | variable[0] := Type (Constant); 25 | END Generic. 26 | -------------------------------------------------------------------------------- /tests/false.dtd: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /documentation/or1k.tab: -------------------------------------------------------------------------------- 1 | // OpenRISC 1000 instruction set table 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // Permission is granted to copy, distribute and/or modify this document 7 | // under the terms of the GNU Free Documentation License, Version 1.3 8 | // or any later version published by the Free Software Foundation. 9 | 10 | // You should have received a copy of the GNU Free Documentation License 11 | // along with the ECS. If not, see . 12 | 13 | #define all_eq all\_eq 14 | #define all_ge all\_ge 15 | #define all_gt all\_gt 16 | #define all_le all\_le 17 | #define all_lt all\_lt 18 | #define all_ne all\_ne 19 | #define any_eq any\_eq 20 | #define any_ge any\_ge 21 | #define any_gt any\_gt 22 | #define any_le any\_le 23 | #define any_lt any\_lt 24 | #define any_ne any\_ne 25 | #define cmp_eq cmp\_eq 26 | #define cmp_ge cmp\_ge 27 | #define cmp_gt cmp\_gt 28 | #define cmp_le cmp\_le 29 | #define cmp_lt cmp\_lt 30 | #define cmp_ne cmp\_ne 31 | 32 | #define MNEM(name, mnem, ...) \instruction{name}{__VA_ARGS__} 33 | #include "../tools/or1k.def" 34 | -------------------------------------------------------------------------------- /libraries/cpp/assert.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | [[deprecated ("this header is deprecated, use instead")]]; 25 | 26 | #include "cassert" 27 | -------------------------------------------------------------------------------- /tools/xml.cpp: -------------------------------------------------------------------------------- 1 | // XML document representation 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "xml.hpp" 20 | 21 | using namespace ECS; 22 | using namespace XML; 23 | 24 | Element::Element (const char*const n) : 25 | name {n} 26 | { 27 | } 28 | 29 | Attribute::Attribute (const char*const n, const char* v) : 30 | name {n}, value {v} 31 | { 32 | } 33 | 34 | Attribute::Attribute (const char*const n, const String& v) : 35 | name {n}, value {v} 36 | { 37 | } 38 | -------------------------------------------------------------------------------- /tools/charset.hpp: -------------------------------------------------------------------------------- 1 | // Generic character set 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_CHARSET_HEADER_INCLUDED 20 | #define ECS_CHARSET_HEADER_INCLUDED 21 | 22 | namespace ECS 23 | { 24 | class Charset; 25 | } 26 | 27 | class ECS::Charset 28 | { 29 | public: 30 | virtual ~Charset () = default; 31 | 32 | virtual char Decode (unsigned char) const = 0; 33 | virtual unsigned char Encode (char) const = 0; 34 | }; 35 | 36 | #endif // ECS_CHARSET_HEADER_INCLUDED 37 | -------------------------------------------------------------------------------- /libraries/cpp/rcu: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_RCU_HEADER_INCLUDED 25 | #define ECS_CPP_RCU_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_RCU_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/cfenv: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CFENV_HEADER_INCLUDED 25 | #define ECS_CPP_CFENV_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CFENV_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/iso646.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_ISO646_HEADER_INCLUDED 25 | #define ECS_C_ISO646_HEADER_INCLUDED 26 | 27 | #endif // ECS_C_ISO646_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/ratio: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_RATIO_HEADER_INCLUDED 25 | #define ECS_CPP_RATIO_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_RATIO_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/complex.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_COMPLEX_HEADER_INCLUDED 25 | #define ECS_C_COMPLEX_HEADER_INCLUDED 26 | 27 | #endif // ECS_C_COMPLEX_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/cuchar: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CUCHAR_HEADER_INCLUDED 25 | #define ECS_CPP_CUCHAR_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CUCHAR_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/future: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FUTURE_HEADER_INCLUDED 25 | #define ECS_CPP_FUTURE_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_FUTURE_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/codecvt: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CODECVT_HEADER_INCLUDED 25 | #define ECS_CPP_CODECVT_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CODECVT_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/csignal: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CSIGNAL_HEADER_INCLUDED 25 | #define ECS_CPP_CSIGNAL_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CSIGNAL_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/cwctype: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CWCTYPE_HEADER_INCLUDED 25 | #define ECS_CPP_CWCTYPE_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CWCTYPE_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/fstream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_FSTREAM_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_FSTREAM_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/sstream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_SSTREAM_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_SSTREAM_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/stdfloat: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STDFLOAT_HEADER_INCLUDED 25 | #define ECS_CPP_STDFLOAT_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_STDFLOAT_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/cinttypes: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CINTTYPES_HEADER_INCLUDED 25 | #define ECS_CPP_CINTTYPES_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CINTTYPES_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/stdexcept: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STDEXCEPT_HEADER_INCLUDED 25 | #define ECS_CPP_STDEXCEPT_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_STDEXCEPT_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/streambuf: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STREAMBUF_HEADER_INCLUDED 25 | #define ECS_CPP_STREAMBUF_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_STREAMBUF_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/typeindex: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_TYPEINDEX_HEADER_INCLUDED 25 | #define ECS_CPP_TYPEINDEX_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_TYPEINDEX_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /tools/xmlprinter.hpp: -------------------------------------------------------------------------------- 1 | // XML document pretty printer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_XML_PRINTER_HEADER_INCLUDED 20 | #define ECS_XML_PRINTER_HEADER_INCLUDED 21 | 22 | #include 23 | 24 | namespace ECS::XML 25 | { 26 | class Printer; 27 | 28 | struct Document; 29 | } 30 | 31 | class ECS::XML::Printer 32 | { 33 | public: 34 | void Print (const Document&, std::ostream&) const; 35 | 36 | private: 37 | class Context; 38 | }; 39 | 40 | #endif // ECS_XML_PRINTER_HEADER_INCLUDED 41 | -------------------------------------------------------------------------------- /runtime/winsdl.cpp: -------------------------------------------------------------------------------- 1 | // SDL API wrapper for Windows 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #include "winlib.hpp" 25 | 26 | LIBRARY (sdl, "sdl2.dll") 27 | #define SDLFUNCTION(name, parameters) FUNCTION (sdl, name, parameters) 28 | #include "sdl.cpp" 29 | -------------------------------------------------------------------------------- /libraries/cpp/cwchar: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CWCHAR_HEADER_INCLUDED 25 | #define ECS_CPP_CWCHAR_HEADER_INCLUDED 26 | 27 | #define NULL nullptr 28 | 29 | #endif // ECS_CPP_CWCHAR_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/span: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SPAN_HEADER_INCLUDED 25 | #define ECS_CPP_SPAN_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_span 202002L 28 | 29 | #endif // ECS_CPP_SPAN_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/clocale: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CLOCALE_HEADER_INCLUDED 25 | #define ECS_CPP_CLOCALE_HEADER_INCLUDED 26 | 27 | #define NULL nullptr 28 | 29 | #endif // ECS_CPP_CLOCALE_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/text_encoding: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_TEXT_ENCODING_HEADER_INCLUDED 25 | #define ECS_CPP_TEXT_ENCODING_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_TEXT_ENCODING_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /runtime/libsdl.cpp: -------------------------------------------------------------------------------- 1 | // SDL API wrapper for Linux 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #include "linuxlib.hpp" 25 | 26 | LIBRARY (libsdl, "libSDL2-2.0.so.0") 27 | #define SDLFUNCTION(name, parameters) FUNCTION (libsdl, name, parameters) 28 | #include "sdl.cpp" 29 | -------------------------------------------------------------------------------- /tools/faltranspiler.hpp: -------------------------------------------------------------------------------- 1 | // FALSE transpiler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_FALSE_TRANSPILER_HEADER_INCLUDED 20 | #define ECS_FALSE_TRANSPILER_HEADER_INCLUDED 21 | 22 | #include 23 | 24 | namespace ECS::FALSE 25 | { 26 | class Transpiler; 27 | 28 | struct Program; 29 | } 30 | 31 | class ECS::FALSE::Transpiler 32 | { 33 | public: 34 | void Transpile (const Program&, std::ostream&) const; 35 | 36 | private: 37 | class Context; 38 | }; 39 | 40 | #endif // ECS_FALSE_TRANSPILER_HEADER_INCLUDED 41 | -------------------------------------------------------------------------------- /libraries/cpp/latch: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_LATCH_HEADER_INCLUDED 25 | #define ECS_CPP_LATCH_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_latch 201907L 28 | 29 | #endif // ECS_CPP_LATCH_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/print: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_PRINT_HEADER_INCLUDED 25 | #define ECS_CPP_PRINT_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_print 202207L 28 | 29 | #endif // ECS_CPP_PRINT_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/random: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_RANDOM_HEADER_INCLUDED 25 | #define ECS_CPP_RANDOM_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #endif // ECS_CPP_RANDOM_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/limits: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_LIMITS_HEADER_INCLUDED 25 | #define ECS_CPP_LIMITS_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_char8_t 201907L 28 | 29 | #endif // ECS_CPP_LIMITS_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/mdspan: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_MDSPAN_HEADER_INCLUDED 25 | #define ECS_CPP_MDSPAN_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_mdspan 202207L 28 | 29 | #endif // ECS_CPP_MDSPAN_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/mutex: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_MUTEX_HEADER_INCLUDED 25 | #define ECS_CPP_MUTEX_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_scoped_lock 201703L 28 | 29 | #endif // ECS_CPP_MUTEX_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/barrier: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_BARRIER_HEADER_INCLUDED 25 | #define ECS_CPP_BARRIER_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_barrier 202302L 28 | 29 | #endif // ECS_CPP_BARRIER_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/stdbool.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_STDBOOL_HEADER_INCLUDED 25 | #define ECS_C_STDBOOL_HEADER_INCLUDED 26 | 27 | #define __bool_true_false_are_defined 1 28 | 29 | #endif // ECS_C_STDBOOL_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/tgmath.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_TGMATH_HEADER_INCLUDED 25 | #define ECS_C_TGMATH_HEADER_INCLUDED 26 | 27 | #include "complex" 28 | #include "cmath" 29 | 30 | #endif // ECS_C_TGMATH_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/valarray: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_VALARRAY_HEADER_INCLUDED 25 | #define ECS_CPP_VALARRAY_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #endif // ECS_CPP_VALARRAY_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/variant: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_VARIANT_HEADER_INCLUDED 25 | #define ECS_CPP_VARIANT_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_variant 202106L 28 | 29 | #endif // ECS_CPP_VARIANT_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/concepts: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CONCEPTS_HEADER_INCLUDED 25 | #define ECS_CPP_CONCEPTS_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_concepts 202207L 28 | 29 | #endif // ECS_CPP_CONCEPTS_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/expected: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_EXPECTED_HEADER_INCLUDED 25 | #define ECS_CPP_EXPECTED_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_expected 202211L 28 | 29 | #endif // ECS_CPP_EXPECTED_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/flat_map: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FLAT_MAP_HEADER_INCLUDED 25 | #define ECS_CPP_FLAT_MAP_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_flat_map 202207L 28 | 29 | #endif // ECS_CPP_FLAT_MAP_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/flat_set: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FLAT_SET_HEADER_INCLUDED 25 | #define ECS_CPP_FLAT_SET_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_flat_set 202207L 28 | 29 | #endif // ECS_CPP_FLAT_SET_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/numbers: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_NUMBERS_HEADER_INCLUDED 25 | #define ECS_CPP_NUMBERS_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_math_constants 201907L 28 | 29 | #endif // ECS_CPP_NUMBERS_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/optional: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_OPTIONAL_HEADER_INCLUDED 25 | #define ECS_CPP_OPTIONAL_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_optional 202110L 28 | 29 | #endif // ECS_CPP_OPTIONAL_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /utilities/freebsd.cpp: -------------------------------------------------------------------------------- 1 | // FreeBSD system interface 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "system.hpp" 20 | 21 | #include 22 | #include 23 | 24 | const char* sys::get_name () 25 | { 26 | return nullptr; 27 | } 28 | 29 | std::string sys::get_program_path () 30 | { 31 | char buffer[PATH_MAX]; std::size_t length = sizeof buffer; 32 | static const int name[4] {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; 33 | return {buffer, !sysctl (name, 4, buffer, &length, nullptr, 0) && length ? length - 1 : 0}; 34 | } 35 | -------------------------------------------------------------------------------- /libraries/cpp/condition_variable: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CONDITION_VARIABLE_HEADER_INCLUDED 25 | #define ECS_CPP_CONDITION_VARIABLE_HEADER_INCLUDED 26 | 27 | #endif // ECS_CPP_CONDITION_VARIABLE_HEADER_INCLUDED 28 | -------------------------------------------------------------------------------- /libraries/cpp/coroutine: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_COROUTINE_HEADER_INCLUDED 25 | #define ECS_CPP_COROUTINE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_coroutine 201902L 28 | 29 | #endif // ECS_CPP_COROUTINE_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/execution: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_EXECUTION_HEADER_INCLUDED 25 | #define ECS_CPP_EXECUTION_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_execution 201902L 28 | 29 | #endif // ECS_CPP_EXECUTION_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/generator: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_GENERATOR_HEADER_INCLUDED 25 | #define ECS_CPP_GENERATOR_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_generator 202207L 28 | 29 | #endif // ECS_CPP_GENERATOR_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/iomanip: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_IOMANIP_HEADER_INCLUDED 25 | #define ECS_CPP_IOMANIP_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_quoted_string_io 201304L 28 | 29 | #endif // ECS_CPP_IOMANIP_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/semaphore: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SEMAPHORE_HEADER_INCLUDED 25 | #define ECS_CPP_SEMAPHORE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_semaphore 201907L 28 | 29 | #endif // ECS_CPP_SEMAPHORE_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/stdatomic.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_STDATOMIC_HEADER_INCLUDED 25 | #define ECS_C_STDATOMIC_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_stdatomic_h 202011L 28 | 29 | #endif // ECS_C_STDATOMIC_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /runtime/libdl.cpp: -------------------------------------------------------------------------------- 1 | // Dynamic linking API wrapper 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #include "linuxlib.hpp" 25 | 26 | LIBRARY (libdl, "libdl.so.2") 27 | FUNCTION (libdl, dlclose, 1) 28 | FUNCTION (libdl, dlerror, 0) 29 | FUNCTION (libdl, dlopen, 2) 30 | FUNCTION (libdl, dlsym, 2) 31 | -------------------------------------------------------------------------------- /libraries/cpp/stop_token: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STOP_TOKEN_HEADER_INCLUDED 25 | #define ECS_CPP_STOP_TOKEN_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_jthread 201911L 28 | 29 | #endif // ECS_CPP_STOP_TOKEN_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/syncstream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SYNCSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_SYNCSTREAM_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_syncbuf 201803L 28 | 29 | #endif // ECS_CPP_SYNCSTREAM_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/typeinfo: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_TYPEINFO_HEADER_INCLUDED 25 | #define ECS_CPP_TYPEINFO_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_constexpr_typeinfo 202106L 28 | 29 | #endif // ECS_CPP_TYPEINFO_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/spanstream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SPANSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_SPANSTREAM_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_spanstream 202106L 28 | 29 | #endif // ECS_CPP_SPANSTREAM_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /tests/import.sym: -------------------------------------------------------------------------------- 1 | (* Oberon symbol file for standard import tests 2 | Copyright (C) Florian Negele 3 | 4 | This file is part of the Eigen Compiler Suite. 5 | 6 | The ECS is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | The ECS is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with the ECS. If not, see . *) 18 | 19 | MODULE Import; 20 | 21 | CONST Constant = 0; 22 | CONST ExportedConstant* = 0; 23 | 24 | TYPE Type = RECORD field, exportedField*, readOnlyField-: INTEGER END; 25 | TYPE ExportedType* = Type; 26 | 27 | VAR variable, exportedVariable*, readOnlyVariable-: INTEGER; 28 | VAR exportedArray*, readOnlyArray-: ARRAY 10 OF CHAR; 29 | VAR exportedRecord*, readOnlyRecord-: Type; 30 | 31 | PROCEDURE Procedure; END Procedure; 32 | PROCEDURE ExportedProcedure*; END ExportedProcedure; 33 | 34 | END Import. 35 | -------------------------------------------------------------------------------- /tools/obserializer.hpp: -------------------------------------------------------------------------------- 1 | // C++ serializer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_OBERON_SERIALIZER_HEADER_INCLUDED 20 | #define ECS_OBERON_SERIALIZER_HEADER_INCLUDED 21 | 22 | namespace ECS::Oberon 23 | { 24 | class Serializer; 25 | 26 | struct Module; 27 | } 28 | 29 | namespace ECS::XML 30 | { 31 | struct Document; 32 | } 33 | 34 | class ECS::Oberon::Serializer 35 | { 36 | public: 37 | void Serialize (const Module&, XML::Document&) const; 38 | 39 | private: 40 | class Context; 41 | }; 42 | 43 | #endif // ECS_OBERON_SERIALIZER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /libraries/cpp/istream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_ISTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_ISTREAM_HEADER_INCLUDED 26 | 27 | #include "iosfwd" 28 | 29 | #define __cpp_lib_char8_t 201907L 30 | 31 | #endif // ECS_CPP_ISTREAM_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /tools/cppserializer.hpp: -------------------------------------------------------------------------------- 1 | // C++ serializer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_CPP_SERIALIZER_HEADER_INCLUDED 20 | #define ECS_CPP_SERIALIZER_HEADER_INCLUDED 21 | 22 | namespace ECS::CPP 23 | { 24 | class Serializer; 25 | 26 | struct TranslationUnit; 27 | } 28 | 29 | namespace ECS::XML 30 | { 31 | struct Document; 32 | } 33 | 34 | class ECS::CPP::Serializer 35 | { 36 | public: 37 | void Serialize (const TranslationUnit&, XML::Document&) const; 38 | 39 | private: 40 | class Context; 41 | }; 42 | 43 | #endif // ECS_CPP_SERIALIZER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /libraries/cpp/chrono: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CHRONO_HEADER_INCLUDED 25 | #define ECS_CPP_CHRONO_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_chrono 201907L 28 | #define __cpp_lib_chrono_udls 201304L 29 | 30 | #endif // ECS_CPP_CHRONO_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/stdalign.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_STDALIGN_HEADER_INCLUDED 25 | #define ECS_C_STDALIGN_HEADER_INCLUDED 26 | 27 | #define __alignas_is_defined 1 28 | #define __alignof_is_defined 1 29 | 30 | #endif // ECS_C_STDALIGN_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/fenv.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_FENV_HEADER_INCLUDED 25 | #define ECS_C_FENV_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cfenv" 30 | 31 | #endif // ECS_C_FENV_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/format: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FORMAT_HEADER_INCLUDED 25 | #define ECS_CPP_FORMAT_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_format 202207L 28 | #define __cpp_lib_format_ranges 202207L 29 | 30 | #endif // ECS_CPP_FORMAT_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/strstream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STRSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_STRSTREAM_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #endif // ECS_CPP_STRSTREAM_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/errno.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_ERRNO_HEADER_INCLUDED 25 | #define ECS_C_ERRNO_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cerrno" 30 | 31 | #endif // ECS_C_ERRNO_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/float.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_FLOAT_HEADER_INCLUDED 25 | #define ECS_C_FLOAT_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cfloat" 30 | 31 | #endif // ECS_C_FLOAT_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/regex: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_REGEX_HEADER_INCLUDED 25 | #define ECS_CPP_REGEX_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #define __cpp_lib_nonmember_container_access 201411L 30 | 31 | #endif // ECS_CPP_REGEX_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/source_location: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SOURCE_LOCATION_HEADER_INCLUDED 25 | #define ECS_CPP_SOURCE_LOCATION_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_source_location 201907L 28 | 29 | #endif // ECS_CPP_SOURCE_LOCATION_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /libraries/cpp/uchar.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_UCHAR_HEADER_INCLUDED 25 | #define ECS_C_UCHAR_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cuchar" 30 | 31 | #endif // ECS_C_UCHAR_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/wchar.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_WCHAR_HEADER_INCLUDED 25 | #define ECS_C_WCHAR_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cwchar" 30 | 31 | #endif // ECS_C_WCHAR_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /tools/avrdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // AVR disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_AVR_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_AVR_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::AVR 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::AVR::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_AVR_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/falemitter.hpp: -------------------------------------------------------------------------------- 1 | // FALSE intermediate code emitter 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_FALSE_EMITTER_HEADER_INCLUDED 20 | #define ECS_FALSE_EMITTER_HEADER_INCLUDED 21 | 22 | #include "cdemitter.hpp" 23 | 24 | namespace ECS::FALSE 25 | { 26 | class Emitter; 27 | 28 | struct Program; 29 | } 30 | 31 | class ECS::FALSE::Emitter : public Code::Emitter 32 | { 33 | public: 34 | using Code::Emitter::Emitter; 35 | 36 | void Emit (const Program&, Code::Sections&) const; 37 | 38 | private: 39 | class Context; 40 | }; 41 | 42 | #endif // ECS_FALSE_EMITTER_HEADER_INCLUDED 43 | -------------------------------------------------------------------------------- /libraries/cpp/bitset: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_BITSET_HEADER_INCLUDED 25 | #define ECS_CPP_BITSET_HEADER_INCLUDED 26 | 27 | #include "iosfwd" 28 | #include "string" 29 | 30 | #define __cpp_lib_constexpr_bitset 202207L 31 | 32 | #endif // ECS_CPP_BITSET_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /libraries/cpp/charconv: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_CHARCONV_HEADER_INCLUDED 25 | #define ECS_CPP_CHARCONV_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_constexpr_charconv 202207L 28 | #define __cpp_lib_to_chars 201611L 29 | 30 | #endif // ECS_CPP_CHARCONV_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/compare: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_COMPARE_HEADER_INCLUDED 25 | #define ECS_CPP_COMPARE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_concepts 202207L 28 | #define __cpp_lib_three_way_comparison 201907L 29 | 30 | #endif // ECS_CPP_COMPARE_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/complex: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_COMPLEX_HEADER_INCLUDED 25 | #define ECS_CPP_COMPLEX_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_complex_udls 201309L 28 | #define __cpp_lib_constexpr_complex 201711L 29 | 30 | #endif // ECS_CPP_COMPLEX_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/filesystem: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_FILESYSTEM_HEADER_INCLUDED 25 | #define ECS_CPP_FILESYSTEM_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_char8_t 201907L 28 | #define __cpp_lib_filesystem 201703L 29 | 30 | #endif // ECS_CPP_FILESYSTEM_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/limits.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_LIMITS_HEADER_INCLUDED 25 | #define ECS_C_LIMITS_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "climits" 30 | 31 | #endif // ECS_C_LIMITS_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/locale: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_LOCALE_HEADER_INCLUDED 25 | #define ECS_CPP_LOCALE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_char8_t 201907L 28 | 29 | namespace std 30 | { 31 | class locale; 32 | } 33 | 34 | #endif // ECS_CPP_LOCALE_HEADER_INCLUDED 35 | -------------------------------------------------------------------------------- /libraries/cpp/locale.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_LOCALE_HEADER_INCLUDED 25 | #define ECS_C_LOCALE_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "clocale" 30 | 31 | #endif // ECS_C_LOCALE_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/signal.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_SIGNAL_HEADER_INCLUDED 25 | #define ECS_C_SIGNAL_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "csignal" 30 | 31 | #endif // ECS_C_SIGNAL_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/wctype.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_WCTYPE_HEADER_INCLUDED 25 | #define ECS_C_WCTYPE_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cwctype" 30 | 31 | #endif // ECS_C_WCTYPE_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /tools/m68kdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // M68000 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_M68K_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_M68K_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::M68K 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::M68K::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_M68K_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/mmixdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // MMIX disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_MMIX_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_MMIX_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::MMIX 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::MMIX::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_MMIX_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/riscdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // RISC disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_RISC_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_RISC_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::RISC 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::RISC::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_RISC_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /libraries/cpp/iostream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_IOSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_IOSTREAM_HEADER_INCLUDED 26 | 27 | #include "ios" 28 | #include "istream" 29 | #include "ostream" 30 | #include "streambuf" 31 | 32 | #endif // ECS_CPP_IOSTREAM_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /libraries/cpp/stacktrace: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STACKTRACE_HEADER_INCLUDED 25 | #define ECS_CPP_STACKTRACE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_formatters 202302L 28 | #define __cpp_lib_stacktrace 202011L 29 | 30 | #endif // ECS_CPP_STACKTRACE_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /tools/avr32disassembler.hpp: -------------------------------------------------------------------------------- 1 | // AVR32 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_AVR32_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_AVR32_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::AVR32 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::AVR32::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_AVR32_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/xtensadisassembler.hpp: -------------------------------------------------------------------------------- 1 | // Xtensa disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_XTENSA_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_XTENSA_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::Xtensa 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::Xtensa::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_XTENSA_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /libraries/cpp/ostream: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_OSTREAM_HEADER_INCLUDED 25 | #define ECS_CPP_OSTREAM_HEADER_INCLUDED 26 | 27 | #include "iosfwd" 28 | 29 | #define __cpp_lib_char8_t 201907L 30 | #define __cpp_lib_print 202207L 31 | 32 | #endif // ECS_CPP_OSTREAM_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /tools/asmchecker.hpp: -------------------------------------------------------------------------------- 1 | // Generic assembly language semantic checker 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ASSEMBLY_CHECKER_HEADER_INCLUDED 20 | #define ECS_ASSEMBLY_CHECKER_HEADER_INCLUDED 21 | 22 | namespace ECS 23 | { 24 | class Charset; 25 | class Diagnostics; 26 | } 27 | 28 | namespace ECS::Assembly 29 | { 30 | class Checker; 31 | } 32 | 33 | class ECS::Assembly::Checker 34 | { 35 | protected: 36 | class Context; 37 | 38 | Checker (Diagnostics&, Charset&); 39 | 40 | Diagnostics& diagnostics; 41 | Charset& charset; 42 | }; 43 | 44 | #endif // ECS_ASSEMBLY_CHECKER_HEADER_INCLUDED 45 | -------------------------------------------------------------------------------- /tools/or1kdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // OpenRISC 1000 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_OR1K_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_OR1K_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::OR1K 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::OR1K::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_OR1K_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /libraries/cpp/inttypes.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_INTTYPES_HEADER_INCLUDED 25 | #define ECS_C_INTTYPES_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cinttypes" 30 | 31 | #endif // ECS_C_INTTYPES_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/scoped_allocator: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SCOPED_ALLOCATOR_HEADER_INCLUDED 25 | #define ECS_CPP_SCOPED_ALLOCATOR_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_allocator_traits_is_always_equal 201411L 28 | 29 | #endif // ECS_CPP_SCOPED_ALLOCATOR_HEADER_INCLUDED 30 | -------------------------------------------------------------------------------- /tools/arma32disassembler.hpp: -------------------------------------------------------------------------------- 1 | // ARM A32 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ARM_A32_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_ARM_A32_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::ARM::A32 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::ARM::A32::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_ARM_A32_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/arma64disassembler.hpp: -------------------------------------------------------------------------------- 1 | // ARM A64 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ARM_A64_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_ARM_A64_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::ARM::A64 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::ARM::A64::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_ARM_A64_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/armt32disassembler.hpp: -------------------------------------------------------------------------------- 1 | // ARM T32 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ARM_T32_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_ARM_T32_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::ARM::T32 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::ARM::T32::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_ARM_T32_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/wasmdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // WebAssembly disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_WASM_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_WASM_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::WebAssembly 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::WebAssembly::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_WASM_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /libraries/cpp/initializer_list: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_INITIALIZER_LIST_HEADER_INCLUDED 25 | #define ECS_CPP_INITIALIZER_LIST_HEADER_INCLUDED 26 | 27 | namespace std 28 | { 29 | using size_t = decltype (sizeof 0); 30 | } 31 | 32 | #endif // ECS_CPP_INITIALIZER_LIST_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /libraries/cpp/shared_mutex: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_SHARED_MUTEX_HEADER_INCLUDED 25 | #define ECS_CPP_SHARED_MUTEX_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_shared_mutex 201505L 28 | #define __cpp_lib_shared_timed_mutex 201402L 29 | 30 | #endif // ECS_CPP_SHARED_MUTEX_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /libraries/cpp/new: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_NEW_HEADER_INCLUDED 25 | #define ECS_CPP_NEW_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_destroying_delete 201806L 28 | #define __cpp_lib_hardware_interference_size 201703L 29 | #define __cpp_lib_launder 201606L 30 | 31 | #endif // ECS_CPP_NEW_HEADER_INCLUDED 32 | -------------------------------------------------------------------------------- /libraries/cpp/stdarg.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_STDARG_HEADER_INCLUDED 25 | #define ECS_C_STDARG_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cstdarg" 30 | 31 | using std::va_list; 32 | 33 | #endif // ECS_C_STDARG_HEADER_INCLUDED 34 | -------------------------------------------------------------------------------- /tools/mibldisassembler.hpp: -------------------------------------------------------------------------------- 1 | // MicroBlaze disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_MICROBLAZE_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_MICROBLAZE_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::MicroBlaze 25 | { 26 | class Disassembler; 27 | } 28 | 29 | class ECS::MicroBlaze::Disassembler : public Assembly::Disassembler 30 | { 31 | public: 32 | explicit Disassembler (Charset&); 33 | 34 | private: 35 | Size ListInstruction (Span, std::ostream&, State&) const override; 36 | }; 37 | 38 | #endif // ECS_MICROBLAZE_DISASSEMBLER_HEADER_INCLUDED 39 | -------------------------------------------------------------------------------- /tools/falprinter.hpp: -------------------------------------------------------------------------------- 1 | // FALSE pretty printer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_FALSE_PRINTER_HEADER_INCLUDED 20 | #define ECS_FALSE_PRINTER_HEADER_INCLUDED 21 | 22 | #include "fallexer.hpp" 23 | 24 | namespace ECS::FALSE 25 | { 26 | class Printer; 27 | 28 | struct Program; 29 | 30 | using Element = Lexer::Token; 31 | using Function = std::vector; 32 | } 33 | 34 | class ECS::FALSE::Printer 35 | { 36 | public: 37 | void Print (const Program&, std::ostream&) const; 38 | 39 | private: 40 | void Print (const Function&, std::ostream&) const; 41 | }; 42 | 43 | #endif // ECS_FALSE_PRINTER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /tools/obprinter.hpp: -------------------------------------------------------------------------------- 1 | // Oberon pretty printer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_OBERON_PRINTER_HEADER_INCLUDED 20 | #define ECS_OBERON_PRINTER_HEADER_INCLUDED 21 | 22 | #include 23 | 24 | namespace ECS::Oberon 25 | { 26 | class Printer; 27 | 28 | struct Module; 29 | } 30 | 31 | class ECS::Oberon::Printer 32 | { 33 | public: 34 | using Interface = bool; 35 | 36 | explicit Printer (Interface = false); 37 | 38 | void Print (const Module&, std::ostream&) const; 39 | 40 | private: 41 | class Context; 42 | 43 | const Interface interface; 44 | }; 45 | 46 | #endif // ECS_OBERON_PRINTER_HEADER_INCLUDED 47 | -------------------------------------------------------------------------------- /libraries/cpp/memory_resource: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_MEMORY_RESOURCE_HEADER_INCLUDED 25 | #define ECS_CPP_MEMORY_RESOURCE_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_memory_resource 201603L 28 | #define __cpp_lib_polymorphic_allocator 201902L 29 | 30 | #endif // ECS_CPP_MEMORY_RESOURCE_HEADER_INCLUDED 31 | -------------------------------------------------------------------------------- /tools/docprinter.hpp: -------------------------------------------------------------------------------- 1 | // Generic documentation pretty printer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_DOCUMENTATION_PRINTER_HEADER_INCLUDED 20 | #define ECS_DOCUMENTATION_PRINTER_HEADER_INCLUDED 21 | 22 | #include 23 | #include 24 | 25 | namespace ECS::Documentation 26 | { 27 | class Printer; 28 | 29 | struct Document; 30 | 31 | using Documents = std::list; 32 | } 33 | 34 | class ECS::Documentation::Printer 35 | { 36 | public: 37 | void Print (const Documents&, std::ostream&) const; 38 | 39 | private: 40 | class Context; 41 | }; 42 | 43 | #endif // ECS_DOCUMENTATION_PRINTER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /tools/obtranspiler.hpp: -------------------------------------------------------------------------------- 1 | // Oberon transpiler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_OBERON_TRANSPILER_HEADER_INCLUDED 20 | #define ECS_OBERON_TRANSPILER_HEADER_INCLUDED 21 | 22 | #include 23 | 24 | namespace ECS::Oberon 25 | { 26 | class Platform; 27 | class Transpiler; 28 | 29 | struct Module; 30 | } 31 | 32 | class ECS::Oberon::Transpiler 33 | { 34 | public: 35 | explicit Transpiler (Platform&); 36 | 37 | void Transpile (const Module&, std::ostream&, std::ostream&) const; 38 | 39 | private: 40 | class Context; 41 | 42 | Platform& platform; 43 | }; 44 | 45 | #endif // ECS_OBERON_TRANSPILER_HEADER_INCLUDED 46 | -------------------------------------------------------------------------------- /libraries/cpp/any: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_ANY_HEADER_INCLUDED 25 | #define ECS_CPP_ANY_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_any 201606L 28 | 29 | namespace std 30 | { 31 | class any; 32 | class bad_any_cast; 33 | 34 | void swap (any&, any&) noexcept; 35 | } 36 | 37 | #endif // ECS_CPP_ANY_HEADER_INCLUDED 38 | -------------------------------------------------------------------------------- /libraries/cpp/queue: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_QUEUE_HEADER_INCLUDED 25 | #define ECS_CPP_QUEUE_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #define __cpp_lib_adaptor_iterator_pair_constructor 202106L 30 | #define __cpp_lib_containers_ranges 202202L 31 | 32 | #endif // ECS_CPP_QUEUE_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /libraries/cpp/stack: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_STACK_HEADER_INCLUDED 25 | #define ECS_CPP_STACK_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #define __cpp_lib_adaptor_iterator_pair_constructor 202106L 30 | #define __cpp_lib_containers_ranges 202202L 31 | 32 | #endif // ECS_CPP_STACK_HEADER_INCLUDED 33 | -------------------------------------------------------------------------------- /tools/false.hpp: -------------------------------------------------------------------------------- 1 | // FALSE representation 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_FALSE_HEADER_INCLUDED 20 | #define ECS_FALSE_HEADER_INCLUDED 21 | 22 | #include "fallexer.hpp" 23 | #include "structurepool.hpp" 24 | 25 | namespace ECS::FALSE 26 | { 27 | struct Program; 28 | 29 | using Element = Lexer::Token; 30 | using Function = std::vector; 31 | 32 | std::ostream& operator << (std::ostream&, const Element&); 33 | } 34 | 35 | struct ECS::FALSE::Program : StructurePool 36 | { 37 | Source source; 38 | Function main; 39 | 40 | explicit Program (const Source&); 41 | }; 42 | 43 | #endif // ECS_FALSE_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /libraries/cpp/thread: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_THREAD_HEADER_INCLUDED 25 | #define ECS_CPP_THREAD_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_formatters 202302L 28 | #define __cpp_lib_jthread 201911L 29 | 30 | namespace std 31 | { 32 | class jthread; 33 | class thread; 34 | } 35 | 36 | #endif // ECS_CPP_THREAD_HEADER_INCLUDED 37 | -------------------------------------------------------------------------------- /tools/diagnostics.hpp: -------------------------------------------------------------------------------- 1 | // Generic diagnostics 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_DIAGNOSTICS_HEADER_INCLUDED 20 | #define ECS_DIAGNOSTICS_HEADER_INCLUDED 21 | 22 | #include 23 | 24 | namespace ECS 25 | { 26 | class Diagnostics; 27 | class Position; 28 | 29 | using Message = std::string; 30 | using Source = std::string; 31 | } 32 | 33 | class ECS::Diagnostics 34 | { 35 | public: 36 | enum Type {Error, FatalError, Warning, Note}; 37 | 38 | virtual ~Diagnostics () = default; 39 | 40 | virtual void Emit (Type, const Source&, const Position&, const Message&) = 0; 41 | }; 42 | 43 | #endif // ECS_DIAGNOSTICS_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /tools/error.hpp: -------------------------------------------------------------------------------- 1 | // Generic error exception 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ERROR_HEADER_INCLUDED 20 | #define ECS_ERROR_HEADER_INCLUDED 21 | 22 | namespace ECS 23 | { 24 | struct Error final {}; 25 | 26 | template void Batch (Container&, Process); 27 | } 28 | 29 | template 30 | void ECS::Batch (Container& container, const Process process) 31 | { 32 | auto failed = false; 33 | for (auto& element: container) try {process (element);} catch (const Error&) {failed = true;} 34 | if (failed) throw Error {}; 35 | } 36 | 37 | #endif // ECS_ERROR_HEADER_INCLUDED 38 | -------------------------------------------------------------------------------- /tools/dbgdwarfconverter.hpp: -------------------------------------------------------------------------------- 1 | // DWARF debugging information converter 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_DEBUGGING_DWARF_CONVERTER_HEADER_INCLUDED 20 | #define ECS_DEBUGGING_DWARF_CONVERTER_HEADER_INCLUDED 21 | 22 | #include "dbgconverter.hpp" 23 | 24 | namespace ECS::Debugging 25 | { 26 | class DWARFConverter; 27 | } 28 | 29 | class ECS::Debugging::DWARFConverter : public Converter 30 | { 31 | public: 32 | using Converter::Converter; 33 | 34 | private: 35 | class Context; 36 | 37 | void Process (const Information&, const Source&, Object::Binaries&) const override; 38 | }; 39 | 40 | #endif // ECS_DEBUGGING_DWARF_CONVERTER_HEADER_INCLUDED 41 | -------------------------------------------------------------------------------- /tools/mmixdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // MMIX disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "mmix.hpp" 20 | #include "mmixdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace MMIX; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 4, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? 4 : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/riscdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // RISC disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "risc.hpp" 20 | #include "riscdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace RISC; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 4, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? 4 : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/dochtmlformatter.hpp: -------------------------------------------------------------------------------- 1 | // HTML documentation formatter 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_DOCUMENTATION_HTML_FORMATTER_HEADER_INCLUDED 20 | #define ECS_DOCUMENTATION_HTML_FORMATTER_HEADER_INCLUDED 21 | 22 | #include 23 | #include 24 | 25 | namespace ECS::Documentation 26 | { 27 | class HTMLFormatter; 28 | 29 | struct Document; 30 | 31 | using Documents = std::list; 32 | } 33 | 34 | class ECS::Documentation::HTMLFormatter 35 | { 36 | public: 37 | void Print (const Documents&, std::ostream&) const; 38 | 39 | private: 40 | class Context; 41 | }; 42 | 43 | #endif // ECS_DOCUMENTATION_HTML_FORMATTER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /tools/or1kdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // OpenRISC 1000 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "or1k.hpp" 20 | #include "or1kdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace OR1K; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 4, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? 4 : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /libraries/cpp/array: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_ARRAY_HEADER_INCLUDED 25 | #define ECS_CPP_ARRAY_HEADER_INCLUDED 26 | 27 | #include "initializer_list" 28 | 29 | #define __cpp_lib_array_constexpr 201811L 30 | #define __cpp_lib_nonmember_container_access 201411L 31 | #define __cpp_lib_to_array 201907L 32 | 33 | #endif // ECS_CPP_ARRAY_HEADER_INCLUDED 34 | -------------------------------------------------------------------------------- /libraries/cpp/bit: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_CPP_BIT_HEADER_INCLUDED 25 | #define ECS_CPP_BIT_HEADER_INCLUDED 26 | 27 | #define __cpp_lib_bit_cast 201806L 28 | #define __cpp_lib_bitops 201907L 29 | #define __cpp_lib_byteswap 202110L 30 | #define __cpp_lib_endian 201907L 31 | #define __cpp_lib_int_pow2 202002L 32 | 33 | #endif // ECS_CPP_BIT_HEADER_INCLUDED 34 | -------------------------------------------------------------------------------- /libraries/cpp/setjmp.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_SETJMP_HEADER_INCLUDED 25 | #define ECS_C_SETJMP_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "csetjmp" 30 | 31 | using std::jmp_buf; 32 | using std::longjmp; 33 | using std::setjmp; 34 | 35 | #endif // ECS_C_SETJMP_HEADER_INCLUDED 36 | -------------------------------------------------------------------------------- /tools/doclatexformatter.hpp: -------------------------------------------------------------------------------- 1 | // LaTeX documentation formatter 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_DOCUMENTATION_LATEX_FORMATTER_HEADER_INCLUDED 20 | #define ECS_DOCUMENTATION_LATEX_FORMATTER_HEADER_INCLUDED 21 | 22 | #include 23 | #include 24 | 25 | namespace ECS::Documentation 26 | { 27 | class LaTeXFormatter; 28 | 29 | struct Document; 30 | 31 | using Documents = std::list; 32 | } 33 | 34 | class ECS::Documentation::LaTeXFormatter 35 | { 36 | public: 37 | void Print (const Documents&, std::ostream&) const; 38 | 39 | private: 40 | class Context; 41 | }; 42 | 43 | #endif // ECS_DOCUMENTATION_LATEX_FORMATTER_HEADER_INCLUDED 44 | -------------------------------------------------------------------------------- /tools/mibldisassembler.cpp: -------------------------------------------------------------------------------- 1 | // MicroBlaze disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "mibl.hpp" 20 | #include "mibldisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace MicroBlaze; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 4, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? 4 : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /libraries/cpp/stddef.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_STDDEF_HEADER_INCLUDED 25 | #define ECS_C_STDDEF_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "cstddef" 30 | 31 | using std::max_align_t; 32 | using std::nullptr_t; 33 | using std::size_t; 34 | 35 | #endif // ECS_C_STDDEF_HEADER_INCLUDED 36 | -------------------------------------------------------------------------------- /tools/avrdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // AVR disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "avr.hpp" 20 | #include "avrdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace AVR; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 2, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? GetSize (instruction) : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/avr32assembler.hpp: -------------------------------------------------------------------------------- 1 | // AVR32 assembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_AVR32_ASSEMBLER_HEADER_INCLUDED 20 | #define ECS_AVR32_ASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmassembler.hpp" 23 | 24 | namespace ECS::AVR32 25 | { 26 | class Assembler; 27 | } 28 | 29 | class ECS::AVR32::Assembler : public Assembly::Assembler 30 | { 31 | public: 32 | Assembler (Diagnostics&, Charset&); 33 | 34 | private: 35 | Size ParseInstruction (std::istream&, BitMode, State&) const override; 36 | Size EmitInstruction (std::istream&, BitMode, Endianness, Span, Object::Patch&, State&) const override; 37 | }; 38 | 39 | #endif // ECS_AVR32_ASSEMBLER_HEADER_INCLUDED 40 | -------------------------------------------------------------------------------- /tools/m68kdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // M68000 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "m68k.hpp" 20 | #include "m68kdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace M68K; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 2, 10} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? GetSize (instruction) : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/or1kassembler.hpp: -------------------------------------------------------------------------------- 1 | // OpenRISC 1000 assembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_OR1K_ASSEMBLER_HEADER_INCLUDED 20 | #define ECS_OR1K_ASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmassembler.hpp" 23 | 24 | namespace ECS::OR1K 25 | { 26 | class Assembler; 27 | } 28 | 29 | class ECS::OR1K::Assembler : public Assembly::Assembler 30 | { 31 | public: 32 | Assembler (Diagnostics&, Charset&); 33 | 34 | private: 35 | Size ParseInstruction (std::istream&, BitMode, State&) const override; 36 | Size EmitInstruction (std::istream&, BitMode, Endianness, Span, Object::Patch&, State&) const override; 37 | }; 38 | 39 | #endif // ECS_OR1K_ASSEMBLER_HEADER_INCLUDED 40 | -------------------------------------------------------------------------------- /tools/amd64disassembler.hpp: -------------------------------------------------------------------------------- 1 | // AMD64 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_AMD64_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_AMD64_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::AMD64 25 | { 26 | enum OperatingMode : unsigned; 27 | 28 | class Disassembler; 29 | } 30 | 31 | class ECS::AMD64::Disassembler : public Assembly::Disassembler 32 | { 33 | public: 34 | Disassembler (Charset&, OperatingMode); 35 | 36 | private: 37 | const OperatingMode mode; 38 | 39 | Size ListInstruction (Span, std::ostream&, State&) const override; 40 | }; 41 | 42 | #endif // ECS_AMD64_DISASSEMBLER_HEADER_INCLUDED 43 | -------------------------------------------------------------------------------- /tools/armgenerator.hpp: -------------------------------------------------------------------------------- 1 | // ARM machine code generator 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ARM_GENERATOR_HEADER_INCLUDED 20 | #define ECS_ARM_GENERATOR_HEADER_INCLUDED 21 | 22 | #include "asmgenerator.hpp" 23 | 24 | namespace ECS::ARM 25 | { 26 | class Generator; 27 | } 28 | 29 | class ECS::ARM::Generator : public Assembly::Generator 30 | { 31 | public: 32 | using FloatingPointExtension = bool; 33 | 34 | protected: 35 | class Context; 36 | 37 | Generator (Diagnostics&, StringPool&, Assembly::Assembler&, Target, Name, FloatingPointExtension); 38 | 39 | const FloatingPointExtension floatingPointExtension; 40 | }; 41 | 42 | #endif // ECS_ARM_GENERATOR_HEADER_INCLUDED 43 | -------------------------------------------------------------------------------- /tools/avr32disassembler.cpp: -------------------------------------------------------------------------------- 1 | // AVR32 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "avr32.hpp" 20 | #include "avr32disassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace AVR32; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 2, 4} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? GetSize (instruction) : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/xtensaassembler.hpp: -------------------------------------------------------------------------------- 1 | // Xtensa assembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_XTENSA_ASSEMBLER_HEADER_INCLUDED 20 | #define ECS_XTENSA_ASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmassembler.hpp" 23 | 24 | namespace ECS::Xtensa 25 | { 26 | class Assembler; 27 | } 28 | 29 | class ECS::Xtensa::Assembler : public Assembly::Assembler 30 | { 31 | public: 32 | Assembler (Diagnostics&, Charset&); 33 | 34 | private: 35 | Size ParseInstruction (std::istream&, BitMode, State&) const override; 36 | Size EmitInstruction (std::istream&, BitMode, Endianness, Span, Object::Patch&, State&) const override; 37 | }; 38 | 39 | #endif // ECS_XTENSA_ASSEMBLER_HEADER_INCLUDED 40 | -------------------------------------------------------------------------------- /libraries/cpp/ctime.cpp: -------------------------------------------------------------------------------- 1 | // Standard C++ header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #include "ctime" 25 | 26 | using namespace std; 27 | 28 | // standard clock function 29 | 30 | clock_t std::clock [[ecs::replaceable]] () noexcept 31 | { 32 | return clock_t (-1); 33 | } 34 | 35 | // standard time function 36 | 37 | time_t std::time [[ecs::replaceable]] (time_t*) noexcept 38 | { 39 | return time_t (-1); 40 | } 41 | -------------------------------------------------------------------------------- /tools/arma32disassembler.cpp: -------------------------------------------------------------------------------- 1 | // ARM A32 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "arma32.hpp" 20 | #include "arma32disassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace ARM; 25 | using namespace A32; 26 | 27 | Disassembler::Disassembler (Charset& c) : 28 | Assembly::Disassembler {c, 4, 4} 29 | { 30 | } 31 | 32 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 33 | { 34 | const Instruction instruction {bytes}; 35 | const Size size = IsValid (instruction) ? 4 : 0; 36 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 37 | return size; 38 | } 39 | -------------------------------------------------------------------------------- /tools/arma64disassembler.cpp: -------------------------------------------------------------------------------- 1 | // ARM A64 disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "arma64.hpp" 20 | #include "arma64disassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace ARM; 25 | using namespace A64; 26 | 27 | Disassembler::Disassembler (Charset& c) : 28 | Assembly::Disassembler {c, 4, 4} 29 | { 30 | } 31 | 32 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 33 | { 34 | const Instruction instruction {bytes}; 35 | const Size size = IsValid (instruction) ? 4 : 0; 36 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 37 | return size; 38 | } 39 | -------------------------------------------------------------------------------- /tools/cppemitter.hpp: -------------------------------------------------------------------------------- 1 | // C++ intermediate code emitter 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_CPP_EMITTER_HEADER_INCLUDED 20 | #define ECS_CPP_EMITTER_HEADER_INCLUDED 21 | 22 | #include "cdemitter.hpp" 23 | 24 | namespace ECS::CPP 25 | { 26 | class Emitter; 27 | class Platform; 28 | 29 | struct TranslationUnit; 30 | } 31 | 32 | class ECS::CPP::Emitter : public Code::Emitter 33 | { 34 | public: 35 | Emitter (Diagnostics&, StringPool&, Charset&, Code::Platform&, Platform&); 36 | 37 | void Emit (const TranslationUnit&, Code::Sections&) const; 38 | 39 | private: 40 | class Context; 41 | 42 | Platform& platform; 43 | }; 44 | 45 | #endif // ECS_CPP_EMITTER_HEADER_INCLUDED 46 | -------------------------------------------------------------------------------- /tools/wasmdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // WebAssembly disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "utilities.hpp" 20 | #include "wasm.hpp" 21 | #include "wasmdisassembler.hpp" 22 | 23 | using namespace ECS; 24 | using namespace WebAssembly; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 1, 6} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? GetSize (instruction) : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/xtensadisassembler.cpp: -------------------------------------------------------------------------------- 1 | // Xtensa disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "utilities.hpp" 20 | #include "xtensa.hpp" 21 | #include "xtensadisassembler.hpp" 22 | 23 | using namespace ECS; 24 | using namespace Xtensa; 25 | 26 | Disassembler::Disassembler (Charset& c) : 27 | Assembly::Disassembler {c, 1, 3} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction) ? GetSize (instruction) : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /tools/wasmassembler.hpp: -------------------------------------------------------------------------------- 1 | // WebAssembly assembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_WASM_ASSEMBLER_HEADER_INCLUDED 20 | #define ECS_WASM_ASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmassembler.hpp" 23 | 24 | namespace ECS::WebAssembly 25 | { 26 | class Assembler; 27 | } 28 | 29 | class ECS::WebAssembly::Assembler : public Assembly::Assembler 30 | { 31 | public: 32 | Assembler (Diagnostics&, Charset&); 33 | 34 | private: 35 | Size ParseInstruction (std::istream&, BitMode, State&) const override; 36 | Size EmitInstruction (std::istream&, BitMode, Endianness, Span, Object::Patch&, State&) const override; 37 | }; 38 | 39 | #endif // ECS_WASM_ASSEMBLER_HEADER_INCLUDED 40 | -------------------------------------------------------------------------------- /libraries/cpp/time.h: -------------------------------------------------------------------------------- 1 | // Standard C header 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // Under Section 7 of the GNU General Public License version 3, 17 | // the copyright holder grants you additional permissions to use 18 | // this file as described in the ECS Runtime Support Exception. 19 | 20 | // You should have received a copy of the GNU General Public License 21 | // and a copy of the ECS Runtime Support Exception along with 22 | // the ECS. If not, see . 23 | 24 | #ifndef ECS_C_TIME_HEADER_INCLUDED 25 | #define ECS_C_TIME_HEADER_INCLUDED 26 | 27 | [[deprecated ("this header is deprecated, use instead")]]; 28 | 29 | #include "ctime" 30 | 31 | using std::clock; 32 | using std::clock_t; 33 | using std::size_t; 34 | using std::time; 35 | using std::time_t; 36 | 37 | #endif // ECS_C_TIME_HEADER_INCLUDED 38 | -------------------------------------------------------------------------------- /tools/ppcdisassembler.hpp: -------------------------------------------------------------------------------- 1 | // PowerPC disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_POWERPC_DISASSEMBLER_HEADER_INCLUDED 20 | #define ECS_POWERPC_DISASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmdisassembler.hpp" 23 | 24 | namespace ECS::PowerPC 25 | { 26 | enum Architecture : unsigned; 27 | 28 | class Disassembler; 29 | } 30 | 31 | class ECS::PowerPC::Disassembler : public Assembly::Disassembler 32 | { 33 | public: 34 | Disassembler (Charset&, Architecture); 35 | 36 | private: 37 | const Architecture architecture; 38 | 39 | Size ListInstruction (Span, std::ostream&, State&) const override; 40 | }; 41 | 42 | #endif // ECS_POWERPC_DISASSEMBLER_HEADER_INCLUDED 43 | -------------------------------------------------------------------------------- /tools/asmprinter.hpp: -------------------------------------------------------------------------------- 1 | // Generic assembly language pretty printer 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_ASSEMBLY_PRINTER_HEADER_INCLUDED 20 | #define ECS_ASSEMBLY_PRINTER_HEADER_INCLUDED 21 | 22 | #include 23 | #include 24 | 25 | namespace ECS::Assembly 26 | { 27 | class Printer; 28 | 29 | struct Instruction; 30 | struct Program; 31 | 32 | using Instructions = std::vector; 33 | } 34 | 35 | class ECS::Assembly::Printer 36 | { 37 | public: 38 | void Print (const Program&, std::ostream&) const; 39 | void Print (const Instructions&, std::ostream&) const; 40 | 41 | private: 42 | class Context; 43 | }; 44 | 45 | #endif // ECS_ASSEMBLY_PRINTER_HEADER_INCLUDED 46 | -------------------------------------------------------------------------------- /tools/miblassembler.hpp: -------------------------------------------------------------------------------- 1 | // MicroBlaze assembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #ifndef ECS_MICROBLAZE_ASSEMBLER_HEADER_INCLUDED 20 | #define ECS_MICROBLAZE_ASSEMBLER_HEADER_INCLUDED 21 | 22 | #include "asmassembler.hpp" 23 | 24 | namespace ECS::MicroBlaze 25 | { 26 | class Assembler; 27 | } 28 | 29 | class ECS::MicroBlaze::Assembler : public Assembly::Assembler 30 | { 31 | public: 32 | Assembler (Diagnostics&, Charset&); 33 | 34 | private: 35 | Size ParseInstruction (std::istream&, BitMode, State&) const override; 36 | Size EmitInstruction (std::istream&, BitMode, Endianness, Span, Object::Patch&, State&) const override; 37 | }; 38 | 39 | #endif // ECS_MICROBLAZE_ASSEMBLER_HEADER_INCLUDED 40 | -------------------------------------------------------------------------------- /tools/ppcdisassembler.cpp: -------------------------------------------------------------------------------- 1 | // PowerPC disassembler 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "ppc.hpp" 20 | #include "ppcdisassembler.hpp" 21 | #include "utilities.hpp" 22 | 23 | using namespace ECS; 24 | using namespace PowerPC; 25 | 26 | Disassembler::Disassembler (Charset& c, const Architecture a) : 27 | Assembly::Disassembler {c, 4, 4}, architecture {a} 28 | { 29 | } 30 | 31 | Disassembler::Size Disassembler::ListInstruction (const Span bytes, std::ostream& stream, State&) const 32 | { 33 | const Instruction instruction {bytes}; 34 | const Size size = IsValid (instruction, architecture) ? 4 : 0; 35 | if (size) Write (stream, {bytes.begin (), size}) << instruction; 36 | return size; 37 | } 38 | -------------------------------------------------------------------------------- /utilities/osx.cpp: -------------------------------------------------------------------------------- 1 | // OS X system interface 2 | // Copyright (C) Florian Negele 3 | 4 | // This file is part of the Eigen Compiler Suite. 5 | 6 | // The ECS is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // The ECS is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with the ECS. If not, see . 18 | 19 | #include "system.hpp" 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | const char* sys::get_name () 27 | { 28 | struct utsname name; 29 | if (uname (&name)) return nullptr; 30 | if (!std::strcmp (name.machine, "i386")) return "osx32"; 31 | if (!std::strcmp (name.machine, "x86_64")) return "osx64"; 32 | return nullptr; 33 | } 34 | 35 | std::string sys::get_program_path () 36 | { 37 | char buffer[PROC_PIDPATHINFO_MAXSIZE]; 38 | const auto size = proc_pidpath (getpid (), buffer, sizeof buffer); 39 | return {buffer, size >= 0 ? std::size_t (size) : 0}; 40 | } 41 | --------------------------------------------------------------------------------