sirop v0.0.8
Sirop is a very simple to use framework to create any kind of parser in a few minutes.
Getting Started
Expression are made of words which contains figure.
Let's see how can I write a basic expression for integer.
<num:$number>
I wanna add a sign to my integer.
<sign:+|-> <num:$number>
But here I'm obligate to add a sign to my number, so let's turn 'sign' key to optional.
[sign:+|-] <num:$number>
So there is my expression to parse integer.
Now, I can create a parser:
import { Parser } from "sirop";
const intParser = new Parser();
intParser.root({
expression: "[sign:+|-] <num:$number>",
validate: resolved => {
console.log(resolved.sign)
console.log(resolved.num)
// by returning false the parser will stop his process.
return true;
}
})
Multiple Figure Word
Figures is a kind of sub word, so I can add optional figure to my 'num' key, to support float.
[sign:+|-] <num:<$number>[.][$number]>
When words have multiple figures, all figures need to have enclosure
Here 'num' key can have up to three tokens, we'll need a little bit logic (a maximum of 5 lines) to correctly understand the parser result.
There's an exemple of math parsing (can be optimized don't use it as wrote)
That print:
time: 0.43ms
10 ** 3 + 150 + 3700 * 4 -> 15950
From Eval -> 15950
time: 0.08ms
10 + 25 * 150 - 1 -> 3759
From Eval -> 3759
time value should change
Written with 💖 by Camille Bakkali