Repository for Compilation Principles Practice in Southeast University.
SEU-Lex + SEU-Yacc + ...
To build and run this project, you need some environment configurations.
- XMake, currently v2.7.8. To build this project. Recommend: XMake in VS Code.
- MinGW64 (Least 12.0), or MSVC (At least 19.3) installed with Visual Studio 2022. The C++ compiler is required to support fundamental C++23 features.
- Vcpkg. To manage C++ packages.
Some packages (e.g.,
tl-ranges
) are not included inxrepo
. Thus we usevcpkg
as the unified package provider.
To better format the code, you are recommended to install clang format
. Format style file .clang-format
is already provided.
We notice that MSVC has better intellisense in intensive template usage scenarios, but it has poor, confusing compiling information over G++.
According to incomplete compilation tests, the code can be built either with mingw(G++) or windows(MSCV). For compatibility, we avoid some features like __int128
in gcc. If you find compilation problems, please check the version of compiler first, as the project is developed with the latest toolchain.
There is also some compatibility problems with compilers. Older versions of compilers may not work correctly, even breaking down. Therefore, latest versions of compilers are preferred.
XMake may not find the include or link directory automatically. In this case, you should specify the directories explicitly.
The latest version of table compression may not produce correct results!