Skip to content

sensorflo/EF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The EF Programming Language

The documentation of the EF programming language and its design is in the doc directory.

File Overview

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

Building

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>.

Build targes

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.

About

The EF Programming Language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published