An expression parser (small DSL) written in C
(github.com)
from armchair_progamer@programming.dev to programming_languages@programming.dev on 24 Sep 12:42
https://programming.dev/post/19799350
from armchair_progamer@programming.dev to programming_languages@programming.dev on 24 Sep 12:42
https://programming.dev/post/19799350
Key Features
- Multiple types (number, bool, datetime, string and error)
- Memory managed by user (no allocs)
- Iterator based interface
- Supporting variables
- Stateless
- Expressions can be compiled (RPN stack)
- Fully compile-time checked syntax
- Documented grammar
- Standard C11 code
- No dependencies
Examples
# Numerical calculations sin((-1 + 2) * PI) # Dates datetrunc(now(), "day") # Strings "hi " + upper("bob") + trim(" ! ") # Conditionals ifelse(1 < 5 && length($alphabet) > 25, "case1", "case2") # Find the missing letter replace($alphabet, substr($alphabet, 25 - random(0, length($alphabet)), 1), "")
threaded - newest