feelin
v3.2.0
Published
A FEEL parser and interpreter
Downloads
69,108
Readme
feelin
A DMN FEEL parser and interpreter written in JavaScript. :arrow_right: Try it out.
Usage
import {
unaryTest,
evaluate
} from 'feelin';
unaryTest('1', { '?': 1 }); // true
unaryTest('[1..end]', { '?': 1, end: 10 }); // true
evaluate("Mike's daughter.name", {
'Mike\'s daughter.name': 'Lisa'
}); // "Lisa"
evaluate('for a in [1, 2, 3] return a * 2'); // [ 2, 4, 6 ]
evaluate('every rate in rates() satisfies rate < 10', {
rates() {
return [ 10, 20 ];
}
}); // false
Features
- [x] Recognizes full FEEL grammar
- [x] Context sensitive (incl. names with spaces)
- [x] Recovers on errors
- [x] Temporal types and operations
- [x] Built-in FEEL functions
- [ ] Full DMN TCK compliance
Build and Run
# build the library and run all tests
npm run all
# spin up for local development
npm run dev
# execute FEEL tests in DMN TCK
npm run tck
Related
- lezer-feel - FEEL language definition for the Lezer parser system
- feel-playground - Interactive playground to learn the FEEL language
License
MIT