All Projects → feddischson → include_gardener

feddischson / include_gardener

Licence: other
This is a small C++ based commandline-tool which analyzes include statements in C/C++ code.

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to include gardener

PerformanceAnalyzer
Under the iOS platform, the analyzer is a tool which statistics CPU, FPS, Memory, Loading-Time and provides the output of statistical data. And contain SQL execution time monitor base on FMDatabase and UI refresh in main thread monitor
Stars: ✭ 42 (-36.36%)
Mutual labels:  analyzer
markdown-it-include
Markdown-it plugin which adds the ability to include markdown fragment files
Stars: ✭ 53 (-19.7%)
Mutual labels:  include
windicss-analysis
🔍 A visual analyzer for Windi CSS
Stars: ✭ 120 (+81.82%)
Mutual labels:  analyzer
hprof-slurp
JVM heap dump analyzer
Stars: ✭ 65 (-1.52%)
Mutual labels:  analyzer
machinescli
This tool provides commandline access for https://www.hackthebox.eu, https://tryhackme.com/ and https://www.vulnhub.com/ machines.
Stars: ✭ 34 (-48.48%)
Mutual labels:  commandline
flvAnalyser
FLV v1.0 analyser
Stars: ✭ 76 (+15.15%)
Mutual labels:  analyzer
pac4cli
Proxy-auto-discovery for command-line applications
Stars: ✭ 20 (-69.7%)
Mutual labels:  commandline
tcolors
Commandline color picker and palette builder
Stars: ✭ 44 (-33.33%)
Mutual labels:  commandline
commandline
Getopt styled command line parser.
Stars: ✭ 17 (-74.24%)
Mutual labels:  commandline
lindera
A morphological analysis library.
Stars: ✭ 226 (+242.42%)
Mutual labels:  analyzer
toastify
🍞A commandline tool that shows desktop notifications using notify-rust
Stars: ✭ 60 (-9.09%)
Mutual labels:  commandline
fasdr
PowerShell command line productivity booster
Stars: ✭ 31 (-53.03%)
Mutual labels:  commandline
command-line-quick-reference
quick reference on command line tools and techniques for the people with limited time
Stars: ✭ 331 (+401.52%)
Mutual labels:  commandline
TSqlRules
TSQL Static Code Analysis Rules for SQL Server
Stars: ✭ 29 (-56.06%)
Mutual labels:  codeanalysis
sonarlint4netbeans
SonarLint integration for Apache Netbeans
Stars: ✭ 23 (-65.15%)
Mutual labels:  analyzer
whatsanalyze
Analyze your WhatsApp Chat in Seconds. Reveal insights & get statistics, while all data stays on your device. No chat data is sent to a server it runs only locally in your browser.
Stars: ✭ 41 (-37.88%)
Mutual labels:  analyzer
dynamic-cli
A Modern, user-friendly command-line HTTP client for the API testing, and if you're stuck - Search and browse StackOverflow without leaving the CLI
Stars: ✭ 151 (+128.79%)
Mutual labels:  commandline
spring-startup-analysis
Simple module to analyse bean construction in Java Spring
Stars: ✭ 76 (+15.15%)
Mutual labels:  analyzer
churnalizer
Analyze your Ruby app for Churn vs Complexity
Stars: ✭ 17 (-74.24%)
Mutual labels:  analyzer
elive-tools
Set of handy and useful tools by Elive, for specially use in the Elive project
Stars: ✭ 13 (-80.3%)
Mutual labels:  commandline

Include Gardener

[TOC]

Include Gardener

Build Status

Introduction

This is a small C++ based commandline-tool which analyzes C/C++/Python/Ruby code and creates a graph or include tree. The result can then further analyzed by other tools.

The following output formats are supported at the moment:

This tool

  • is used via command-line
  • supports recursive file search
  • is able to process the files via multiple threads
  • written in C++
  • tested on Linux (GCC, clang)
  • analyzes C/C++ code
  • analyzes Python code
  • analyzes Ruby code

Build Description

Build dependecies

  • cmake

Runtime Dependencies:

  • boost

Test Dependencies:

  • Python 3.x
  • PyUnit
  • PyGraphviz
  • PyGraphml
  • XMLRunner

Note: pip requires GraphViz development files to install PyGraphViz and PyGraphML. To install these libraries using apt-get, run sudo apt-get libgraphviz-dev

mkdir build
cd build
cmake ..
make
make doc
make install

In case of having issues with linking boost like /usr/lib/libboost_log-mt.so: error adding symbols: file in wrong format: This might happend on a multi-lib system. Try to specify the boost location manually:

cmake ../ -DBOOST_ROOT=/usr/lib64/

Usage

# analyzes recursively all files in path/to/files,
# the result is written to stdout
./include_gardener  -P path/to/files

# multiple P options can be provided, for example
./include_gardener  -P path/to/files1 -P path/to/files2

# analyzes recursively all files in the curren directory,
# the include path is set to ./inc and the result is
# written to the file graph.dot:
./include_gardener  -P ./ -I ./inc -o graph.dot

# the result can then be further converted to a scalable vector graphics file.
dot -Tsvg graph.dot > graph.svg


# The option `-l` can be used to specify the language (default is C/C++).
# Use `-l py` to analyze python code or `-l ruby` to analyze ruby code.

Limitations

C/C++/Obj-C

This tool does not respect any #if #else #endif or other pre-processor statements than #include.

Versions

1.0.0

  • Drops configuration file
  • Re-organizes architecture to allow further languages in fugure
  • Improves C/C++/Obj-C include statement detection

0.2.0

  • Adds configuration file
  • Small stability and performance improvements

0.1.0

  • Initial Version

Contribution

If you find a bug, unexpected behaviour or if you have a interesting feature in your mind which fits to this tool, please add an issue / feature request.

Pull requests are always welcome.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].