All Projects → libfirm → Cparser

libfirm / Cparser

Licence: gpl-2.0
C99 parser and frontend for libfirm

Programming Languages

c
50402 projects - #5 most used programming language
c99
33 projects

Projects that are alternatives of or similar to Cparser

I8086.js
16bit Intel 8086 / 80186 + X87 emulator written in TypeScript with REPL assembly compiler and tiny C compiler
Stars: ✭ 54 (-74.16%)
Mutual labels:  compiler, preprocessor
Binaryen.js
A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support.
Stars: ✭ 201 (-3.83%)
Mutual labels:  compiler
Hybridizer Basic Samples
Examples of C# code compiled to GPU by hybridizer
Stars: ✭ 186 (-11%)
Mutual labels:  compiler
Tengo
A fast script language for Go
Stars: ✭ 2,528 (+1109.57%)
Mutual labels:  compiler
El Compilador
An SSA-based compiler for Emacs Lisp
Stars: ✭ 187 (-10.53%)
Mutual labels:  compiler
Hercule
♻️ Simple document transclusion, ideal for Markdown documents
Stars: ✭ 196 (-6.22%)
Mutual labels:  preprocessor
Mlkit
Standard ML Compiler and Toolkit
Stars: ✭ 183 (-12.44%)
Mutual labels:  compiler
Transcrypt
Python 3.7 to JavaScript compiler - Lean, fast, open! -
Stars: ✭ 2,502 (+1097.13%)
Mutual labels:  compiler
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (-4.31%)
Mutual labels:  compiler
He Transformer
nGraph-HE: Deep learning with Homomorphic Encryption (HE) through Intel nGraph
Stars: ✭ 195 (-6.7%)
Mutual labels:  compiler
Fast
Find in AST - Search and refactor code directly in Abstract Syntax Tree as you do with grep for strings
Stars: ✭ 194 (-7.18%)
Mutual labels:  compiler
Lhc
The LLVM LHC Haskell Optimization System
Stars: ✭ 188 (-10.05%)
Mutual labels:  compiler
Cub
The Cub Programming Language
Stars: ✭ 198 (-5.26%)
Mutual labels:  compiler
Faerie
Magical ELF and Mach-o object file writer backend
Stars: ✭ 187 (-10.53%)
Mutual labels:  compiler
Interim
Low-level Lisp with compile-time memory management
Stars: ✭ 204 (-2.39%)
Mutual labels:  compiler
Minijit
A basic x86-64 JIT compiler written from scratch in stock Python
Stars: ✭ 185 (-11.48%)
Mutual labels:  compiler
Ape
Ape Programming Language
Stars: ✭ 195 (-6.7%)
Mutual labels:  compiler
Bridge
♠️ C# to JavaScript compiler. Write modern mobile and web apps in C#. Run anywhere with Bridge.NET.
Stars: ✭ 2,216 (+960.29%)
Mutual labels:  compiler
Compiler
Pawn compiler for SA-MP with bug fixes and new features - runs on Windows, Linux, macOS
Stars: ✭ 209 (+0%)
Mutual labels:  compiler
8cc.vim
C Compiler written in Vim script
Stars: ✭ 205 (-1.91%)
Mutual labels:  compiler

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

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].