mirror of
https://github.com/artegoser/ONLang
synced 2024-11-05 20:43:57 +03:00
60 lines
1.6 KiB
Text
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] }],
|
|
]
|