├── 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 |
--------------------------------------------------------------------------------