GithubHelp home page GithubHelp logo

laeeth / cparser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from libfirm/cparser

0.0 2.0 0.0 9.84 MB

C99 parser and frontend for libfirm

Home Page: http://pp.ipd.kit.edu/firm

License: GNU General Public License v2.0

Shell 0.14% CMake 0.28% Makefile 0.57% Roff 1.14% C 96.33% C++ 1.40% Python 0.15%

cparser's Introduction

cparser - A C99 parser (with GNU extensions)

Introduction

cparser is a recursive descent C99 parser written in C99. It contains a preprocessor, lexer, parser, constructs an AST and does semantic analysis. It acts as a frontend to the libFirm intermediate representation library. This way optimization and code generation is performed. The compiler supports cross compilation to multiple target architectures with a command-line switch. It comes with driver logic for calling assemblers and linkers as well as parsing command-line options. This allows it to be a drop-in replacement for gcc or clang in many situations.

Building and Installation

Requirements:

  • A C99 compiler (gcc and icc are known to work).
  • libFirm-1.22

Building with make

Unpack libfirm in a directory called libfirm in the source directory alternatively you may setup an alternate location with a 'config.mak' file. Just type 'make' in the source directory. The results are put into a directory called "build". You can override the existing preprocessor, compiler and linker flags and built-in paths for include directories by creating a 'config.mak' file.

Building with cmake

cparser has an additional cmake build system. CMake is a complexer build system than the make based build and most cparser developers do not use it. However it can adapt the compiler and linker flags to build shared libraries for a wider range of systems, provides an installation target and is often more familiar for people preparing packages for distribution.

Notes for a cparser installation

While cparser often runs fine from the source/build directory, a proper installation should be configured with correct system paths. For this a config.mak file should be created and the following variables set apropriately for the system: PREFIX, SYSTEM_INCLUDE_DIR, LOCAL_INCLUDE_DIR, COMPILER_INCLUDE_DIR, MULTILIB_M32_TRIPLE, MULTILIB_M64_TRIPLE, variant=optimize. The variable may be defined empty; See config.default.mak and Makefile for details.

Further Information and Contact

Official website: http://libfirm.org/

Contact E-Mail: [email protected]

Mailing list: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm

Bugtracker: http://pp.ipd.kit.edu/~firm/bugs

Internet relay chat: irc://chat.freenode.net/#firm

cparser's People

Contributors

chmallon avatar matzeb avatar uniqp avatar grimmick avatar manuelmohr avatar fread avatar sgraf812 avatar lu-zero avatar qznc avatar ftomassetti avatar flowdalic avatar moritzkroll avatar shack avatar nilput avatar

Watchers

James Cloos avatar Laeeth Isharc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.