cpp-peglib
flex
Our great sponsors
cpp-peglib | flex | |
---|---|---|
4 | 9 | |
827 | 3,428 | |
- | - | |
5.8 | 7.8 | |
6 days ago | 6 days ago | |
C++ | C | |
MIT License | GNU General Public License v3.0 or later |
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.
cpp-peglib
-
-🎄- 2022 Day 13 Solutions -🎄-
I used yhirose's PEG (parsing expression grammar) libraryfor parsing.
-
What are some cool modern libraries you enjoy using?
By the same author, https://github.com/yhirose/cpp-peglib is also very nice.
-
A Good Tool for Resuming Parsers?
Most of the research into this sort of incremental and differential parsing unsurprisingly looks to be in the Haskell community, but I was hoping that someone here might know of some C++-friendly tools that might support generating parsers that support interruption and resuming. cpp-peglib looked really promising, but its parsers don't look like they can be engaged from any but the initial state.
- yhirose/cpp-peglib - A single file C++ header-only PEG (Parsing Expression Grammars) library
flex
-
How to provide input file for Flex++?
I am using Flex++, which is Flex for C++ and I am having trouble setting the input file. Flex++ uses the FlexLexer class provided in FlexLexer.h to create the lexer object(https://github.com/westes/flex/blob/master/src/FlexLexer.h). In my main function I have
-
Do Regular Expressions only evaluate one line at a time?
Further applications of DFA and NFA: lex or flex, yacc or bison, and POE :-)
-
Cool C projects
How about writing a programming language using Flex and Bison? There are lots of good tutorials and examples out there.
-
Parser and Lexer bike-shedding
Some lexer generators (notably Flex) take input from a file handle by default. While you can always read a file into a string before passing it to the generated lexer, this is not seen as "the best" since you have to read in all the data into memory, which can be a lot.
-
A Good Tool for Resuming Parsers?
Ages ago, I loved writing domain-specific toy languages, and almost always used flex to generate lexers and GNU bison to generate the parser. I've begun a new toy project and I don't think those two will cut it this time, so I'm looking for other tools that integrate well with C++.
-
Please no
I don't understand :c don't lexers like Flex work off of regex rules? Isn't this the correct first step to parse it?
-
A work in progress C compiler from scratch
I wrote a C compiler using flex [1] and bison [2]. The glue between them is a bit hacky.
At some point ANTLR [3] looked promising, but these days I'd probably write a lexer and recursive descent parser by hand, then generate LLVM IR.
[1] https://github.com/westes/flex
-
Dealing with lex and yacc is DIFFICULT so little information is available about them!
github.com/westes/flex/releases
-
Qual’è il commento più assurdo che avete mai trovato nel sorgente di un software?
Un commento in flex, uno storico software, tanto per mostrare che anche i migliori fanno le cose alla buona.
What are some alternatives?
PEGTL - Parsing Expression Grammar Template Library
LKI - LKI's dotfiles.
ctpg - Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time.
imp - Imp is a statically typed and compiled scripting language with the goal of increasing programmer confidence.
scnlib - scanf for modern C++
ocean - Programming language that compiles into a x86 ELF executable.
filter_spirit - Advanced item filter generator for Path of Exile that uses it's own DSL and online item price APIs
Apollo-11 - Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
AoC-2022 - Advent of code 2022
owl - A parser generator for visibly pushdown languages.
scope_guard - A modern C++ scope guard that is easy to use but hard to misuse.
Cwerg - The best C-like language that can be implemented in 10kLOC.