Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xjtu-enre/ENRE-cpp
ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)
https://github.com/xjtu-enre/ENRE-cpp
Last synced: 2 months ago
JSON representation
ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)
- Host: GitHub
- URL: https://github.com/xjtu-enre/ENRE-cpp
- Owner: xjtu-enre
- License: lgpl-2.1
- Created: 2021-08-05T12:50:01.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-08-20T08:42:27.000Z (4 months ago)
- Last Synced: 2024-08-20T10:42:27.865Z (4 months ago)
- Language: Java
- Homepage:
- Size: 29.1 MB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- static-analysis - ENRE-cpp - cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development) (Programming Languages)
README
# ENRE-cpp
> ENRE-cpp is a tool extracting entities and relations for C++ based on [Eclipse/CDT](https://github.com/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]((https://docs.oracle.com/javase/7/docs/webnotes/install/)).
## Build & Installation
in case on the GNU/Linux and Mac platform:
```
// chmod a+x install.sh
./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:
```text
Usage: ENRE-CPP [-hv] [-d=]... [-p=]... directory
projectName
directory The directory to be analyzed
projectName A short alias name of the anayzed source code project
-d, --dir= other directory need to analysis.
-h, --help display help for command
-p, --program_environment=
the program environment.
-v, --version print version information and exit
```### Examples
Use ENRE to analyze a demo project "**electron**" written in *C++*:
```cmd
java -jar ENRE-CPP.jar demo-projects/electron electron -p electron/src
```To increase the memory heap, you can add -Xmx before -jar, like:
```cmd
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](enre-ts/docs/README.md)## References
- [cpp reference](https://en.cppreference.com/w/)
- [C++ docs | Microsoft Docs](https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-170)
- [IBM XL C/C++ for AIX documentation](https://www.ibm.com/docs/en/xl-c-and-cpp-aix)
- [LLVM](https://github.com/llvm/llvm-project)