The documentation of the EF programming language and its design is in the doc directory.
- src/efc
-
Source code of efc, the EF compiler. The build generates ``src/efc/test/generated_spec.html'', a nicely formatted specification extracted from test source code.
- doc
-
Documentation, in particular ef.txt. The build can generate a nicely formated ef.html (build taget doxygen or all).
- doc/tutorial
-
Examples of EF code
- doxygen
-
Generated source code documention (build target doxygen)
- googletest
-
Testing framework
To build efc, the EF compiler, you need CMake, llvm, bison, and flex. For other targets you will need also further programs. The build will tell you what is missing.
Suppose you put the EF Git project in directory <EF_DIR>. Let <BUILD_DIR> denote the directory where you want the build products in, e.g. <EF_DIR>/build. One time, you do the follwing:
mkdir <BUILD_DIR> # create a directory somewhere to held the build output cd <BUILD_DIR> cmake <EF_DIR>
This produces the default build system for your system. To actually build, on a *nix system, you run
cd <BUILD_DIR> make
This will produce the executable <BUILD_DIR>/bin/efc. To execute the automated tests, run ``ctest -V'' in <BUILD_DIR>.
Notable build targets run by target `all':
- efc, efc_test, efc-spec
-
Target efc builds the compiler, efc_test the associated automated tests, efc-test-spec-html the nicely formated specification extracted from the test source code.
- ef-doc
-
Nicely formats the documentation in directory doc.
Further build targets:
- doxygen
-
Builds source code documentation in <EF_DIR>/doxygen, the entry point being <EF_DIR>/doxygen/html/index.html. Part of target `all'.
- clang-format
-
Formats all source files with clang-format.
- clang-modernize
-
Runs clang-tidy, a static code analysis tool.
Note that you can rather easily do dynamic code analysis with clang sanitizers such as undefined behavior sanitizer and address sanitizer the usual way on top of CMake as documented by these tools.