@echecs/pgn 2.1.3 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Adrian de la Rosa
3
+ Copyright (c) 2024 Adrian de la Rosa
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -9,17 +9,13 @@
9
9
  npm install --save-dev @echecs/pgn
10
10
  ```
11
11
 
12
- ```bash
13
- yarn add @echecs/pgn
14
- ```
15
-
16
12
  ## Usage
17
13
 
18
14
  `parse(input: string): PGN[]`
19
15
 
20
16
  **PGN** format:
21
17
 
22
- ```json
18
+ ```
23
19
  {
24
20
  meta: Meta,
25
21
  moves: Moves,
@@ -29,7 +25,7 @@ yarn add @echecs/pgn
29
25
 
30
26
  **Meta** format:
31
27
 
32
- ```json
28
+ ```
33
29
  {
34
30
  // Based on the PGN specification at least the following Tags should be available
35
31
  Event: "the name of the tournament or match event"
@@ -46,16 +42,17 @@ yarn add @echecs/pgn
46
42
 
47
43
  **Moves** is an _array_ of:
48
44
 
49
- ```json
45
+ ```
50
46
  // move number, white move, black move
51
47
  [5, Move, Move]
52
48
  ```
53
49
 
54
- Notice that half move are available for variations of if the last move of the game was white.
50
+ Notice that half move are available for variations of if the last move of the
51
+ game was white.
55
52
 
56
53
  **Move** format:
57
54
 
