# [systemc-clang]: A SystemC Parser using the Clang Front-end
[systemc-clang](https://github.com/anikau31/systemc-clang) is a revamp of an earlier [SystemC](http://systemc.org) Parser called [SystemCXML](http://systemcxml.sourceforge.net/). The purpose of this project is to provide researchers and individuals with a parser for SystemC. This SystemC parser uses the [clang](http://clang.llvm.org) front-end.
It parses RTL constructs and some TLM 2.0 constructs.
The public release will only allow parsing and representation of structural information of SystemC models at the RTL. This implementation will provide a reflection data structure that a designer can use to extract this information.
Internally, we are developing methods to represent behavioural information of the SystemC models. In addition, we plan to support TLM 2.0 models as well. Stay tuned for more updates and releases.
As always, please feel free to provide issues, and feature requests.
Requirements
------------
*[llvm](http://llvm.org)
*[clang](http://clang.llvm.org)(version 3.4)
*[SystemC](http://systemc.org) version 2.3
* Please see [SystemC Installation notes](https://github.com/anikau31/systemc-clang/blob/master/doc/systemc-install.mkd)
Installation
------------
Please see the instruction [here](https://github.com/anikau31/systemc-clang/blob/master/INSTALL.mkd)
## Installation
* This version of systemc-clang compiles as a dynamic library. It requires LLVM and clang to be installed. Please follow the directions below
Linux
===========
* You can install LLVM and Clang via source or via binaries.
### LLVM/Clang from source
* Follow the instructions to install clang: [Get Started](http://clang.llvm.org/get_started.html). Notice that you should also install LLVM as it is needed for compilation of the stand-along program. A suggestion is to install LLVM/clang in a location that is accessible by the user.
Note that the clang-llvm version systemc-clang supports is version 3.4. So, when following the instructions posted at [Get Started](http://clang.llvm.org/get_started.html). please substitute the phrase "trunk" with "tags/RELEASE_34/final".
* systemc-clang follows the same licensing as clang. Please look at [LICENSE](https://git.uwaterloo.ca/caesr-pub/systemc-clang/master/master/LICENSE.md).