ranhaogong / ENRE-cpp

ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ENRE-cpp

ENRE-cpp is a tool extracting entities and relations for C++ based on Eclipse/CDT.

Features

  • 🆕 Designed for the latest C++ standard
  • 👨‍💻 Friendly and easy to use
  • 💪 Input file source code compilation error tolerance, strong robustness
  • ⚙️ The tool part supports C language, with strong scalability

Supported Language

Language Maximum Version
C++ 14

Getting Started

ENRE-cpp has been tested to be worked with Java 17.

Build & Installation

in case on the GNU/Linux and Mac platform:

./install.sh

in case on the Windows platfrom:

./install.bat

After installed the required libraries, you can build the jar file by using:

mvn clean package assembly:single

Usage

Append -h or --help without any other arguments to see list of options:

Usage: ENRE-CPP [-hv] [-d=<dirs>]... [-p=<program_environment>]... directory
                projectName
      directory      The directory to be analyzed
      projectName    A short alias name of the anayzed source code project
  -d, --dir=<dirs>   other directory need to analysis.
  -h, --help         display help for command
  -p, --program_environment=<program_environment>
                     the program environment.
  -v, --version      print version information and exit

Examples

Use ENRE to analyze a demo project "electron" written in C++:

java -jar ENRE-CPP.jar  demo-projects/electron electron -p electron/src 

To increase the memory heap, you can add -Xmx before -jar, like:

java -jar -Xmx64g -Xms8g ENRE-CPP.jar  demo-projects/electron electron

Documentation

Specifications on which kinds of entities and relations can be captured and any other details can be found in documents

References

About

ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)

License:GNU Lesser General Public License v2.1


Languages

Language:Java 95.5%Language:C++ 2.8%Language:Batchfile 0.8%Language:Shell 0.8%Language:C 0.1%