Primitives
Krikata currently comes with 4 built-in primitives: number
, int
, string
and bool
.
The first two are parsed using parseFloat
and then checked by Number.isFinite
and Number.isInteger
respectively.
A string
matches one token generated by the Parser
. If Parser.fromArgv()
is used, this means a string
is one argument as parsed by the shell.
A bool
matches exactly true
or false
. It is trivial to create a bool with different names, for example T
and F
like so:
const mybool = new Type<boolean>("mybool", [
Constant("T", () => true),
Constant("F", () => false),
]);
Example:
> number 5.37
5.37
> number 6.06e5
606000
> int 6
6
> string hello
hello
> bool true
true
> mybool F
false
Example grammar:
l.calc:
| <t.value> EOI
t.value:
| "number" <p.number>
| "int" <p.int>
| "string" <p.string>
| "bool" <p.bool>
| "mybool" <t.mybool>
t.mybool:
| "T"
| "F"