{
"name": "xdy",
"rules": {
"function": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"parameters": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "parameter"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "parameter"
}
}
]
}
},
{
"type": "STRING",
"value": ":"
}
]
},
"parameter": {
"type": "SYMBOL",
"name": "identifier"
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group"
},
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "_dice"
},
{
"type": "SYMBOL",
"name": "_arithmetic"
}
]
},
"group": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"variable": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "identifier",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"range": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"_dice": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "standard_dice"
},
{
"type": "SYMBOL",
"name": "custom_dice"
},
{
"type": "SYMBOL",
"name": "drop_lowest"
},
{
"type": "SYMBOL",
"name": "drop_highest"
}
]
},
"standard_dice": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "count",
"content": {
"type": "SYMBOL",
"name": "_dice_count"
}
},
{
"type": "SYMBOL",
"name": "_d"
},
{
"type": "FIELD",
"name": "faces",
"content": {
"type": "SYMBOL",
"name": "_standard_faces"
}
}
]
},
"custom_dice": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "count",
"content": {
"type": "SYMBOL",
"name": "_dice_count"
}
},
{
"type": "SYMBOL",
"name": "_d"
},
{
"type": "FIELD",
"name": "faces",
"content": {
"type": "SYMBOL",
"name": "custom_faces"
}
}
]
},
"_dice_count": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "group"
}
]
},
"_standard_faces": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "group"
}
]
},
"custom_faces": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "face",
"content": {
"type": "SYMBOL",
"name": "_custom_face"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "face",
"content": {
"type": "SYMBOL",
"name": "_custom_face"
}
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"_custom_face": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "negative_constant"
}
]
},
"drop_lowest": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "dice",
"content": {
"type": "SYMBOL",
"name": "_dice"
}
},
{
"type": "STRING",
"value": "drop"
},
{
"type": "STRING",
"value": "lowest"
},
{
"type": "FIELD",
"name": "drop",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_drop_expression"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"drop_highest": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "dice",
"content": {
"type": "SYMBOL",
"name": "_dice"
}
},
{
"type": "STRING",
"value": "drop"
},
{
"type": "STRING",
"value": "highest"
},
{
"type": "FIELD",
"name": "drop",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_drop_expression"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"_drop_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "group"
}
]
},
"negative_constant": {
"type": "PATTERN",
"value": "\\-\\d+"
},
"_arithmetic": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "add"
},
{
"type": "SYMBOL",
"name": "sub"
},
{
"type": "SYMBOL",
"name": "mul"
},
{
"type": "SYMBOL",
"name": "div"
},
{
"type": "SYMBOL",
"name": "mod"
},
{
"type": "SYMBOL",
"name": "exp"
},
{
"type": "SYMBOL",
"name": "neg"
}
]
},
"add": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "+"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"sub": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "-"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"mul": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "PATTERN",
"value": "[*×]"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"div": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "PATTERN",
"value": "[/÷]"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"mod": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "%"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"exp": {
"type": "PREC_RIGHT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "op1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "^"
},
{
"type": "FIELD",
"name": "op2",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"neg": {
"type": "PREC",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"constant": {
"type": "PATTERN",
"value": "\\d+"
},
"_d": {
"type": "PATTERN",
"value": "[dD]"
},
"identifier": {
"type": "PATTERN",
"value": "[\\p{L}_][\\p{L}\\p{N}\\p{Z}._-]*",
"flags": "u"
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}