type2/examples/arithmetics/arithmetic.tp2.json
2022-03-20 14:39:23 +01:00

102 lines
2.1 KiB
JSON

{
"version": "2",
"lexer_rules": [
{
"pattern": " |\\t|\\n",
"pass": false,
"name": null
},
{
"pattern": "[0-9]+",
"pass": true,
"name": "[const]"
},
{
"pattern": "\\+",
"pass": false,
"name": "[plus]"
},
{
"pattern": "-",
"pass": false,
"name": "[minus]"
},
{
"pattern": "\\*",
"pass": false,
"name": "[times]"
},
{
"pattern": "/",
"pass": false,
"name": "[divided]"
},
{
"pattern": "\\(",
"pass": false,
"name": "[open]"
},
{
"pattern": "\\)|",
"pass": false,
"name": "[close]"
}
],
"parser_rules": [
{
"label": "{constant}",
"premise": "<expression>",
"conclusion": [
{"type": "terminal", "parameters": {"id": "[const]"}}
]
},
{
"label": "{product}",
"premise": "<expression>",
"conclusion": [
{"type": "variable", "parameters": {"id": "<expression>"}},
{"type": "terminal", "parameters": {"id": "[times]"}},
{"type": "variable", "parameters": {"id": "<expression>"}}
]
},
{
"label": "{quotient}",
"premise": "<expression>",
"conclusion": [
{"type": "variable", "parameters": {"id": "<expression>"}},
{"type": "terminal", "parameters": {"id": "[divided]"}},
{"type": "variable", "parameters": {"id": "<expression>"}}
]
},
{
"label": "{sum}",
"premise": "<expression>",
"conclusion": [
{"type": "variable", "parameters": {"id": "<expression>"}},
{"type": "terminal", "parameters": {"id": "[plus]"}},
{"type": "variable", "parameters": {"id": "<expression>"}}
]
},
{
"label": "{difference}",
"premise": "<expression>",
"conclusion": [
{"type": "variable", "parameters": {"id": "<expression>"}},
{"type": "terminal", "parameters": {"id": "[minus]"}},
{"type": "variable", "parameters": {"id": "<expression>"}}
]
},
{
"label": "{priorised}",
"premise": "<expression>",
"conclusion": [
{"type": "terminal", "parameters": {"id": "[open]"}},
{"type": "variable", "parameters": {"id": "<expression>"}},
{"type": "terminal", "parameters": {"id": "[close]"}}
]
}
],
"parser_start": "<expression>"
}