C Parser

Open-source C projects categorized as Parser

Top 23 C Parser Projects

  • inih

    Simple .INI file parser in C, good for embedded systems

    Project mention: Simply Parse in C | news.ycombinator.com | 2023-07-19

    This looks interesting. I created and maintain a library for INI parsing that got surprisingly popular -- it's tiny, so is good for embedded systems. This API has a very similar feel to mine, including the callback for every key/value pair with a void* userdata. https://github.com/benhoyt/inih

  • parson

    Lightweight JSON library written in C.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • md4c

    C Markdown parser. Fast. SAX-like interface. Compliant to CommonMark specification.

    Project mention: obsidian alternative? zettelkasten | /r/suckless | 2023-05-05

    Also, any decent editor paired with a markdown renderer like md4c. Use the editor you already use for other things. It probably can be extended for markdown.

  • mini-c

    Dr Strangehack, or: how to write a self-hosting C compiler in 10 hours

  • lwesp

    Lightweight and versatile AT parser library for ESP8266 and ESP32 devices.

  • jsonlite

    A Robust, High Performance JSON Parser and Generator for R (by jeroen)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • tree-sitter-markdown

    Markdown grammar for tree-sitter

    Project mention: How to pass environment variables to treesitter grammar | /r/NixOS | 2023-07-27

    The markdown treesitter grammar accepts environment variables when building to tweak it's behavior. How can I pass these? Currently I am using

  • tiny-json

    The tiny-json is a versatile and easy to use json parser in C suitable for embedded systems. It is fast, robust and portable.

  • packcc

    A parser generator for C

    Project mention: A glimpse into the universe where Windows died with the 1980s | news.ycombinator.com | 2024-03-12

    There are languages with perfectly clean grammars which can't be parsed by yacc because they aren't LALR(1).

    I agree that a command processor should have a grammar that can be expressed in a well-known formalism, and its parser generated by a parser generator.

    I agree that both POSIX shell and CMD.EXE are flawed because that isn't true.

    What I'm disagreeing with, is that it is important that the grammar formalism be LALR(1) in particular, and that the parser generator be yacc in particular.

    Suppose I have a Packrat parser generator. [0] And my command processor has a nice clean PEG grammar. And I use the Packrat parser generator to generate the parser of my command processor. That grammar quite possibly isn't LALR(1), and hence yacc in particular won't be able to generate a parser for it. But what's the problem with that? If it is a problem at all, it is a very different problem than the problem that CMD.EXE and POSIX shell have

    [0] e.g. https://github.com/arithy/packcc

  • tree-sitter-bash

    Bash grammar for tree-sitter

    Project mention: Ask HN: What are some unpopular technologies you wish people knew more about? | news.ycombinator.com | 2023-12-02

    (1) Zulip Chat - https://zulip.com/ - seems to be reasonably popular, but more people should know about it

    I’ve been using it for over 5 years now [1], and it’s as good as ever. It’s way faster than any other chat app I’ve used. It has a good UI and conversation model. It has a simple and functional API that lets me curl threads and write blog posts based on them.

    (only problem is that I Ctrl-+ in my browser to make the font bigger – I think it’s too dense for most people)

    (2) re2c regex to state machine compiler - https://re2c.org

    A gem from the 90’s, which people have done a great job maintaining and improving (getting Go and Rust target support in the last few years). I started using it in 2016, and used for a new program a few months ago. I came to the conclusion that it should have been built into C, because C has shitty string processing – and Ken Thompson both invented C AND brought regular languages to computing !!

    In comparison, treesitter lexers are very low level, fiddly, and error prone. I recently saw dozens of ad hoc fixes to the tree-sitter-bash lexer, which is unsurprising if you look at the structure of the code (manually crawling through backslashes and braces in C).

    https://github.com/tree-sitter/tree-sitter-bash/blob/master/...

    These fixes are definitely appreciated, but I think it indicates a problem with the model itself.

    (based on https://lobste.rs/s/endspx/software_you_are_thankful_for#c_y...)

    [1] https://www.oilshell.org/blog/2018/04/26.html

  • zsv

    zsv+lib: world's fastest (simd) CSV parser, bare metal or wasm, with an extensible CLI for SQL querying, format conversion and more

    Project mention: Analyzing multi-gigabyte JSON files locally | news.ycombinator.com | 2023-03-18

    If it could be tabular in nature, maybe convert to sqlite3 so you can make use of indexing, or CSV to make use of high-performance tools like xsv or zsv (the latter of which I'm an author).

    https://github.com/BurntSushi/xsv

    https://github.com/liquidaty/zsv/blob/main/docs/csv_json_sql...

  • libconfini

    Yet another INI parser

    Project mention: Why the fuck are we templating YAML? (2019) | news.ycombinator.com | 2024-01-23

    Personally I prefer INI over nearly all configuration formats.

    https://github.com/madmurphy/libconfini/wiki/An-INI-critique...

  • gherkin

    A parser and compiler for the Gherkin language. (by cucumber)

    Project mention: Is BDD alive in C++ ? | /r/cpp | 2023-05-30

    I would not recommand the C++ version of Cucumber because as you mentioned it's deprecated for a while now. However, if you still want to use the Cucumber syntax, you can rely on the [C gherkin parser](https://github.com/cucumber/gherkin/tree/main/c)

  • sqlite-createtable-parser

    A parser for SQLite create table sql statements.

    Project mention: A C parser for CREATE and ALTER TABLE SQLite statements | /r/hypeurls | 2023-08-16
  • tree-sitter-php

    PHP grammar for tree-sitter

  • pl0c

    Self-hosting PL/0 to C compiler to teach basic compiler construction from a practical, hands-on perspective.

  • tree-sitter-html

    HTML grammar for Tree-sitter

    Project mention: Emacs and Java Development: Corfu + Cape + LSP-Mode + Treesit | /r/emacs | 2023-05-19

    (use-package treesit :ensure nil :custom ;; Some stuff taken from here: https://robbmann.io/posts/emacs-treesit-auto/ (treesit-extra-load-path '("/usr/lib64/")) (treesit-language-source-alist '((bash . ("https://github.com/tree-sitter/tree-sitter-bash")) (c . ("https://github.com/tree-sitter/tree-sitter-c")) (c++ . ("https://github.com/tree-sitter/tree-sitter-cpp")) (csharp . ("https://github.com/tree-sitter/tree-sitter-c-sharp")) (css . ("https://github.com/tree-sitter/tree-sitter-css")) (elixir ("https://github.com/elixir-lang/tree-sitter-elixir")) (html . ("https://github.com/tree-sitter/tree-sitter-html")) (java . ("https://github.com/tree-sitter/tree-sitter-java")) (javascript . ("https://github.com/tree-sitter/tree-sitter-javascript")) (json . ("https://github.com/tree-sitter/tree-sitter-json")) (lua . ("https://github.com/Azganoth/tree-sitter-lua")) (makefile . ("https://github.com/alemuller/tree-sitter-make")) (org . ("https://github.com/milisims/tree-sitter-org")) (python . ("https://github.com/tree-sitter/tree-sitter-python")) (tsx . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")) (typescript . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")) (ruby . ("https://github.com/tree-sitter/tree-sitter-ruby")) (rust . ("https://github.com/tree-sitter/tree-sitter-rust")) (sql . ("https://github.com/m-novikov/tree-sitter-sql")) (toml . ("https://github.com/tree-sitter/tree-sitter-toml")) (yaml . ("https://github.com/ikatyang/tree-sitter-yaml")))) (major-mode-remap-alist '((c-mode . c-ts-mode) (c++-mode . c++-ts-mode) (csharp-mode . csharp-ts-mode) (css-mode . css-ts-mode) (html-mode . html-ts-mode) (java-mode . java-ts-mode) (js-mode . js-ts-mode) (json-mode . json-ts-mode) (makefile-mode . makefile-ts-mode) ;; (org-mode . org-ts-mode) ;; not mature yet (python-mode . python-ts-mode) (typescript-mode . typescript-ts-mode) (ruby-mode . ruby-ts-mode) (rust-mode . rust-ts-mode) (toml-mode . toml-ts-mode) (yaml-mode . yaml-ts-mode))) (treesit-auto-fallback-alist '((toml-ts-mode . conf-toml-mode) (typescript-ts-mode . nil) (tsx-ts-mode . nil))) (treesit-font-lock-settings t) (treesit-simple-indent t) (treesit-defun-type-regexp t)) (use-package treesit-auto :demand t :config (setq treesit-auto-install t) (global-treesit-auto-mode))

  • tree-sitter-solidity

    Solidity grammar for tree sitter

    Project mention: Zed is now open source | news.ycombinator.com | 2024-01-24

    Uses tree-sitter, which you'll need to learn about. https://github.com/JoranHonig/tree-sitter-solidity

  • cmark

    💧 Elixir NIF for cmark (C), a parser library following the CommonMark spec, a compatible implementation of Markdown.

  • serd

    A lightweight C library for RDF syntax

  • FastFEC

    An extremely fast FEC filing parser written in C

  • stutter

    Implement a Lisp, in C, from scratch, no libs (by mkirchner)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-03-12.

C Parser related posts

Index

What are some of the best open-source Parser projects in C? This list will help you:

Project Stars
1 inih 2,276
2 parson 1,291
3 md4c 697
4 mini-c 469
5 lwesp 426
6 link-grammar 380
7 jsonlite 366
8 tree-sitter-markdown 337
9 tiny-json 327
10 packcc 303
11 tree-sitter-bash 185
12 zsv 168
13 libconfini 149
14 gherkin 138
15 sqlite-createtable-parser 132
16 tree-sitter-php 123
17 pl0c 120
18 tree-sitter-html 112
19 tree-sitter-solidity 110
20 cmark 94
21 serd 78
22 FastFEC 73
23 stutter 73
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com