All Projects → katef → Libfsm

katef / Libfsm

Licence: bsd-2-clause
DFA regular expression library & friends

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Libfsm

Re Flex
The regex-centric, fast lexical analyzer generator for C++ with full Unicode support. Faster than Flex. Accepts Flex specifications. Generates reusable source code that is easy to understand. Introduces indent/dedent anchors, lazy quantifiers, functions for lex/syntax error reporting, and more. Seamlessly integrates with Bison and other parsers.
Stars: ✭ 274 (-46.48%)
Mutual labels:  compiler, lexer, regex
Orchestra
One language to be RegExp's Successor. Visually readable and rich, technically safe and extended, naturally scalable, advanced, and optimized
Stars: ✭ 103 (-79.88%)
Mutual labels:  compiler, regex, regexp
librxvm
non-backtracking NFA-based regular expression library, for C and Python
Stars: ✭ 57 (-88.87%)
Mutual labels:  regex, regexp, compilers
Exprtk
C++ Mathematical Expression Parsing And Evaluation Library
Stars: ✭ 301 (-41.21%)
Mutual labels:  compiler, lexer
Statecharts.github.io
There is no state but what we make. Feel free to pitch in.
Stars: ✭ 265 (-48.24%)
Mutual labels:  finite-state-machine, fsm
Rex
Your RegEx companion.
Stars: ✭ 283 (-44.73%)
Mutual labels:  regex, regexp
statemachine-go
🚦 Declarative Finite-State Machines in Go
Stars: ✭ 47 (-90.82%)
Mutual labels:  fsm, finite-state-machine
Regexp2
A full-featured regex engine in pure Go based on the .NET engine
Stars: ✭ 389 (-24.02%)
Mutual labels:  regex, regexp
Kgt
BNF wrangling and railroad diagrams
Stars: ✭ 312 (-39.06%)
Mutual labels:  compiler, compilers
Regulex
🚧 Regular Expression Excited!
Stars: ✭ 4,877 (+852.54%)
Mutual labels:  regex, regexp
Any Rule
🦕 常用正则大全, 支持web / vscode / idea / Alfred Workflow多平台
Stars: ✭ 5,708 (+1014.84%)
Mutual labels:  regex, regexp
subst
Search and des... argh... replace in many files at once. Use regexp and power of Python to replace what you want.
Stars: ✭ 20 (-96.09%)
Mutual labels:  regex, regexp
mention-hashtag
Extract mentions (@mention) or hashtags (#hashtag) from any text
Stars: ✭ 16 (-96.87%)
Mutual labels:  regex, regexp
String.prototype.matchAll
Spec-compliant polyfill for String.prototype.matchAll, in ES2020
Stars: ✭ 14 (-97.27%)
Mutual labels:  regex, regexp
Picomatch
Blazing fast and accurate glob matcher written JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.
Stars: ✭ 393 (-23.24%)
Mutual labels:  regex, regexp
Tiny Compiler
A tiny compiler for a language featuring LL(2) with Lexer, Parser, ASM-like codegen and VM. Complex enough to give you a flavour of how the "real" thing works whilst not being a mere toy example
Stars: ✭ 425 (-16.99%)
Mutual labels:  compiler, lexer
Jflex
The fast scanner generator for Java™ with full Unicode support
Stars: ✭ 380 (-25.78%)
Mutual labels:  lexer, regexp
Fsm As Promised
A finite state machine library using ES6 promises
Stars: ✭ 446 (-12.89%)
Mutual labels:  finite-state-machine, fsm
stringx
Drop-in replacements for base R string functions powered by stringi
Stars: ✭ 14 (-97.27%)
Mutual labels:  regex, regexp
retrie
Efficient Trie-based regex unions for blacklist/whitelist filtering and one-pass mapping-based string replacing
Stars: ✭ 35 (-93.16%)
Mutual labels:  regex, regexp

libfsm and friends: NFA, DFA, regular expressions and lexical analysis

; re -cb -pl dot '[Ll]ibf+(sm)*' '[Ll]ibre' | dot

libfsm.svg

Getting started:

Lexing is the process of categorising a stream of items by their spellings. The output from this process is a stream of tokens, each of a specific lexeme category, which are most commonly input to a parser responsible for asserting the order of these tokens is valid.

lx is an attempt to produce a simple, expressive, and unobtrusive lexer generator which is good at lexing, does just lexing, is language independent, and has no other features.

You get:

  • libfsm — library for manipulating FSM (NFA and DFA)
  • libre — library for compiling regular expressions to NFA
  • fsm(1) — command line interface for FSM
  • re(1) — command line interface for executing regular expressions
  • lx(1) — lexer generator

Clone with submodules (contains required .mk files):

; git clone --recursive https://github.com/katef/libfsm.git

To build and install:

; pmake -r install

You can override a few things:

; CC=clang PREFIX=$HOME pmake -r install

Building depends on:

  • Any BSD make. This includes OpenBSD, FreeBSD and NetBSD make(1) and sjg's portable bmake (also packaged as pmake).

  • A C compiler. Any should do, but GCC and clang are best supported.

  • ar, ld, and a bunch of other stuff you probably already have.

Fuzzing depends on the theft property-based testing library:

Ideas, comments or bugs: [email protected]

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