-
Notifications
You must be signed in to change notification settings - Fork 14
Overview
Nowadays, we can find a lot of tools to be used under the source code. Thousands of those applications have focused on some specific characteristics, for example, we can easily find softwares for extracting documentation from source code, or metrics, or weakness. Unfortunately, many of these tools were made for a set of specific languages, it means that is hard to expand the feature for another languages.
Kuniri aims to be a generic parser for extract code information in many different languages, and converge it to a standardized output. Moreover, this parser was designed to be easy and intuitive to add new languages underneath of Kuniri (at least, it was our original desire). One of the main characteristics of our project, is the parser oriented to the paradigms, instead of focusing on a bunch of library that makes the code too specific to a language. Currently, kuniri has a state machine for handling "procedural", and "oriented object" paradigms. Besides, it is possible to add another state machine for handling another kind of state machines (for example, we want to create one parser for handling hardware description language).
Since the beginning of this project, we invested (and still investing) hours discussing about architecture, and flexibility. Our goal, was finding a way for making easier to add a snippet of code responsible for handling one language, avoiding attach it to the Kuniri's core. See the picture below:

The picture illustrates the main idea of Kuniri, we have different paradigms and languages which can be fitted in a single point. After combining everything, it's produced a standardized output.
We believe that many tools can be constructed using Kuniri as a base. For example, any tool for metric extracting could use our parser for achieving many different languages.