This is a parser and source code navigation tool for the ActiveOberon language as specified in the 2004 language report.
The main purpose of this project is to provide tools to analyze and study the source code of the ETH Bluebottle Active Object System, and to gain more insights on my way towards Oberon+ concurrency.
EbnfStudio was used to develop the grammar in Ao.ebnf, and also to generate the included AoParser/AoSynTree/AoTokenType.h/.cpp.
Here is a screenshot of the code navigator:
NOTE that this project is work in progress.
Not yet available.
This project can be built using qmake and Qt5. Use the .pro files to run the build as described in the Qt documentation.
Alternatively the Code Navigator can be built using LeanQt and the BUSY build system (with no other dependencies than a C++98 compiler); follow these steps:
- Create a new directory; we call it the root directory here
- Download https://github.com/rochus-keller/ActiveOberon/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "LisaPascal".
- Download https://github.com/rochus-keller/LeanQt/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "LeanQt".
- Download https://github.com/rochus-keller/BUSY/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "build".
- Open a command line in the build directory and type
cc *.c -O2 -lm -o lua
orcl /O2 /MD /Fe:lua.exe *.c
depending on whether you are on a Unix or Windows machine; wait a few seconds until the Lua executable is built. - Now type
./lua build.lua ../ActiveOberon
(orlua build.lua ../ActiveOberon
on Windows); wait until the AoCodeNavigator executable is built; you find it in the output subdirectory.
If you need support or would like to post issues or feature requests please use the Github issue list at https://github.com/rochus-keller/ActiveOberon/issues or send an email to the author.