@onlabsorg/swan-js v0.13.0
SwanJS
SwanJS is an expression language that runs in any JavaScript environment.
swan = require('swan-js'); // load the library
evaluate = swan.parse( "3 * x" ); // compile an expression
context = swan.createContext({x:10}); // create an expression context
value = await evaluate(context); // evaluate expression in context: 30You can install SwanJS via npm:
npm install @onlabsorg/swan-jsSyntax
A Swan expression is simply a sequence of binary operations (operand operator operand operator operand ...), eventually grouped with parentheses (...), square braces ... or curly braces {...}.
The available binary operations are:
- Arithmetic operations:
x + y,x - y,x * y,x / y,x % y,x ^ y - Comparison operations:
x == y,x != y,x > y,x >= y,x < y,x <= y - Logic operations:
x & y,x | y - Conditional and alternative operations:
x ? y,x ; y, or combinedx ? y ; z - Pairing operation:
x , y - Application (function call):
x y - Function definition:
x -> y - Composition operations:
g << f,f >> g - Mapping operation:
x => f - Assignment operations:
name = x,name: x - Sub-contexting operation:
x.y
The types of grouping available are:
- Parentheses to alter evaluation precedence:
(expr) - Square braces to create lists:
[x1, x2, x3, ...] - Curly braces to create namespaces:
{n1:v1, n2=v2, n3:v3, ...}
The data types defined in swan are:
- Nothing, or empty tuple:
() - Bool:
TRUE,FALSE - Numb:
123.4 - Text:
"abc",'abc',`abc` - List:
[a, b, c, ...] - Namespace:
{n1:v1, n2=v2, n3=v3, ...} - Func:
names -> expression - Undefined:
undefined(operationName, operands) - Tuple:
x1, x2, x3, ...
Besides these operations, Swan defines also some essential builtins, consisting in functions constants.
Learn more
License
Related projects
- olojs is a template engine and content management system that uses swan as inline expression language
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago