pycparser
:snake: Complete C99 parser in pure Python (by eliben)
c99-to-c89
Tool to convert C99 code to MSVC-compatible C89 (by libav)
pycparser | c99-to-c89 | |
---|---|---|
8 | 1 | |
3,130 | 243 | |
- | 0.0% | |
5.2 | 10.0 | |
12 days ago | about 7 years ago | |
Python | C | |
GNU General Public License v3.0 or later | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pycparser
Posts with mentions or reviews of pycparser.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-09-13.
-
Easy-to-use open source C preprocessor library?
In python, we have pycparser https://github.com/eliben/pycparser to parse C files into a tree.
-
What package is used to analyze C code?
I found pycparser which can probably do what you need, but it might not be very easy to use.
- Complete C99 parser in pure Python
-
Cake: C23 Front End and Transpiler C23 – C99
You can also use pycparser[0]. It is fully compatible C99, but be careful it doesn't support gnu extensions (like attributes, #indent, asm() ...). You can however work around most of them by -D defining them to empty macro in the argument.
[0] https://github.com/eliben/pycparser
-
When do you truly know C?
I wrote that tiny C compiler in Python and chose pycparser as the starting point. If you run C source code through pycparser it yields an Abstract syntax tree (AST) which is an in-memory, fine-grained tree representation of the C source code (for example, compound expressions are represented as binary trees that obey operator precedence rules which is extremely helpful).
-
Script that detects functions written in C
The difficulty is that in c you can do all kinds of weird and wonderful things... Doing it just by a text analysis of three code is going to be difficult to say the least. You could look at something like this parser though I suspect you might get better results using some of the existing utilities out there
-
Check function length in C?
Just find a C parser/lexer/whatever that'll handle the parsing for you. You can probably use it to determine where each function starts, where it ends, what it's called, etc.
-
Anyone interested in working on a hardware (FPGA/ASIC) related project? Not a compilers person by training, looking for help.
In terms of functionality the PipelineC project is pretty mature. But the back end implementation is hacky involves far to much reliance on a pycparser setup I dont understand (other than basic AST traversal was all needed). And as I slowly look to add not-strictly-C language concepts I would love to be working with someone who knows whats going on with compilers, syntaxes, intermediates. Some kind of Rust or C++ front end would be cool - template types and constexpr like things are something I am really missing being limited to C at the moment. I'll teach you FPGA things in return :-p
c99-to-c89
Posts with mentions or reviews of c99-to-c89.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-09-13.
-
Cake: C23 Front End and Transpiler C23 – C99
You and this guy ought to get together:
https://github.com/libav/c99-to-c89
What are some alternatives?
When comparing pycparser and c99-to-c89 you can also consider the following projects:
PipelineC - A C-like hardware description language (HDL) adding high level synthesis(HLS)-like automatic pipelining as a language construct/compiler feature.
narcissus - INACTIVE - http://mzl.la/ghe-archive - The Narcissus meta-circular JavaScript interpreter
cake - Cake a C23 front end and transpiler written in C
Cello - Higher level programming in C