58
- ```json
55
+ ```
59
56
  {
60
57
  annotations: ["!", "$126"], // (optional) all the annotations for the given move
61
58
  capture: false, // (optional) indicates if the move capture any piece
@@ -0,0 +1,382 @@
1
+ "use strict";
2
+ // Generated automatically by nearley, version 2.20.1
3
+ // http://github.com/Hardmath123/nearley
4
+ (function () {
5
+ function id(x) { return x[0]; }
6
+ var grammar = {
7
+ Lexer: undefined,
8
+ ParserRules: [
9
+ { "name": "unsigned_int$ebnf$1", "symbols": [/[0-9]/] },
10
+ { "name": "unsigned_int$ebnf$1", "symbols": ["unsigned_int$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
11
+ { "name": "unsigned_int", "symbols": ["unsigned_int$ebnf$1"], "postprocess": function (d) {
12
+ return parseInt(d[0].join(""));
13
+ }
14
+ },
15
+ { "name": "int$ebnf$1$subexpression$1", "symbols": [{ "literal": "-" }] },
16
+ { "name": "int$ebnf$1$subexpression$1", "symbols": [{ "literal": "+" }] },
17
+ { "name": "int$ebnf$1", "symbols": ["int$ebnf$1$subexpression$1"], "postprocess": id },
18
+ { "name": "int$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
19
+ { "name": "int$ebnf$2", "symbols": [/[0-9]/] },
20
+ { "name": "int$ebnf$2", "symbols": ["int$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
21
+ { "name": "int", "symbols": ["int$ebnf$1", "int$ebnf$2"], "postprocess": function (d) {
22
+ if (d[0]) {
23
+ return parseInt(d[0][0] + d[1].join(""));
24
+ }
25
+ else {
26
+ return parseInt(d[1].join(""));
27
+ }
28
+ }
29
+ },
30
+ { "name": "unsigned_decimal$ebnf$1", "symbols": [/[0-9]/] },
31
+ { "name": "unsigned_decimal$ebnf$1", "symbols": ["unsigned_decimal$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
32
+ { "name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": [/[0-9]/] },
33
+ { "name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": ["unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
34
+ { "name": "unsigned_decimal$ebnf$2$subexpression$1", "symbols": [{ "literal": "." }, "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1"] },
35
+ { "name": "unsigned_decimal$ebnf$2", "symbols": ["unsigned_decimal$ebnf$2$subexpression$1"], "postprocess": id },
36
+ { "name": "unsigned_decimal$ebnf$2", "symbols": [], "postprocess": function (d) { return null; } },
37
+ { "name": "unsigned_decimal", "symbols": ["unsigned_decimal$ebnf$1", "unsigned_decimal$ebnf$2"], "postprocess": function (d) {
38
+ return parseFloat(d[0].join("") +
39
+ (d[1] ? "." + d[1][1].join("") : ""));
40
+ }
41
+ },
42
+ { "name": "decimal$ebnf$1", "symbols": [{ "literal": "-" }], "postprocess": id },
43
+ { "name": "decimal$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
44
+ { "name": "decimal$ebnf$2", "symbols": [/[0-9]/] },
45
+ { "name": "decimal$ebnf$2", "symbols": ["decimal$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
46
+ { "name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/] },
47
+ { "name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": ["decimal$ebnf$3$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
48
+ { "name": "decimal$ebnf$3$subexpression$1", "symbols": [{ "literal": "." }, "decimal$ebnf$3$subexpression$1$ebnf$1"] },
49
+ { "name": "decimal$ebnf$3", "symbols": ["decimal$ebnf$3$subexpression$1"], "postprocess": id },
50
+ { "name": "decimal$ebnf$3", "symbols": [], "postprocess": function (d) { return null; } },
51
+ { "name": "decimal", "symbols": ["decimal$ebnf$1", "decimal$ebnf$2", "decimal$ebnf$3"], "postprocess": function (d) {
52
+ return parseFloat((d[0] || "") +
53
+ d[1].join("") +
54
+ (d[2] ? "." + d[2][1].join("") : ""));
55
+ }
56
+ },
57
+ { "name": "percentage", "symbols": ["decimal", { "literal": "%" }], "postprocess": function (d) {
58
+ return d[0] / 100;
59
+ }
60
+ },
61
+ { "name": "jsonfloat$ebnf$1", "symbols": [{ "literal": "-" }], "postprocess": id },
62
+ { "name": "jsonfloat$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
63
+ { "name": "jsonfloat$ebnf$2", "symbols": [/[0-9]/] },
64
+ { "name": "jsonfloat$ebnf$2", "symbols": ["jsonfloat$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
65
+ { "name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/] },
66
+ { "name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": ["jsonfloat$ebnf$3$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
67
+ { "name": "jsonfloat$ebnf$3$subexpression$1", "symbols": [{ "literal": "." }, "jsonfloat$ebnf$3$subexpression$1$ebnf$1"] },
68
+ { "name": "jsonfloat$ebnf$3", "symbols": ["jsonfloat$ebnf$3$subexpression$1"], "postprocess": id },
69
+ { "name": "jsonfloat$ebnf$3", "symbols": [], "postprocess": function (d) { return null; } },
70
+ { "name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [/[+-]/], "postprocess": id },
71
+ { "name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
72
+ { "name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": [/[0-9]/] },
73
+ { "name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": ["jsonfloat$ebnf$4$subexpression$1$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
74
+ { "name": "jsonfloat$ebnf$4$subexpression$1", "symbols": [/[eE]/, "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "jsonfloat$ebnf$4$subexpression$1$ebnf$2"] },
75
+ { "name": "jsonfloat$ebnf$4", "symbols": ["jsonfloat$ebnf$4$subexpression$1"], "postprocess": id },
76
+ { "name": "jsonfloat$ebnf$4", "symbols": [], "postprocess": function (d) { return null; } },
77
+ { "name": "jsonfloat", "symbols": ["jsonfloat$ebnf$1", "jsonfloat$ebnf$2", "jsonfloat$ebnf$3", "jsonfloat$ebnf$4"], "postprocess": function (d) {
78
+ return parseFloat((d[0] || "") +
79
+ d[1].join("") +
80
+ (d[2] ? "." + d[2][1].join("") : "") +
81
+ (d[3] ? "e" + (d[3][1] || "+") + d[3][2].join("") : ""));
82
+ }
83
+ },
84
+ { "name": "dqstring$ebnf$1", "symbols": [] },
85
+ { "name": "dqstring$ebnf$1", "symbols": ["dqstring$ebnf$1", "dstrchar"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
86
+ { "name": "dqstring", "symbols": [{ "literal": "\"" }, "dqstring$ebnf$1", { "literal": "\"" }], "postprocess": function (d) { return d[1].join(""); } },
87
+ { "name": "sqstring$ebnf$1", "symbols": [] },
88
+ { "name": "sqstring$ebnf$1", "symbols": ["sqstring$ebnf$1", "sstrchar"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
89
+ { "name": "sqstring", "symbols": [{ "literal": "'" }, "sqstring$ebnf$1", { "literal": "'" }], "postprocess": function (d) { return d[1].join(""); } },
90
+ { "name": "btstring$ebnf$1", "symbols": [] },
91
+ { "name": "btstring$ebnf$1", "symbols": ["btstring$ebnf$1", /[^`]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
92
+ { "name": "btstring", "symbols": [{ "literal": "`" }, "btstring$ebnf$1", { "literal": "`" }], "postprocess": function (d) { return d[1].join(""); } },
93
+ { "name": "dstrchar", "symbols": [/[^\\"\n]/], "postprocess": id },
94
+ { "name": "dstrchar", "symbols": [{ "literal": "\\" }, "strescape"], "postprocess": function (d) {
95
+ return JSON.parse("\"" + d.join("") + "\"");
96
+ }
97
+ },
98
+ { "name": "sstrchar", "symbols": [/[^\\'\n]/], "postprocess": id },
99
+ { "name": "sstrchar", "symbols": [{ "literal": "\\" }, "strescape"], "postprocess": function (d) { return JSON.parse("\"" + d.join("") + "\""); } },
100
+ { "name": "sstrchar$string$1", "symbols": [{ "literal": "\\" }, { "literal": "'" }], "postprocess": function joiner(d) { return d.join(''); } },
101
+ { "name": "sstrchar", "symbols": ["sstrchar$string$1"], "postprocess": function (d) { return "'"; } },
102
+ { "name": "strescape", "symbols": [/["\\/bfnrt]/], "postprocess": id },
103
+ { "name": "strescape", "symbols": [{ "literal": "u" }, /[a-fA-F0-9]/, /[a-fA-F0-9]/, /[a-fA-F0-9]/, /[a-fA-F0-9]/], "postprocess": function (d) {
104
+ return d.join("");
105
+ }
106
+ },
107
+ { "name": "_$ebnf$1", "symbols": [] },
108
+ { "name": "_$ebnf$1", "symbols": ["_$ebnf$1", "wschar"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
109
+ { "name": "_", "symbols": ["_$ebnf$1"], "postprocess": function (d) { return null; } },
110
+ { "name": "__$ebnf$1", "symbols": ["wschar"] },
111
+ { "name": "__$ebnf$1", "symbols": ["__$ebnf$1", "wschar"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
112
+ { "name": "__", "symbols": ["__$ebnf$1"], "postprocess": function (d) { return null; } },
113
+ { "name": "wschar", "symbols": [/[ \t\n\v\f]/], "postprocess": id },
114
+ { "name": "DATABASE$ebnf$1", "symbols": ["GAME"] },
115
+ { "name": "DATABASE$ebnf$1", "symbols": ["DATABASE$ebnf$1", "GAME"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
116
+ { "name": "DATABASE", "symbols": ["DATABASE$ebnf$1"], "postprocess": id },
117
+ { "name": "GAME", "symbols": ["TAGS", "MOVE_SECTION", "__", "result", "__"], "postprocess": (d) => ({ meta: d[0], moves: d[1], result: d[3] })
118
+ },
119
+ { "name": "TAGS$ebnf$1$subexpression$1", "symbols": ["TAG", "__"] },
120
+ { "name": "TAGS$ebnf$1", "symbols": ["TAGS$ebnf$1$subexpression$1"] },
121
+ { "name": "TAGS$ebnf$1$subexpression$2", "symbols": ["TAG", "__"] },
122
+ { "name": "TAGS$ebnf$1", "symbols": ["TAGS$ebnf$1", "TAGS$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
123
+ { "name": "TAGS", "symbols": ["TAGS$ebnf$1"], "postprocess": (d) => d[0].map(d0 => d0[0]).reduce((acc, item) => ({ ...acc, ...item }), {}) },
124
+ { "name": "TAG", "symbols": [{ "literal": "[" }, "NAME", "__", "VALUE", { "literal": "]" }], "postprocess": (d) => ({ [d[1]]: d[3] }) },
125
+ { "name": "NAME", "symbols": ["string"] },
126
+ { "name": "VALUE", "symbols": ["dqstring"], "postprocess": id },
127
+ { "name": "MOVE_SECTION$ebnf$1", "symbols": [] },
128
+ { "name": "MOVE_SECTION$ebnf$1$subexpression$1", "symbols": ["_", "MOVE"] },
129
+ { "name": "MOVE_SECTION$ebnf$1", "symbols": ["MOVE_SECTION$ebnf$1", "MOVE_SECTION$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
130
+ { "name": "MOVE_SECTION$ebnf$2$subexpression$1", "symbols": ["_", "HM_WHITE"] },
131
+ { "name": "MOVE_SECTION$ebnf$2", "symbols": ["MOVE_SECTION$ebnf$2$subexpression$1"], "postprocess": id },
132
+ { "name": "MOVE_SECTION$ebnf$2", "symbols": [], "postprocess": function (d) { return null; } },
133
+ { "name": "MOVE_SECTION", "symbols": ["MOVE", "MOVE_SECTION$ebnf$1", "MOVE_SECTION$ebnf$2"], "postprocess": (d) => {
134
+ const moves = [d[0]];
135
+ if (d[1].length > 0) {
136
+ const d1 = d[1];
137
+ moves.push(...d1.map(d => d[1]));
138
+ }
139
+ if (d[2]) {
140
+ const d2 = d[2];
141
+ moves.push(d2[1]);
142
+ }
143
+ return moves;
144
+ }
145
+ },
146
+ { "name": "MOVE_SECTION", "symbols": ["HM_WHITE"], "postprocess": d => [d[0]] },
147
+ { "name": "MOVES$ebnf$1", "symbols": [] },
148
+ { "name": "MOVES$ebnf$1$subexpression$1", "symbols": ["_", "MOVE"] },
149
+ { "name": "MOVES$ebnf$1", "symbols": ["MOVES$ebnf$1", "MOVES$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
150
+ { "name": "MOVES$ebnf$2$subexpression$1", "symbols": ["_", "HM_WHITE"] },
151
+ { "name": "MOVES$ebnf$2", "symbols": ["MOVES$ebnf$2$subexpression$1"], "postprocess": id },
152
+ { "name": "MOVES$ebnf$2", "symbols": [], "postprocess": function (d) { return null; } },
153
+ { "name": "MOVES", "symbols": ["MOVES$ebnf$1", "MOVES$ebnf$2"], "postprocess": (d) => {
154
+ const moves = [];
155
+ if (d[0]) {
156
+ d[0].map(d0 => d0[1]).map(d01 => moves.push(d01));
157
+ }
158
+ if (d[1]) {
159
+ moves.push(d[1][1]);
160
+ }
161
+ return moves;
162
+ }
163
+ },
164
+ { "name": "HM_WHITE$ebnf$1", "symbols": [] },
165
+ { "name": "HM_WHITE$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"] },
166
+ { "name": "HM_WHITE$ebnf$1", "symbols": ["HM_WHITE$ebnf$1", "HM_WHITE$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
167
+ { "name": "HM_WHITE", "symbols": ["NUMBER", "_", "SAN", "HM_WHITE$ebnf$1"], "postprocess": (d) => {
168
+ const move = [d[0], { ...d[2], ...(d[3].length > 0 && { variants: d[3].map(d3 => d3[1]) }), }];
169
+ if (move[1].castling) {
170
+ move[1].to = move[1].castling === 'K' ? 'g1' : 'c1';
171
+ move[1].castling = true;
172
+ }
173
+ return move;
174
+ }
175
+ },
176
+ { "name": "HM_BLACK$ebnf$1", "symbols": [] },
177
+ { "name": "HM_BLACK$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"] },
178
+ { "name": "HM_BLACK$ebnf$1", "symbols": ["HM_BLACK$ebnf$1", "HM_BLACK$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
179
+ { "name": "HM_BLACK", "symbols": ["_", "NUMBER", "continuation", "_", "SAN", "HM_BLACK$ebnf$1"], "postprocess": (d) => {
180
+ const move = [d[1], undefined, { ...d[4], ...(d[5].length > 0 && { variants: d[5].map(d5 => d5[1]) }) }];
181
+ if (move[2].castling) {
182
+ move[2].to = move[2].castling === 'K' ? 'g8' : 'c8';
183
+ move[2].castling = true;
184
+ }
185
+ return move;
186
+ }
187
+ },
188
+ { "name": "MOVE$ebnf$1", "symbols": [] },
189
+ { "name": "MOVE$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"] },
190
+ { "name": "MOVE$ebnf$1", "symbols": ["MOVE$ebnf$1", "MOVE$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
191
+ { "name": "MOVE", "symbols": ["NUMBER", "_", "SAN", "__", "SAN", "MOVE$ebnf$1"], "postprocess": (d) => {
192
+ const move = [d[0], d[2], d[4]];
193
+ if (move[1].castling) {
194
+ move[1].to = move[1].castling === 'K' ? 'g1' : 'c1';
195
+ move[1].castling = true;
196
+ }
197
+ if (move[2].castling) {
198
+ move[2].to = move[2].castling === 'K' ? 'g8' : 'c8';
199
+ move[2].castling = true;
200
+ }
201
+ if (d[5]) {
202
+ const variants = d[5].map(d5 => d5[1]);
203
+ const white = variants.filter(variant => variant[0][1]);
204
+ const black = variants.filter(variant => !variant[0][1]);
205
+ if (white.length > 0) {
206
+ move[1].variants = white;
207
+ }
208
+ if (black.length > 0) {
209
+ move[2].variants = black;
210
+ }
211
+ }
212
+ return move;
213
+ }
214
+ },
215
+ { "name": "MOVE", "symbols": ["HM_WHITE", "__", "HM_BLACK"], "postprocess": d => [d[0][0], d[0][1], d[2][2]]
216
+ },
217
+ { "name": "NUMBER$ebnf$1", "symbols": [{ "literal": "." }], "postprocess": id },
218
+ { "name": "NUMBER$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
219
+ { "name": "NUMBER", "symbols": ["unsigned_int", "NUMBER$ebnf$1"], "postprocess": (d) => d[0] },
220
+ { "name": "VARIANT", "symbols": [{ "literal": "(" }, "MOVES", "_", { "literal": ")" }], "postprocess": (d) => d[1]
221
+ },
222
+ { "name": "VARIANT", "symbols": [{ "literal": "(" }, "HM_BLACK", "MOVES", "_", { "literal": ")" }], "postprocess": (d) => [d[1], ...d[2]]
223
+ },
224
+ { "name": "SAN$ebnf$1", "symbols": ["piece"], "postprocess": id },
225
+ { "name": "SAN$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
226
+ { "name": "SAN$ebnf$2", "symbols": ["DISAMBIGUATION"], "postprocess": id },
227
+ { "name": "SAN$ebnf$2", "symbols": [], "postprocess": function (d) { return null; } },
228
+ { "name": "SAN$ebnf$3", "symbols": ["capture"], "postprocess": id },
229
+ { "name": "SAN$ebnf$3", "symbols": [], "postprocess": function (d) { return null; } },
230
+ { "name": "SAN$ebnf$4", "symbols": ["PROMOTION"], "postprocess": id },
231
+ { "name": "SAN$ebnf$4", "symbols": [], "postprocess": function (d) { return null; } },
232
+ { "name": "SAN$ebnf$5$subexpression$1", "symbols": ["_", "SUFFIX"] },
233
+ { "name": "SAN$ebnf$5", "symbols": ["SAN$ebnf$5$subexpression$1"], "postprocess": id },
234
+ { "name": "SAN$ebnf$5", "symbols": [], "postprocess": function (d) { return null; } },
235
+ { "name": "SAN$ebnf$6", "symbols": [] },
236
+ { "name": "SAN$ebnf$6$subexpression$1", "symbols": ["_", "COMMENT"] },
237
+ { "name": "SAN$ebnf$6", "symbols": ["SAN$ebnf$6", "SAN$ebnf$6$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
238
+ { "name": "SAN", "symbols": ["SAN$ebnf$1", "SAN$ebnf$2", "SAN$ebnf$3", "file", "rank", "SAN$ebnf$4", "SAN$ebnf$5", "SAN$ebnf$6"], "postprocess": (d) => {
239
+ const comments = d[7].map(d7 => d7[1]).filter(Boolean);
240
+ return ({
241
+ ...(d[6] && d[6][1]),
242
+ ...(comments.length > 0 && { comment: comments.reduce((acc, item) => `${acc} ${item}`, '') }),
243
+ ...(d[2] && { capture: true }),
244
+ ...(d[1] && { from: d[1][0] }),
245
+ piece: d[0] ? d[0][0] : 'P',
246
+ ...(d[5] && { promotion: d[5] }),
247
+ to: `${d[3]}${d[4]}`,
248
+ });
249
+ }
250
+ },
251
+ { "name": "SAN$ebnf$7", "symbols": [] },
252
+ { "name": "SAN$ebnf$7$subexpression$1", "symbols": ["_", "SUFFIX"] },
253
+ { "name": "SAN$ebnf$7", "symbols": ["SAN$ebnf$7", "SAN$ebnf$7$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
254
+ { "name": "SAN$ebnf$8", "symbols": [] },
255
+ { "name": "SAN$ebnf$8$subexpression$1", "symbols": ["_", "COMMENT"] },
256
+ { "name": "SAN$ebnf$8", "symbols": ["SAN$ebnf$8", "SAN$ebnf$8$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
257
+ { "name": "SAN", "symbols": ["castling", "SAN$ebnf$7", "SAN$ebnf$8"], "postprocess": (d) => {
258
+ const comments = d[2].map(d2 => d2[1]).filter(Boolean);
259
+ return ({
260
+ ...(d[1]),
261
+ ...(comments.length > 0 && { comment: comments.reduce((acc, item) => `${acc} ${item}`, '') }),
262
+ castling: d[0],
263
+ piece: 'K'
264
+ });
265
+ }
266
+ },
267
+ { "name": "DISAMBIGUATION", "symbols": ["file"], "postprocess": id },
268
+ { "name": "DISAMBIGUATION", "symbols": ["rank"], "postprocess": id },
269
+ { "name": "PROMOTION", "symbols": [{ "literal": "=" }, /[QBNR]/], "postprocess": (d) => d[1] },
270
+ { "name": "SUFFIX$subexpression$1", "symbols": ["check"] },
271
+ { "name": "SUFFIX$subexpression$1", "symbols": ["checkmate"] },
272
+ { "name": "SUFFIX$ebnf$1", "symbols": ["annotation"], "postprocess": id },
273
+ { "name": "SUFFIX$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
274
+ { "name": "SUFFIX$ebnf$2", "symbols": [] },
275
+ { "name": "SUFFIX$ebnf$2$subexpression$1", "symbols": ["_", "NAG"] },
276
+ { "name": "SUFFIX$ebnf$2", "symbols": ["SUFFIX$ebnf$2", "SUFFIX$ebnf$2$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
277
+ { "name": "SUFFIX", "symbols": ["SUFFIX$subexpression$1", "SUFFIX$ebnf$1", "SUFFIX$ebnf$2"], "postprocess": (d) => ({
278
+ ...(d[0] && { [d[0]]: true }),
279
+ ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
280
+ })
281
+ },
282
+ { "name": "SUFFIX$ebnf$3$subexpression$1", "symbols": ["check"] },
283
+ { "name": "SUFFIX$ebnf$3$subexpression$1", "symbols": ["checkmate"] },
284
+ { "name": "SUFFIX$ebnf$3", "symbols": ["SUFFIX$ebnf$3$subexpression$1"], "postprocess": id },
285
+ { "name": "SUFFIX$ebnf$3", "symbols": [], "postprocess": function (d) { return null; } },
286
+ { "name": "SUFFIX$ebnf$4", "symbols": [] },
287
+ { "name": "SUFFIX$ebnf$4$subexpression$1", "symbols": ["_", "NAG"] },
288
+ { "name": "SUFFIX$ebnf$4", "symbols": ["SUFFIX$ebnf$4", "SUFFIX$ebnf$4$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
289
+ { "name": "SUFFIX", "symbols": ["SUFFIX$ebnf$3", "annotation", "SUFFIX$ebnf$4"], "postprocess": (d) => ({
290
+ ...(d[0] && { [d[0]]: true }),
291
+ ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
292
+ })
293
+ },
294
+ { "name": "SUFFIX$ebnf$5$subexpression$1", "symbols": ["check"] },
295
+ { "name": "SUFFIX$ebnf$5$subexpression$1", "symbols": ["checkmate"] },
296
+ { "name": "SUFFIX$ebnf$5", "symbols": ["SUFFIX$ebnf$5$subexpression$1"], "postprocess": id },
297
+ { "name": "SUFFIX$ebnf$5", "symbols": [], "postprocess": function (d) { return null; } },
298
+ { "name": "SUFFIX$ebnf$6", "symbols": ["annotation"], "postprocess": id },
299
+ { "name": "SUFFIX$ebnf$6", "symbols": [], "postprocess": function (d) { return null; } },
300
+ { "name": "SUFFIX$ebnf$7$subexpression$1", "symbols": ["_", "NAG"] },
301
+ { "name": "SUFFIX$ebnf$7", "symbols": ["SUFFIX$ebnf$7$subexpression$1"] },
302
+ { "name": "SUFFIX$ebnf$7$subexpression$2", "symbols": ["_", "NAG"] },
303
+ { "name": "SUFFIX$ebnf$7", "symbols": ["SUFFIX$ebnf$7", "SUFFIX$ebnf$7$subexpression$2"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
304
+ { "name": "SUFFIX", "symbols": ["SUFFIX$ebnf$5", "SUFFIX$ebnf$6", "SUFFIX$ebnf$7"], "postprocess": (d) => ({
305
+ ...(d[0] && { [d[0]]: true }),
306
+ ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
307
+ })
308
+ },
309
+ { "name": "NAG$subexpression$1$string$1", "symbols": [{ "literal": "2" }, { "literal": "5" }], "postprocess": function joiner(d) { return d.join(''); } },
310
+ { "name": "NAG$subexpression$1", "symbols": ["NAG$subexpression$1$string$1", /[0-5]/] },
311
+ { "name": "NAG$subexpression$1", "symbols": [{ "literal": "2" }, /[0-4]/, /[0-9]/] },
312
+ { "name": "NAG$subexpression$1", "symbols": [{ "literal": "1" }, /[0-9]/, /[0-9]/] },
313
+ { "name": "NAG$subexpression$1", "symbols": [/[1-9]/, /[0-9]/] },
314
+ { "name": "NAG$subexpression$1", "symbols": [/[0-9]/] },
315
+ { "name": "NAG", "symbols": [{ "literal": "$" }, "NAG$subexpression$1"], "postprocess": (d) => d[1]
316
+ },
317
+ { "name": "COMMENT", "symbols": ["bstring"] },
318
+ { "name": "COMMENT$ebnf$1", "symbols": [] },
319
+ { "name": "COMMENT$ebnf$1", "symbols": ["COMMENT$ebnf$1", /[^\n]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
320
+ { "name": "COMMENT", "symbols": [{ "literal": ";" }, "COMMENT$ebnf$1"] },
321
+ { "name": "annotation$string$1", "symbols": [{ "literal": "!" }, { "literal": "!" }], "postprocess": function joiner(d) { return d.join(''); } },
322
+ { "name": "annotation", "symbols": ["annotation$string$1"], "postprocess": id },
323
+ { "name": "annotation", "symbols": [{ "literal": "!" }], "postprocess": id },
324
+ { "name": "annotation$string$2", "symbols": [{ "literal": "!" }, { "literal": "?" }], "postprocess": function joiner(d) { return d.join(''); } },
325
+ { "name": "annotation", "symbols": ["annotation$string$2"], "postprocess": id },
326
+ { "name": "annotation$string$3", "symbols": [{ "literal": "?" }, { "literal": "!" }], "postprocess": function joiner(d) { return d.join(''); } },
327
+ { "name": "annotation", "symbols": ["annotation$string$3"], "postprocess": id },
328
+ { "name": "annotation", "symbols": [{ "literal": "?" }], "postprocess": id },
329
+ { "name": "annotation$string$4", "symbols": [{ "literal": "?" }, { "literal": "?" }], "postprocess": function joiner(d) { return d.join(''); } },
330
+ { "name": "annotation", "symbols": ["annotation$string$4"], "postprocess": id },
331
+ { "name": "annotation$string$5", "symbols": [{ "literal": "+" }, { "literal": "-" }], "postprocess": function joiner(d) { return d.join(''); } },
332
+ { "name": "annotation", "symbols": ["annotation$string$5"], "postprocess": id },
333
+ { "name": "annotation$string$6", "symbols": [{ "literal": "-" }, { "literal": "+" }], "postprocess": function joiner(d) { return d.join(''); } },
334
+ { "name": "annotation", "symbols": ["annotation$string$6"], "postprocess": id },
335
+ { "name": "annotation", "symbols": [{ "literal": "=" }], "postprocess": id },
336
+ { "name": "annotation$string$7", "symbols": [{ "literal": "?" }, { "literal": "!" }], "postprocess": function joiner(d) { return d.join(''); } },
337
+ { "name": "annotation", "symbols": ["annotation$string$7"], "postprocess": id },
338
+ { "name": "annotation", "symbols": [{ "literal": "?" }], "postprocess": id },
339
+ { "name": "annotation$string$8", "symbols": [{ "literal": "?" }, { "literal": "?" }], "postprocess": function joiner(d) { return d.join(''); } },
340
+ { "name": "annotation", "symbols": ["annotation$string$8"], "postprocess": id },
341
+ { "name": "annotation", "symbols": [{ "literal": "±" }], "postprocess": id },
342
+ { "name": "annotation", "symbols": [{ "literal": "∓" }], "postprocess": id },
343
+ { "name": "annotation", "symbols": [{ "literal": "∞" }], "postprocess": id },
344
+ { "name": "annotation", "symbols": [{ "literal": "⨀" }], "postprocess": id },
345
+ { "name": "annotation", "symbols": [{ "literal": "⩱" }], "postprocess": id },
346
+ { "name": "annotation", "symbols": [{ "literal": "⩲" }], "postprocess": id },
347
+ { "name": "check", "symbols": [{ "literal": "+" }], "postprocess": () => 'check' },
348
+ { "name": "checkmate", "symbols": [{ "literal": "#" }], "postprocess": () => 'checkmate' },
349
+ { "name": "bstring$ebnf$1", "symbols": [] },
350
+ { "name": "bstring$ebnf$1", "symbols": ["bstring$ebnf$1", /[^}]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
351
+ { "name": "bstring", "symbols": [{ "literal": "{" }, "bstring$ebnf$1", { "literal": "}" }], "postprocess": (d) => d[1].join('') },
352
+ { "name": "capture", "symbols": [{ "literal": "x" }] },
353
+ { "name": "castling$string$1", "symbols": [{ "literal": "O" }, { "literal": "-" }, { "literal": "O" }], "postprocess": function joiner(d) { return d.join(''); } },
354
+ { "name": "castling", "symbols": ["castling$string$1"], "postprocess": () => 'K' },
355
+ { "name": "castling$string$2", "symbols": [{ "literal": "O" }, { "literal": "-" }, { "literal": "O" }, { "literal": "-" }, { "literal": "O" }], "postprocess": function joiner(d) { return d.join(''); } },
356
+ { "name": "castling", "symbols": ["castling$string$2"], "postprocess": () => 'Q' },
357
+ { "name": "continuation$string$1", "symbols": [{ "literal": "." }, { "literal": "." }, { "literal": "." }], "postprocess": function joiner(d) { return d.join(''); } },
358
+ { "name": "continuation", "symbols": ["continuation$string$1"] },
359
+ { "name": "file", "symbols": [/[a-h]/] },
360
+ { "name": "piece", "symbols": [/[KQBNR]/] },
361
+ { "name": "rank", "symbols": [/[1-8]/] },
362
+ { "name": "result$string$1", "symbols": [{ "literal": "1" }, { "literal": "-" }, { "literal": "0" }], "postprocess": function joiner(d) { return d.join(''); } },
363
+ { "name": "result", "symbols": ["result$string$1"], "postprocess": () => 1 },
364
+ { "name": "result$string$2", "symbols": [{ "literal": "0" }, { "literal": "-" }, { "literal": "1" }], "postprocess": function joiner(d) { return d.join(''); } },
365
+ { "name": "result", "symbols": ["result$string$2"], "postprocess": () => 0 },
366
+ { "name": "result$string$3", "symbols": [{ "literal": "1" }, { "literal": "/" }, { "literal": "2" }, { "literal": "-" }, { "literal": "1" }, { "literal": "/" }, { "literal": "2" }], "postprocess": function joiner(d) { return d.join(''); } },
367
+ { "name": "result", "symbols": ["result$string$3"], "postprocess": () => 0.5 },
368
+ { "name": "result", "symbols": [{ "literal": "*" }], "postprocess": () => '?' },
369
+ { "name": "string$ebnf$1", "symbols": [/[^\s]/] },
370
+ { "name": "string$ebnf$1", "symbols": ["string$ebnf$1", /[^\s]/], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
371
+ { "name": "string", "symbols": ["string$ebnf$1"], "postprocess": (d) => d[0].join('') }
372
+ ],
373
+ ParserStart: "DATABASE"
374
+ };
375
+ if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
376
+ module.exports = grammar;
377
+ }
378
+ else {
379
+ window.grammar = grammar;
380
+ }
381
+ })();
382
+ //# sourceMappingURL=grammar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar.cjs","sourceRoot":"","sources":["../src/grammar.cjs"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export const Lexer: undefined;
2
- export const ParserRules: ({
1
+ export let Lexer: undefined;
2
+ export let ParserRules: ({
3
3
  name: string;
4
4
  symbols: (string | RegExp)[];
5
5
  postprocess: (d: any) => any;
@@ -32,4 +32,4 @@ export const ParserRules: ({
32
32
  })[];
33
33
  postprocess?: undefined;
34
34
  })[];
35
- export const ParserStart: string;
35
+ export let ParserStart: string;
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ type Square = `${File}${Rank}`;
6
6
  type HalfMove = [number, undefined, Move];
7
7
  type VariantMove = Move | HalfMove;
8
8
  type VariantMoves = VariantMove[];
9
- type Move = {
9
+ interface Move {
10
10
  annotations?: string[];
11
11
  capture?: boolean;
12
12
  castling?: boolean;
@@ -18,16 +18,16 @@ type Move = {
18
18
  promotion?: Piece;
19
19
  to: Square;
20
20
  variants?: VariantMoves[];
21
- };
22
- type Meta = {
21
+ }
22
+ interface Meta {
23
23
  Result: Result;
24
24
  [key: string]: string;
25
- };
25
+ }
26
26
  type Moves = [number, Move] | [number, Move, Move];
27
- type PGN = {
27
+ interface PGN {
28
28
  meta: Meta;
29
29
  moves: Moves;
30
30
  result: Result;
31
- };
31
+ }
32
32
  export default function parse(input: string): PGN[];
33
33
  export {};
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
- import { Grammar, Parser } from 'nearley';
2
- import grammar from './grammar';
1
+ import nearley from 'nearley';
2
+ import grammar from './grammar.cjs';
3
+ // It's a CJS module and cannot compile with that
4
+ // eslint-disable-next-line import-x/no-named-as-default-member
5
+ const { Grammar, Parser } = nearley;
3
6
  function tokenize(input) {
4
7
  const parser = new Parser(Grammar.fromCompiled(grammar));
5
8
  parser.feed(input);
@@ -12,3 +15,4 @@ export default function parse(input) {
12
15
  const games = input.replace(/[\r\uFEFF]/g, '');
13
16
  return tokenize(games);
14
17
  }
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,OAAO,MAAM,eAAe,CAAC;AAwCpC,iDAAiD;AACjD,+DAA+D;AAC/D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAEpC,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,OAAO,CAAC,MAAM,UAAU,CAC3E,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAU,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -5,19 +5,21 @@
5
5
  },
6
6
  "description": "FIDE PGN Parser",
7
7
  "devDependencies": {
8
- "@types/jest": "^29.2.5",
9
- "@types/nearley": "^2.11.2",
10
- "@typescript-eslint/eslint-plugin": "^5.48.0",
11
- "@typescript-eslint/parser": "^5.48.0",
12
- "eslint": "^8.31.0",
13
- "eslint-config-prettier": "^8.6.0",
14
- "eslint-config-standard": "^17.0.0",
15
- "husky": "^8.0.3",
16
- "jest": "^29.3.1",
17
- "lint-staged": "^13.1.0",
18
- "prettier": "^2.8.2",
19
- "ts-jest": "^29.0.3",
20
- "typescript": "^4.9.4"
8
+ "@eslint/js": "^9.10.0",
9
+ "@types/nearley": "^2.11.5",
10
+ "@typescript-eslint/parser": "^8.5.0",
11
+ "@vitest/coverage-v8": "^2.0.5",
12
+ "eslint": "^9.10.0",
13
+ "eslint-config-prettier": "^9.1.0",
14
+ "eslint-import-resolver-typescript": "^3.6.3",
15
+ "eslint-plugin-import-x": "^4.2.1",
16
+ "husky": "^9.1.6",
17
+ "install": "^0.13.0",
18
+ "lint-staged": "^15.2.10",
19
+ "prettier": "^3.3.3",
20
+ "typescript": "^5.6.2",
21
+ "typescript-eslint": "^8.5.0",
22
+ "vitest": "^2.0.5"
21
23
  },
22
24
  "files": [
23
25
  "/dist/",
@@ -34,19 +36,24 @@
34
36
  "main": "dist/index.js",
35
37
  "name": "@echecs/pgn",
36
38
  "repository": "mormubis/pgn",
39
+ "type": "module",
40
+ "types": "dist/index.d.ts",
41
+ "version": "3.0.2",
37
42
  "scripts": {
38
- "build": "npm run grammar:compile && npm run compile && cp src/grammar.js dist/grammar.js",
39
- "compile": "tsc",
40
- "format": "prettier --ignore-path .gitignore \"src/**/*.+(js|json|md|yml)\" --write",
41
- "grammar:compile": "nearleyc src/grammar.ne -o src/grammar.js",
43
+ "build": "pnpm run build:grammar && pnpm run build:entry",
44
+ "build:grammar": "pnpm run grammar:compile",
45
+ "build:entry": "tsc --project tsconfig.build.json",
46
+ "format": "pnpm run format:ci --write",
47
+ "format:ci": "prettier -l \"**/*.+(css|js|json|jsx|md|mjs|mts|ts|tsx|yml|yaml)\"",
48
+ "grammar:compile": "nearleyc src/grammar.ne -o src/grammar.cjs",
42
49
  "grammar:diagram": "nearley-railroad src/grammar.ne -o diagram.html",
43
50
  "grammar:test": "nearley-test -s DATABASE src/grammar.js < ./test.pgn",
44
- "lint": "eslint \"src/**/*.ts\" --fix",
45
- "prepare": "npm run build",
46
- "test": "jest",
47
- "test:coverage": "npm run test -- --coverage",
48
- "test:watch": "npm run test -- --watch"
49
- },
50
- "types": "dist/index.d.ts",
51
- "version": "2.1.3"
52
- }
51
+ "lint": "pnpm run lint:style && pnpm run lint:types",
52
+ "lint:ci": "pnpm run lint:style --max-warnings 0 && pnpm run lint:types",
53
+ "lint:style": "eslint \"src/**/*.{ts,tsx}\" --fix",
54
+ "lint:types": "tsc --noEmit --project tsconfig.build.json",
55
+ "test": "vitest run",
56
+ "test:coverage": "pnpm run test --coverage",
57
+ "test:watch": "pnpm run test --watch"
58
+ }
59
+ }
package/dist/grammar.js DELETED
@@ -1,428 +0,0 @@
1
- // Generated automatically by nearley, version 2.20.1
2
- // http://github.com/Hardmath123/nearley
3
- (function () {
4
- function id(x) { return x[0]; }
5
- var grammar = {
6
- Lexer: undefined,
7
- ParserRules: [
8
- {"name": "unsigned_int$ebnf$1", "symbols": [/[0-9]/]},
9
- {"name": "unsigned_int$ebnf$1", "symbols": ["unsigned_int$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
10
- {"name": "unsigned_int", "symbols": ["unsigned_int$ebnf$1"], "postprocess":
11
- function(d) {
12
- return parseInt(d[0].join(""));
13
- }
14
- },
15
- {"name": "int$ebnf$1$subexpression$1", "symbols": [{"literal":"-"}]},
16
- {"name": "int$ebnf$1$subexpression$1", "symbols": [{"literal":"+"}]},
17
- {"name": "int$ebnf$1", "symbols": ["int$ebnf$1$subexpression$1"], "postprocess": id},
18
- {"name": "int$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
19
- {"name": "int$ebnf$2", "symbols": [/[0-9]/]},
20
- {"name": "int$ebnf$2", "symbols": ["int$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
21
- {"name": "int", "symbols": ["int$ebnf$1", "int$ebnf$2"], "postprocess":
22
- function(d) {
23
- if (d[0]) {
24
- return parseInt(d[0][0]+d[1].join(""));
25
- } else {
26
- return parseInt(d[1].join(""));
27
- }
28
- }
29
- },
30
- {"name": "unsigned_decimal$ebnf$1", "symbols": [/[0-9]/]},
31
- {"name": "unsigned_decimal$ebnf$1", "symbols": ["unsigned_decimal$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
32
- {"name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": [/[0-9]/]},
33
- {"name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": ["unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
34
- {"name": "unsigned_decimal$ebnf$2$subexpression$1", "symbols": [{"literal":"."}, "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1"]},
35
- {"name": "unsigned_decimal$ebnf$2", "symbols": ["unsigned_decimal$ebnf$2$subexpression$1"], "postprocess": id},
36
- {"name": "unsigned_decimal$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}},
37
- {"name": "unsigned_decimal", "symbols": ["unsigned_decimal$ebnf$1", "unsigned_decimal$ebnf$2"], "postprocess":
38
- function(d) {
39
- return parseFloat(
40
- d[0].join("") +
41
- (d[1] ? "."+d[1][1].join("") : "")
42
- );
43
- }
44
- },
45
- {"name": "decimal$ebnf$1", "symbols": [{"literal":"-"}], "postprocess": id},
46
- {"name": "decimal$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
47
- {"name": "decimal$ebnf$2", "symbols": [/[0-9]/]},
48
- {"name": "decimal$ebnf$2", "symbols": ["decimal$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
49
- {"name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/]},
50
- {"name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": ["decimal$ebnf$3$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
51
- {"name": "decimal$ebnf$3$subexpression$1", "symbols": [{"literal":"."}, "decimal$ebnf$3$subexpression$1$ebnf$1"]},
52
- {"name": "decimal$ebnf$3", "symbols": ["decimal$ebnf$3$subexpression$1"], "postprocess": id},
53
- {"name": "decimal$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}},
54
- {"name": "decimal", "symbols": ["decimal$ebnf$1", "decimal$ebnf$2", "decimal$ebnf$3"], "postprocess":
55
- function(d) {
56
- return parseFloat(
57
- (d[0] || "") +
58
- d[1].join("") +
59
- (d[2] ? "."+d[2][1].join("") : "")
60
- );
61
- }
62
- },
63
- {"name": "percentage", "symbols": ["decimal", {"literal":"%"}], "postprocess":
64
- function(d) {
65
- return d[0]/100;
66
- }
67
- },
68
- {"name": "jsonfloat$ebnf$1", "symbols": [{"literal":"-"}], "postprocess": id},
69
- {"name": "jsonfloat$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
70
- {"name": "jsonfloat$ebnf$2", "symbols": [/[0-9]/]},
71
- {"name": "jsonfloat$ebnf$2", "symbols": ["jsonfloat$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
72
- {"name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/]},
73
- {"name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": ["jsonfloat$ebnf$3$subexpression$1$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
74
- {"name": "jsonfloat$ebnf$3$subexpression$1", "symbols": [{"literal":"."}, "jsonfloat$ebnf$3$subexpression$1$ebnf$1"]},
75
- {"name": "jsonfloat$ebnf$3", "symbols": ["jsonfloat$ebnf$3$subexpression$1"], "postprocess": id},
76
- {"name": "jsonfloat$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}},
77
- {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [/[+-]/], "postprocess": id},
78
- {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
79
- {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": [/[0-9]/]},
80
- {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": ["jsonfloat$ebnf$4$subexpression$1$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
81
- {"name": "jsonfloat$ebnf$4$subexpression$1", "symbols": [/[eE]/, "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "jsonfloat$ebnf$4$subexpression$1$ebnf$2"]},
82
- {"name": "jsonfloat$ebnf$4", "symbols": ["jsonfloat$ebnf$4$subexpression$1"], "postprocess": id},
83
- {"name": "jsonfloat$ebnf$4", "symbols": [], "postprocess": function(d) {return null;}},
84
- {"name": "jsonfloat", "symbols": ["jsonfloat$ebnf$1", "jsonfloat$ebnf$2", "jsonfloat$ebnf$3", "jsonfloat$ebnf$4"], "postprocess":
85
- function(d) {
86
- return parseFloat(
87
- (d[0] || "") +
88
- d[1].join("") +
89
- (d[2] ? "."+d[2][1].join("") : "") +
90
- (d[3] ? "e" + (d[3][1] || "+") + d[3][2].join("") : "")
91
- );
92
- }
93
- },
94
- {"name": "dqstring$ebnf$1", "symbols": []},
95
- {"name": "dqstring$ebnf$1", "symbols": ["dqstring$ebnf$1", "dstrchar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
96
- {"name": "dqstring", "symbols": [{"literal":"\""}, "dqstring$ebnf$1", {"literal":"\""}], "postprocess": function(d) {return d[1].join(""); }},
97
- {"name": "sqstring$ebnf$1", "symbols": []},
98
- {"name": "sqstring$ebnf$1", "symbols": ["sqstring$ebnf$1", "sstrchar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
99
- {"name": "sqstring", "symbols": [{"literal":"'"}, "sqstring$ebnf$1", {"literal":"'"}], "postprocess": function(d) {return d[1].join(""); }},
100
- {"name": "btstring$ebnf$1", "symbols": []},
101
- {"name": "btstring$ebnf$1", "symbols": ["btstring$ebnf$1", /[^`]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
102
- {"name": "btstring", "symbols": [{"literal":"`"}, "btstring$ebnf$1", {"literal":"`"}], "postprocess": function(d) {return d[1].join(""); }},
103
- {"name": "dstrchar", "symbols": [/[^\\"\n]/], "postprocess": id},
104
- {"name": "dstrchar", "symbols": [{"literal":"\\"}, "strescape"], "postprocess":
105
- function(d) {
106
- return JSON.parse("\""+d.join("")+"\"");
107
- }
108
- },
109
- {"name": "sstrchar", "symbols": [/[^\\'\n]/], "postprocess": id},
110
- {"name": "sstrchar", "symbols": [{"literal":"\\"}, "strescape"], "postprocess": function(d) { return JSON.parse("\""+d.join("")+"\""); }},
111
- {"name": "sstrchar$string$1", "symbols": [{"literal":"\\"}, {"literal":"'"}], "postprocess": function joiner(d) {return d.join('');}},
112
- {"name": "sstrchar", "symbols": ["sstrchar$string$1"], "postprocess": function(d) {return "'"; }},
113
- {"name": "strescape", "symbols": [/["\\/bfnrt]/], "postprocess": id},
114
- {"name": "strescape", "symbols": [{"literal":"u"}, /[a-fA-F0-9]/, /[a-fA-F0-9]/, /[a-fA-F0-9]/, /[a-fA-F0-9]/], "postprocess":
115
- function(d) {
116
- return d.join("");
117
- }
118
- },
119
- {"name": "_$ebnf$1", "symbols": []},
120
- {"name": "_$ebnf$1", "symbols": ["_$ebnf$1", "wschar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
121
- {"name": "_", "symbols": ["_$ebnf$1"], "postprocess": function(d) {return null;}},
122
- {"name": "__$ebnf$1", "symbols": ["wschar"]},
123
- {"name": "__$ebnf$1", "symbols": ["__$ebnf$1", "wschar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
124
- {"name": "__", "symbols": ["__$ebnf$1"], "postprocess": function(d) {return null;}},
125
- {"name": "wschar", "symbols": [/[ \t\n\v\f]/], "postprocess": id},
126
- {"name": "DATABASE$ebnf$1", "symbols": ["GAME"]},
127
- {"name": "DATABASE$ebnf$1", "symbols": ["DATABASE$ebnf$1", "GAME"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
128
- {"name": "DATABASE", "symbols": ["DATABASE$ebnf$1"], "postprocess": id},
129
- {"name": "GAME", "symbols": ["TAGS", "MOVE_SECTION", "__", "result", "__"], "postprocess":
130
- (d) => ({ meta: d[0], moves: d[1], result: d[3] })
131
- },
132
- {"name": "TAGS$ebnf$1$subexpression$1", "symbols": ["TAG", "__"]},
133
- {"name": "TAGS$ebnf$1", "symbols": ["TAGS$ebnf$1$subexpression$1"]},
134
- {"name": "TAGS$ebnf$1$subexpression$2", "symbols": ["TAG", "__"]},
135
- {"name": "TAGS$ebnf$1", "symbols": ["TAGS$ebnf$1", "TAGS$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
136
- {"name": "TAGS", "symbols": ["TAGS$ebnf$1"], "postprocess": (d) => d[0].map(d0 => d0[0]).reduce((acc, item) => ({ ...acc, ...item }), {})},
137
- {"name": "TAG", "symbols": [{"literal":"["}, "NAME", "__", "VALUE", {"literal":"]"}], "postprocess": (d) => ({ [d[1]]: d[3] })},
138
- {"name": "NAME", "symbols": ["string"]},
139
- {"name": "VALUE", "symbols": ["dqstring"], "postprocess": id},
140
- {"name": "MOVE_SECTION$ebnf$1", "symbols": []},
141
- {"name": "MOVE_SECTION$ebnf$1$subexpression$1", "symbols": ["_", "MOVE"]},
142
- {"name": "MOVE_SECTION$ebnf$1", "symbols": ["MOVE_SECTION$ebnf$1", "MOVE_SECTION$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
143
- {"name": "MOVE_SECTION$ebnf$2$subexpression$1", "symbols": ["_", "HM_WHITE"]},
144
- {"name": "MOVE_SECTION$ebnf$2", "symbols": ["MOVE_SECTION$ebnf$2$subexpression$1"], "postprocess": id},
145
- {"name": "MOVE_SECTION$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}},
146
- {"name": "MOVE_SECTION", "symbols": ["MOVE", "MOVE_SECTION$ebnf$1", "MOVE_SECTION$ebnf$2"], "postprocess":
147
- (d) => {
148
- const moves = [d[0]];
149
-
150
- if (d[1].length > 0) {
151
- const d1 = d[1];
152
-
153
- moves.push(...d1.map(d => d[1]));
154
- }
155
-
156
- if (d[2]) {
157
- const d2 = d[2];
158
-
159
- moves.push(d2[1]);
160
- }
161
-
162
- return moves;
163
- }
164
- },
165
- {"name": "MOVE_SECTION", "symbols": ["HM_WHITE"], "postprocess": d => [d[0]]},
166
- {"name": "MOVES$ebnf$1", "symbols": []},
167
- {"name": "MOVES$ebnf$1$subexpression$1", "symbols": ["_", "MOVE"]},
168
- {"name": "MOVES$ebnf$1", "symbols": ["MOVES$ebnf$1", "MOVES$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
169
- {"name": "MOVES$ebnf$2$subexpression$1", "symbols": ["_", "HM_WHITE"]},
170
- {"name": "MOVES$ebnf$2", "symbols": ["MOVES$ebnf$2$subexpression$1"], "postprocess": id},
171
- {"name": "MOVES$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}},
172
- {"name": "MOVES", "symbols": ["MOVES$ebnf$1", "MOVES$ebnf$2"], "postprocess":
173
- (d) => {
174
- const moves = [];
175
-
176
- if (d[0]) {
177
- d[0].map(d0 => d0[1]).map(d01 => moves.push(d01));
178
- }
179
-
180
- if (d[1]) {
181
- moves.push(d[1][1]);
182
- }
183
-
184
- return moves;
185
- }
186
- },
187
- {"name": "HM_WHITE$ebnf$1", "symbols": []},
188
- {"name": "HM_WHITE$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"]},
189
- {"name": "HM_WHITE$ebnf$1", "symbols": ["HM_WHITE$ebnf$1", "HM_WHITE$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
190
- {"name": "HM_WHITE", "symbols": ["NUMBER", "_", "SAN", "HM_WHITE$ebnf$1"], "postprocess":
191
- (d) => {
192
- const move = [d[0], {...d[2], ...(d[3].length > 0 && { variants: d[3].map(d3 => d3[1]) }), }];
193
-
194
- if (move[1].castling) {
195
- move[1].to = move[1].castling === 'K' ? 'g1' : 'c1';
196
- move[1].castling = true;
197
- }
198
-
199
- return move;
200
- }
201
- },
202
- {"name": "HM_BLACK$ebnf$1", "symbols": []},
203
- {"name": "HM_BLACK$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"]},
204
- {"name": "HM_BLACK$ebnf$1", "symbols": ["HM_BLACK$ebnf$1", "HM_BLACK$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
205
- {"name": "HM_BLACK", "symbols": ["_", "NUMBER", "continuation", "_", "SAN", "HM_BLACK$ebnf$1"], "postprocess":
206
- (d) => {
207
- const move = [d[1], undefined, {...d[4], ...(d[5].length > 0 && { variants: d[5].map(d5 => d5[1]) }) }];
208
-
209
- if (move[2].castling) {
210
- move[2].to = move[2].castling === 'K' ? 'g8' : 'c8';
211
- move[2].castling = true;
212
- }
213
-
214
- return move;
215
- }
216
- },
217
- {"name": "MOVE$ebnf$1", "symbols": []},
218
- {"name": "MOVE$ebnf$1$subexpression$1", "symbols": ["_", "VARIANT"]},
219
- {"name": "MOVE$ebnf$1", "symbols": ["MOVE$ebnf$1", "MOVE$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
220
- {"name": "MOVE", "symbols": ["NUMBER", "_", "SAN", "__", "SAN", "MOVE$ebnf$1"], "postprocess":
221
- (d) => {
222
- const move = [d[0], d[2], d[4]];
223
-
224
- if (move[1].castling) {
225
- move[1].to = move[1].castling === 'K' ? 'g1' : 'c1';
226
- move[1].castling = true;
227
- }
228
-
229
- if (move[2].castling) {
230
- move[2].to = move[2].castling === 'K' ? 'g8' : 'c8';
231
- move[2].castling = true;
232
- }
233
-
234
- if (d[5]) {
235
- const variants = d[5].map(d5 => d5[1]);
236
-
237
- const white = variants.filter(variant => variant[0][1]);
238
- const black = variants.filter(variant => !variant[0][1]);
239
-
240
- if (white.length > 0) {
241
- move[1].variants = white;
242
- }
243
-
244
- if (black.length > 0) {
245
- move[2].variants = black;
246
- }
247
- }
248
-
249
- return move;
250
- }
251
- },
252
- {"name": "MOVE", "symbols": ["HM_WHITE", "__", "HM_BLACK"], "postprocess":
253
- d => [d[0][0], d[0][1], d[2][2]]
254
- },
255
- {"name": "NUMBER$ebnf$1", "symbols": [{"literal":"."}], "postprocess": id},
256
- {"name": "NUMBER$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
257
- {"name": "NUMBER", "symbols": ["unsigned_int", "NUMBER$ebnf$1"], "postprocess": (d) => d[0]},
258
- {"name": "VARIANT", "symbols": [{"literal":"("}, "MOVES", "_", {"literal":")"}], "postprocess":
259
- (d) => d[1]
260
- },
261
- {"name": "VARIANT", "symbols": [{"literal":"("}, "HM_BLACK", "MOVES", "_", {"literal":")"}], "postprocess":
262
- (d) => [d[1], ...d[2]]
263
- },
264
- {"name": "SAN$ebnf$1", "symbols": ["piece"], "postprocess": id},
265
- {"name": "SAN$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
266
- {"name": "SAN$ebnf$2", "symbols": ["DISAMBIGUATION"], "postprocess": id},
267
- {"name": "SAN$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}},
268
- {"name": "SAN$ebnf$3", "symbols": ["capture"], "postprocess": id},
269
- {"name": "SAN$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}},
270
- {"name": "SAN$ebnf$4", "symbols": ["PROMOTION"], "postprocess": id},
271
- {"name": "SAN$ebnf$4", "symbols": [], "postprocess": function(d) {return null;}},
272
- {"name": "SAN$ebnf$5$subexpression$1", "symbols": ["_", "SUFFIX"]},
273
- {"name": "SAN$ebnf$5", "symbols": ["SAN$ebnf$5$subexpression$1"], "postprocess": id},
274
- {"name": "SAN$ebnf$5", "symbols": [], "postprocess": function(d) {return null;}},
275
- {"name": "SAN$ebnf$6", "symbols": []},
276
- {"name": "SAN$ebnf$6$subexpression$1", "symbols": ["_", "COMMENT"]},
277
- {"name": "SAN$ebnf$6", "symbols": ["SAN$ebnf$6", "SAN$ebnf$6$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
278
- {"name": "SAN", "symbols": ["SAN$ebnf$1", "SAN$ebnf$2", "SAN$ebnf$3", "file", "rank", "SAN$ebnf$4", "SAN$ebnf$5", "SAN$ebnf$6"], "postprocess":
279
- (d) => {
280
- const comments = d[7].map(d7 => d7[1]).filter(Boolean);
281
-
282
- return ({
283
- ...(d[6] && d[6][1]),
284
- ...(comments.length > 0 && { comment: comments.reduce((acc, item) => `${acc} ${item}`, '') }),
285
- ...(d[2] && { capture: true }),
286
- ...(d[1] && { from: d[1][0] }),
287
- piece: d[0] ? d[0][0] : 'P',
288
- ...(d[5] && { promotion: d[5] }),
289
- to: `${d[3]}${d[4]}`,
290
- });
291
- }
292
- },
293
- {"name": "SAN$ebnf$7", "symbols": []},
294
- {"name": "SAN$ebnf$7$subexpression$1", "symbols": ["_", "SUFFIX"]},
295
- {"name": "SAN$ebnf$7", "symbols": ["SAN$ebnf$7", "SAN$ebnf$7$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
296
- {"name": "SAN$ebnf$8", "symbols": []},
297
- {"name": "SAN$ebnf$8$subexpression$1", "symbols": ["_", "COMMENT"]},
298
- {"name": "SAN$ebnf$8", "symbols": ["SAN$ebnf$8", "SAN$ebnf$8$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
299
- {"name": "SAN", "symbols": ["castling", "SAN$ebnf$7", "SAN$ebnf$8"], "postprocess":
300
- (d) => {
301
- const comments = d[2].map(d2 => d2[1]).filter(Boolean);
302
-
303
- return ({
304
- ...(d[1]),
305
- ...(comments.length > 0 && { comment: comments.reduce((acc, item) => `${acc} ${item}`, '') }),
306
- castling: d[0],
307
- piece: 'K'
308
- })
309
- }
310
- },
311
- {"name": "DISAMBIGUATION", "symbols": ["file"], "postprocess": id},
312
- {"name": "DISAMBIGUATION", "symbols": ["rank"], "postprocess": id},
313
- {"name": "PROMOTION", "symbols": [{"literal":"="}, /[QBNR]/], "postprocess": (d) => d[1]},
314
- {"name": "SUFFIX$subexpression$1", "symbols": ["check"]},
315
- {"name": "SUFFIX$subexpression$1", "symbols": ["checkmate"]},
316
- {"name": "SUFFIX$ebnf$1", "symbols": ["annotation"], "postprocess": id},
317
- {"name": "SUFFIX$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
318
- {"name": "SUFFIX$ebnf$2", "symbols": []},
319
- {"name": "SUFFIX$ebnf$2$subexpression$1", "symbols": ["_", "NAG"]},
320
- {"name": "SUFFIX$ebnf$2", "symbols": ["SUFFIX$ebnf$2", "SUFFIX$ebnf$2$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
321
- {"name": "SUFFIX", "symbols": ["SUFFIX$subexpression$1", "SUFFIX$ebnf$1", "SUFFIX$ebnf$2"], "postprocess":
322
- (d) => ({
323
- ...(d[0] && { [d[0]]: true }),
324
- ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
325
- })
326
- },
327
- {"name": "SUFFIX$ebnf$3$subexpression$1", "symbols": ["check"]},
328
- {"name": "SUFFIX$ebnf$3$subexpression$1", "symbols": ["checkmate"]},
329
- {"name": "SUFFIX$ebnf$3", "symbols": ["SUFFIX$ebnf$3$subexpression$1"], "postprocess": id},
330
- {"name": "SUFFIX$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}},
331
- {"name": "SUFFIX$ebnf$4", "symbols": []},
332
- {"name": "SUFFIX$ebnf$4$subexpression$1", "symbols": ["_", "NAG"]},
333
- {"name": "SUFFIX$ebnf$4", "symbols": ["SUFFIX$ebnf$4", "SUFFIX$ebnf$4$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
334
- {"name": "SUFFIX", "symbols": ["SUFFIX$ebnf$3", "annotation", "SUFFIX$ebnf$4"], "postprocess":
335
- (d) => ({
336
- ...(d[0] && { [d[0]]: true }),
337
- ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
338
- })
339
- },
340
- {"name": "SUFFIX$ebnf$5$subexpression$1", "symbols": ["check"]},
341
- {"name": "SUFFIX$ebnf$5$subexpression$1", "symbols": ["checkmate"]},
342
- {"name": "SUFFIX$ebnf$5", "symbols": ["SUFFIX$ebnf$5$subexpression$1"], "postprocess": id},
343
- {"name": "SUFFIX$ebnf$5", "symbols": [], "postprocess": function(d) {return null;}},
344
- {"name": "SUFFIX$ebnf$6", "symbols": ["annotation"], "postprocess": id},
345
- {"name": "SUFFIX$ebnf$6", "symbols": [], "postprocess": function(d) {return null;}},
346
- {"name": "SUFFIX$ebnf$7$subexpression$1", "symbols": ["_", "NAG"]},
347
- {"name": "SUFFIX$ebnf$7", "symbols": ["SUFFIX$ebnf$7$subexpression$1"]},
348
- {"name": "SUFFIX$ebnf$7$subexpression$2", "symbols": ["_", "NAG"]},
349
- {"name": "SUFFIX$ebnf$7", "symbols": ["SUFFIX$ebnf$7", "SUFFIX$ebnf$7$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
350
- {"name": "SUFFIX", "symbols": ["SUFFIX$ebnf$5", "SUFFIX$ebnf$6", "SUFFIX$ebnf$7"], "postprocess":
351
- (d) => ({
352
- ...(d[0] && { [d[0]]: true }),
353
- ...((d[1] || d[2].length > 0) && { annotations: [...(d[1] ? [d[1]] : []), ...d[2].map(d2 => d2[1])] }),
354
- })
355
- },
356
- {"name": "NAG$subexpression$1$string$1", "symbols": [{"literal":"2"}, {"literal":"5"}], "postprocess": function joiner(d) {return d.join('');}},
357
- {"name": "NAG$subexpression$1", "symbols": ["NAG$subexpression$1$string$1", /[0-5]/]},
358
- {"name": "NAG$subexpression$1", "symbols": [{"literal":"2"}, /[0-4]/, /[0-9]/]},
359
- {"name": "NAG$subexpression$1", "symbols": [{"literal":"1"}, /[0-9]/, /[0-9]/]},
360
- {"name": "NAG$subexpression$1", "symbols": [/[1-9]/, /[0-9]/]},
361
- {"name": "NAG$subexpression$1", "symbols": [/[0-9]/]},
362
- {"name": "NAG", "symbols": [{"literal":"$"}, "NAG$subexpression$1"], "postprocess":
363
- (d) => d[1]
364
- },
365
- {"name": "COMMENT", "symbols": ["bstring"]},
366
- {"name": "COMMENT$ebnf$1", "symbols": []},
367
- {"name": "COMMENT$ebnf$1", "symbols": ["COMMENT$ebnf$1", /[^\n]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
368
- {"name": "COMMENT", "symbols": [{"literal":";"}, "COMMENT$ebnf$1"]},
369
- {"name": "annotation$string$1", "symbols": [{"literal":"!"}, {"literal":"!"}], "postprocess": function joiner(d) {return d.join('');}},
370
- {"name": "annotation", "symbols": ["annotation$string$1"], "postprocess": id},
371
- {"name": "annotation", "symbols": [{"literal":"!"}], "postprocess": id},
372
- {"name": "annotation$string$2", "symbols": [{"literal":"!"}, {"literal":"?"}], "postprocess": function joiner(d) {return d.join('');}},
373
- {"name": "annotation", "symbols": ["annotation$string$2"], "postprocess": id},
374
- {"name": "annotation$string$3", "symbols": [{"literal":"?"}, {"literal":"!"}], "postprocess": function joiner(d) {return d.join('');}},
375
- {"name": "annotation", "symbols": ["annotation$string$3"], "postprocess": id},
376
- {"name": "annotation", "symbols": [{"literal":"?"}], "postprocess": id},
377
- {"name": "annotation$string$4", "symbols": [{"literal":"?"}, {"literal":"?"}], "postprocess": function joiner(d) {return d.join('');}},
378
- {"name": "annotation", "symbols": ["annotation$string$4"], "postprocess": id},
379
- {"name": "annotation$string$5", "symbols": [{"literal":"+"}, {"literal":"-"}], "postprocess": function joiner(d) {return d.join('');}},
380
- {"name": "annotation", "symbols": ["annotation$string$5"], "postprocess": id},
381
- {"name": "annotation$string$6", "symbols": [{"literal":"-"}, {"literal":"+"}], "postprocess": function joiner(d) {return d.join('');}},
382
- {"name": "annotation", "symbols": ["annotation$string$6"], "postprocess": id},
383
- {"name": "annotation", "symbols": [{"literal":"="}], "postprocess": id},
384
- {"name": "annotation$string$7", "symbols": [{"literal":"?"}, {"literal":"!"}], "postprocess": function joiner(d) {return d.join('');}},
385
- {"name": "annotation", "symbols": ["annotation$string$7"], "postprocess": id},
386
- {"name": "annotation", "symbols": [{"literal":"?"}], "postprocess": id},
387
- {"name": "annotation$string$8", "symbols": [{"literal":"?"}, {"literal":"?"}], "postprocess": function joiner(d) {return d.join('');}},
388
- {"name": "annotation", "symbols": ["annotation$string$8"], "postprocess": id},
389
- {"name": "annotation", "symbols": [{"literal":"±"}], "postprocess": id},
390
- {"name": "annotation", "symbols": [{"literal":"∓"}], "postprocess": id},
391
- {"name": "annotation", "symbols": [{"literal":"∞"}], "postprocess": id},
392
- {"name": "annotation", "symbols": [{"literal":"⨀"}], "postprocess": id},
393
- {"name": "annotation", "symbols": [{"literal":"⩱"}], "postprocess": id},
394
- {"name": "annotation", "symbols": [{"literal":"⩲"}], "postprocess": id},
395
- {"name": "check", "symbols": [{"literal":"+"}], "postprocess": () => 'check'},
396
- {"name": "checkmate", "symbols": [{"literal":"#"}], "postprocess": () => 'checkmate'},
397
- {"name": "bstring$ebnf$1", "symbols": []},
398
- {"name": "bstring$ebnf$1", "symbols": ["bstring$ebnf$1", /[^}]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
399
- {"name": "bstring", "symbols": [{"literal":"{"}, "bstring$ebnf$1", {"literal":"}"}], "postprocess": (d) => d[1].join('')},
400
- {"name": "capture", "symbols": [{"literal":"x"}]},
401
- {"name": "castling$string$1", "symbols": [{"literal":"O"}, {"literal":"-"}, {"literal":"O"}], "postprocess": function joiner(d) {return d.join('');}},
402
- {"name": "castling", "symbols": ["castling$string$1"], "postprocess": () => 'K'},
403
- {"name": "castling$string$2", "symbols": [{"literal":"O"}, {"literal":"-"}, {"literal":"O"}, {"literal":"-"}, {"literal":"O"}], "postprocess": function joiner(d) {return d.join('');}},
404
- {"name": "castling", "symbols": ["castling$string$2"], "postprocess": () => 'Q'},
405
- {"name": "continuation$string$1", "symbols": [{"literal":"."}, {"literal":"."}, {"literal":"."}], "postprocess": function joiner(d) {return d.join('');}},
406
- {"name": "continuation", "symbols": ["continuation$string$1"]},
407
- {"name": "file", "symbols": [/[a-h]/]},
408
- {"name": "piece", "symbols": [/[KQBNR]/]},
409
- {"name": "rank", "symbols": [/[1-8]/]},
410
- {"name": "result$string$1", "symbols": [{"literal":"1"}, {"literal":"-"}, {"literal":"0"}], "postprocess": function joiner(d) {return d.join('');}},
411
- {"name": "result", "symbols": ["result$string$1"], "postprocess": () => 1},
412
- {"name": "result$string$2", "symbols": [{"literal":"0"}, {"literal":"-"}, {"literal":"1"}], "postprocess": function joiner(d) {return d.join('');}},
413
- {"name": "result", "symbols": ["result$string$2"], "postprocess": () => 0},
414
- {"name": "result$string$3", "symbols": [{"literal":"1"}, {"literal":"/"}, {"literal":"2"}, {"literal":"-"}, {"literal":"1"}, {"literal":"/"}, {"literal":"2"}], "postprocess": function joiner(d) {return d.join('');}},
415
- {"name": "result", "symbols": ["result$string$3"], "postprocess": () => 0.5},
416
- {"name": "result", "symbols": [{"literal":"*"}], "postprocess": () => '?'},
417
- {"name": "string$ebnf$1", "symbols": [/[^\s]/]},
418
- {"name": "string$ebnf$1", "symbols": ["string$ebnf$1", /[^\s]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
419
- {"name": "string", "symbols": ["string$ebnf$1"], "postprocess": (d) => d[0].join('')}
420
- ]
421
- , ParserStart: "DATABASE"
422
- }
423
- if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {
424
- module.exports = grammar;
425
- } else {
426
- window.grammar = grammar;
427
- }
428
- })();