guitorri / uaiso

A multi-language parsing infrastructure with an unified AST

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Uaiso

Uaiso is a parsing infrastructure that provides a unifying AST (Abstract Syntax Tree) and semantic services across programming languages. Ideally it can be used to:

  • Produce code completion on IDEs/text editors
  • Perform static analysis on programs
  • Generate LLVM code (or any other)

Supported languages

Language Version Parser AST Semantics Active Demo
D 2.0 bison, GLR partial ok no D completion
Go 1.5+ bison, GLR complete ok yes Go completion
Haskell 2010 LL(k) WIP ? yes -
Python 2.x LL(1) complete basic yes Overall intro

Prerequisites

The source is written in standard C++. You should be able to build it anywhere, but I'm developing on Clang/OSX. Make sure to use --recursive to clone.

  • Cmake
  • Python
  • Flex/Bison
  • C++14 compiler

Obs: There's code relying on Unix-like paths, which I need to work on for Windows.

Plugins

Uaiso is a library. In order to use it within an IDE/text editor you need to write a plugin. There's an experimental one available for Qt Creator: https://github.com/ltcmelo/uaiso-plugins

About

A multi-language parsing infrastructure with an unified AST

License:GNU Lesser General Public License v2.1


Languages

Language:C++ 47.4%Language:Go 26.3%Language:Python 16.1%Language:Yacc 7.2%Language:D 1.1%Language:Lex 0.7%Language:C 0.5%Language:CMake 0.5%