A compiler for the Prev programming language. prevc is written in C++17 using
LLVM as backend. Currently the implemented Prev standard is
slivnik17 described in this specification.
To compile and emit the binary executable:
prevc main.prev
./mainTo compile and emit the LLVM IR code (.ll extension):
prevc --out-llvm-ir main.prevFor some extra help:
prevc --helpA Docker image, with a pre-compiled prevc executable, is available on Docker Hub. You can download it with:
docker pull pintarj/prevcTo compile a local .prev file (for example demo/sudoku.prev), mounting a folder in a Docker container, run:
docker run --rm --volume $(pwd):/prevc pintarj/prevc /usr/local/bin/prevc demo/sudoku.prevNOTE: The produced executable will require, on execution, a version of GLIBC installed on the local machine compatible with the version with which it was compiled in the Docker container.
On Ubuntu 22.04 all dependencies can be installed with:
sudo apt install g++ cmake python3 llvm-13 libzip-dev libutfcpp-devThen to build the prevc executable perform these commands in the project's root folder:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j $(nproc --all)prevc is provided under the MIT license. See LICENSE.