joytpl
Version:
joy - js template engine with short syntax and modern features
615 lines (614 loc) • 92.8 kB
JSON
{
"ASTy": {
"T": "Joy",
"L": {
"L": 1,
"C": 1,
"O": 0
},
"C": [
{
"T": "Condition",
"L": {
"L": 1,
"C": 1,
"O": 0
},
"C": [
{
"T": "ConditionWithExpression",
"L": {
"L": 2,
"C": 5,
"O": 9
},
"C": [
{
"T": "Binary",
"L": {
"L": 2,
"C": 5,
"O": 9
},
"A": {
"operator": "&&"
},
"C": [
{
"T": "Unary",
"L": {
"L": 2,
"C": 5,
"O": 9
},
"A": {
"operator": "!"
},
"C": [
{
"T": "ExpressionBlock",
"L": {
"L": 2,
"C": 6,
"O": 10
},
"C": [
{
"T": "Binary",
"L": {
"L": 2,
"C": 7,
"O": 11
},
"A": {
"operator": "+"
},
"C": [
{
"T": "Unary",
"L": {
"L": 2,
"C": 7,
"O": 11
},
"A": {
"operator": "-"
},
"C": [
{
"T": "Identifier",
"L": {
"L": 2,
"C": 8,
"O": 12
},
"C": [
{
"T": "Name",
"L": {
"L": 2,
"C": 8,
"O": 12
},
"A": {
"value": "k"
}
}
]
}
]
},
{
"T": "Unary",
"L": {
"L": 2,
"C": 12,
"O": 16
},
"A": {
"operator": "+"
},
"C": [
{
"T": "Identifier",
"L": {
"L": 2,
"C": 13,
"O": 17
},
"C": [
{
"T": "Name",
"L": {
"L": 2,
"C": 13,
"O": 17
},
"A": {
"value": "n"
}
}
]
}
]
}
]
}
]
}
]
},
{
"T": "Binary",
"L": {
"L": 2,
"C": 19,
"O": 23
},
"A": {
"operator": "||"
},
"C": [
{
"T": "ExpressionBlock",
"L": {
"L": 2,
"C": 19,
"O": 23
},
"C": [
{
"T": "Binary",
"L": {
"L": 3,
"C": 9,
"O": 34
},
"A": {
"operator": "||"
},
"C": [
{
"T": "Binary",
"L": {
"L": 3,
"C": 9,
"O": 34
},
"A": {
"operator": "<"
},
"C": [
{
"T": "Binary",
"L": {
"L": 3,
"C": 9,
"O": 34
},
"A": {
"operator": "*"
},
"C": [
{
"T": "Identifier",
"L": {
"L": 3,
"C": 9,
"O": 34
},
"C": [
{
"T": "Name",
"L": {
"L": 3,
"C": 9,
"O": 34
},
"A": {
"value": "z"
}
}
]
},
{
"T": "Identifier",
"L": {
"L": 3,
"C": 13,
"O": 38
},
"C": [
{
"T": "Name",
"L": {
"L": 3,
"C": 13,
"O": 38
},
"A": {
"value": "j"
}
}
]
}
]
},
{
"T": "Number",
"L": {
"L": 3,
"C": 17,
"O": 42
},
"A": {
"value": "100500"
}
}
]
},
{
"T": "Binary",
"L": {
"L": 4,
"C": 9,
"O": 61
},
"A": {
"operator": "||"
},
"C": [
{
"T": "Binary",
"L": {
"L": 4,
"C": 9,
"O": 61
},
"A": {
"operator": ">"
},
"C": [
{
"T": "Binary",
"L": {
"L": 4,
"C": 9,
"O": 61
},
"A": {
"operator": "/"
},
"C": [
{
"T": "Identifier",
"L": {
"L": 4,
"C": 9,
"O": 61
},
"C": [
{
"T": "Name",
"L": {
"L": 4,
"C": 9,
"O": 61
},
"A": {
"value": "q"
}
}
]
},
{
"T": "Identifier",
"L": {
"L": 4,
"C": 13,
"O": 65
},
"C": [
{
"T": "Name",
"L": {
"L": 4,
"C": 13,
"O": 65
},
"A": {
"value": "w"
}
}
]
}
]
},
{
"T": "Binary",
"L": {
"L": 4,
"C": 17,
"O": 69
},
"A": {
"operator": "+"
},
"C": [
{
"T": "Number",
"L": {
"L": 4,
"C": 17,
"O": 69
},
"A": {
"value": "1.0"
}
},
{
"T": "Identifier",
"L": {
"L": 4,
"C": 23,
"O": 75
},
"C": [
{
"T": "Name",
"L": {
"L": 4,
"C": 23,
"O": 75
},
"A": {
"value": "i"
}
}
]
}
]
}
]
},
{
"T": "Binary",
"L": {
"L": 5,
"C": 9,
"O": 89
},
"A": {
"operator": "==="
},
"C": [
{
"T": "Binary",
"L": {
"L": 5,
"C": 9,
"O": 89
},
"A": {
"operator": "%"
},
"C": [
{
"T": "Identifier",
"L": {
"L": 5,
"C": 9,
"O": 89
},
"C": [
{
"T": "Name",
"L": {
"L": 5,
"C": 9,
"O": 89
},
"A": {
"value": "m"
}
}
]
},
{
"T": "Identifier",
"L": {
"L": 5,
"C": 13,
"O": 93
},
"C": [
{
"T": "Name",
"L": {
"L": 5,
"C": 13,
"O": 93
},
"A": {
"value": "l"
}
}
]
}
]
},
{
"T": "Number",
"L": {
"L": 5,
"C": 19,
"O": 99
},
"A": {
"value": "0"
}
}
]
}
]
}
]
}
]
},
{
"T": "Binary",
"L": {
"L": 6,
"C": 10,
"O": 111
},
"A": {
"operator": "&&"
},
"C": [
{
"T": "ExpressionBlock",
"L": {
"L": 6,
"C": 10,
"O": 111
},
"C": [
{
"T": "Binary",
"L": {
"L": 7,
"C": 9,
"O": 122
},
"A": {
"operator": "&&"
},
"C": [
{
"T": "Binary",
"L": {
"L": 7,
"C": 9,
"O": 122
},
"A": {
"operator": ">="
},
"C": [
{
"T": "Identifier",
"L": {
"L": 7,
"C": 9,
"O": 122
},
"C": [
{
"T": "Name",
"L": {
"L": 7,
"C": 9,
"O": 122
},
"A": {
"value": "h"
}
}
]
},
{
"T": "Number",
"L": {
"L": 7,
"C": 14,
"O": 127
},
"A": {
"value": "15"
}
}
]
},
{
"T": "Binary",
"L": {
"L": 8,
"C": 9,
"O": 142
},
"A": {
"operator": "&&"
},
"C": [
{
"T": "Binary",
"L": {
"L": 8,
"C": 9,
"O": 142
},
"A": {
"operator": "<="
},
"C": [
{
"T": "Identifier",
"L": {
"L": 8,
"C": 9,
"O": 142
},
"C": [
{
"T": "Name",
"L": {
"L": 8,
"C": 9,
"O": 142
},
"A": {
"value": "f"
}
}
]
},
{
"T": "Number",
"L": {
"L": 8,
"C": 14,
"O": 147
},
"A": {
"value": "3"
}
}
]
},
{
"T": "Binary",
"L": {
"L": 9,
"C": 9,
"O": 161
},
"A": {
"operator": "&&"
},
"C": [
{
"T": "Binary",
"L": {
"L": 9,
"C": 9,
"O": 161
},
"A": {
"operator": "!="
},
"C": [
{
"T": "Identifier",
"L": {