1
Files
fluent-java/fluent.syntax/src/test/resources/reference_fixtures/variant_keys.json
Voomra 499c699cd1 feat: fluent.syntax
Портирование кода из fluent-kotlin
https://github.com/projectfluent/fluent-kotlin
2025-07-21 15:23:11 +03:00

514 lines
12 KiB
JSON

{
"type": "Resource",
"body": [
{
"type": "Message",
"id": {
"type": "Identifier",
"name": "simple-identifier",
"span": {
"type": "Span",
"start": 0,
"end": 17
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "Placeable",
"expression": {
"type": "SelectExpression",
"selector": {
"type": "VariableReference",
"id": {
"type": "Identifier",
"name": "sel",
"span": {
"type": "Span",
"start": 27,
"end": 30
}
},
"span": {
"type": "Span",
"start": 26,
"end": 30
}
},
"variants": [
{
"type": "Variant",
"key": {
"type": "Identifier",
"name": "key",
"span": {
"type": "Span",
"start": 43,
"end": 46
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "TextElement",
"value": "value",
"span": {
"type": "Span",
"start": 48,
"end": 53
}
}
],
"span": {
"type": "Span",
"start": 48,
"end": 53
}
},
"default": true,
"span": {
"type": "Span",
"start": 41,
"end": 53
}
}
],
"span": {
"type": "Span",
"start": 26,
"end": 58
}
},
"span": {
"type": "Span",
"start": 24,
"end": 59
}
}
],
"span": {
"type": "Span",
"start": 20,
"end": 59
}
},
"attributes": [],
"comment": null,
"span": {
"type": "Span",
"start": 0,
"end": 59
}
},
{
"type": "Message",
"id": {
"type": "Identifier",
"name": "identifier-surrounded-by-whitespace",
"span": {
"type": "Span",
"start": 61,
"end": 96
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "Placeable",
"expression": {
"type": "SelectExpression",
"selector": {
"type": "VariableReference",
"id": {
"type": "Identifier",
"name": "sel",
"span": {
"type": "Span",
"start": 106,
"end": 109
}
},
"span": {
"type": "Span",
"start": 105,
"end": 109
}
},
"variants": [
{
"type": "Variant",
"key": {
"type": "Identifier",
"name": "key",
"span": {
"type": "Span",
"start": 127,
"end": 130
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "TextElement",
"value": "value",
"span": {
"type": "Span",
"start": 137,
"end": 142
}
}
],
"span": {
"type": "Span",
"start": 137,
"end": 142
}
},
"default": true,
"span": {
"type": "Span",
"start": 120,
"end": 142
}
}
],
"span": {
"type": "Span",
"start": 105,
"end": 147
}
},
"span": {
"type": "Span",
"start": 103,
"end": 148
}
}
],
"span": {
"type": "Span",
"start": 99,
"end": 148
}
},
"attributes": [],
"comment": null,
"span": {
"type": "Span",
"start": 61,
"end": 148
}
},
{
"type": "Message",
"id": {
"type": "Identifier",
"name": "int-number",
"span": {
"type": "Span",
"start": 150,
"end": 160
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "Placeable",
"expression": {
"type": "SelectExpression",
"selector": {
"type": "VariableReference",
"id": {
"type": "Identifier",
"name": "sel",
"span": {
"type": "Span",
"start": 170,
"end": 173
}
},
"span": {
"type": "Span",
"start": 169,
"end": 173
}
},
"variants": [
{
"type": "Variant",
"key": {
"value": "1",
"type": "NumberLiteral",
"span": {
"type": "Span",
"start": 186,
"end": 187
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "TextElement",
"value": "value",
"span": {
"type": "Span",
"start": 189,
"end": 194
}
}
],
"span": {
"type": "Span",
"start": 189,
"end": 194
}
},
"default": true,
"span": {
"type": "Span",
"start": 184,
"end": 194
}
}
],
"span": {
"type": "Span",
"start": 169,
"end": 199
}
},
"span": {
"type": "Span",
"start": 167,
"end": 200
}
}
],
"span": {
"type": "Span",
"start": 163,
"end": 200
}
},
"attributes": [],
"comment": null,
"span": {
"type": "Span",
"start": 150,
"end": 200
}
},
{
"type": "Message",
"id": {
"type": "Identifier",
"name": "float-number",
"span": {
"type": "Span",
"start": 202,
"end": 214
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "Placeable",
"expression": {
"type": "SelectExpression",
"selector": {
"type": "VariableReference",
"id": {
"type": "Identifier",
"name": "sel",
"span": {
"type": "Span",
"start": 224,
"end": 227
}
},
"span": {
"type": "Span",
"start": 223,
"end": 227
}
},
"variants": [
{
"type": "Variant",
"key": {
"value": "3.14",
"type": "NumberLiteral",
"span": {
"type": "Span",
"start": 240,
"end": 244
}
},
"value": {
"type": "Pattern",
"elements": [
{
"type": "TextElement",
"value": "value",
"span": {
"type": "Span",
"start": 246,
"end": 251
}
}
],
"span": {
"type": "Span",
"start": 246,
"end": 251
}
},
"default": true,
"span": {
"type": "Span",
"start": 238,
"end": 251
}
}
],
"span": {
"type": "Span",
"start": 223,
"end": 256
}
},
"span": {
"type": "Span",
"start": 221,
"end": 257
}
}
],
"span": {
"type": "Span",
"start": 217,
"end": 257
}
},
"attributes": [],
"comment": null,
"span": {
"type": "Span",
"start": 202,
"end": 257
}
},
{
"content": "ERROR",
"type": "Comment",
"span": {
"type": "Span",
"start": 259,
"end": 266
}
},
{
"type": "Junk",
"annotations": [
{
"type": "Annotation",
"code": "E0003",
"arguments": [
"]"
],
"message": "Expected token: \"]\"",
"span": {
"type": "Span",
"start": 315,
"end": 315
}
}
],
"content": "invalid-identifier =\n { $sel ->\n *[two words] value\n }\n\n",
"span": {
"type": "Span",
"start": 267,
"end": 335
}
},
{
"content": "ERROR",
"type": "Comment",
"span": {
"type": "Span",
"start": 335,
"end": 342
}
},
{
"type": "Junk",
"annotations": [
{
"type": "Annotation",
"code": "E0003",
"arguments": [
"]"
],
"message": "Expected token: \"]\"",
"span": {
"type": "Span",
"start": 382,
"end": 382
}
}
],
"content": "invalid-int =\n { $sel ->\n *[1 apple] value\n }\n\n",
"span": {
"type": "Span",
"start": 343,
"end": 402
}
},
{
"content": "ERROR",
"type": "Comment",
"span": {
"type": "Span",
"start": 402,
"end": 409
}
},
{
"type": "Junk",
"annotations": [
{
"type": "Annotation",
"code": "E0003",
"arguments": [
"]"
],
"message": "Expected token: \"]\"",
"span": {
"type": "Span",
"start": 452,
"end": 452
}
}
],
"content": "invalid-int =\n { $sel ->\n *[3.14 apples] value\n }\n",
"span": {
"type": "Span",
"start": 410,
"end": 472
}
}
],
"span": {
"type": "Span",
"start": 0,
"end": 472
}
}