ONLang/examples/calc.json5
Artemy 27ee5334da doc: example of nested functions
Which only work inside another function
2022-08-18 17:00:47 +03:00

60 lines
1.6 KiB
Text

[
{
fn: {
name: "myCalc",
args: ["a", "o", "b"],
body: [
{
fn: {
name: "sum",
args: ["a", "b"],
body: [{ return: { calc: [{ var: "a" }, "+", { var: "b" }] } }],
},
},
{
fn: {
name: "sub",
args: ["a", "b"],
body: [{ return: { calc: [{ var: "a" }, "-", { var: "b" }] } }],
},
},
{
fn: {
name: "mul",
args: ["a", "b"],
body: [{ return: { calc: [{ var: "a" }, "*", { var: "b" }] } }],
},
},
{
if: {
condition: { comp: [{ var: "o" }, "==", "*"] },
body: [{ return: { mul: [{ var: "a" }, { var: "b" }] } }],
else: [
{
if: {
condition: { comp: [{ var: "o" }, "==", "-"] },
body: [{ return: { sub: [{ var: "a" }, { var: "b" }] } }],
else: [
{
if: {
condition: { comp: [{ var: "o" }, "==", "+"] },
body: [
{ return: { sum: [{ var: "a" }, { var: "b" }] } },
],
else: [{ return: "Wrong operator!" }],
},
},
],
},
},
],
},
},
],
},
},
[{ myCalc: [3, "*", 2] }],
[{ myCalc: [3, "/", 2] }],
[{ myCalc: [3, "+", 2] }],
[{ myCalc: [3, "-", 2] }],
]