@@ -16,19 +16,55 @@ composer require chesszebra/portable-game-notation
16
16
17
17
### Reading
18
18
19
+ #### From a string
20
+
19
21
Reading a single PGN game from a string:
20
22
21
23
``` php
22
- use ChessZebra\PortableGameNotation\Parser\Parser;
23
- use ChessZebra\PortableGameNotation\Lexer\StreamLexer;
24
+ use ChessZebra\PortableGameNotation\Reader\StringReader;
25
+
26
+ $reader = new StringReader('1. e4 e5');
27
+
28
+ $tokenIterator = $reader->read();
29
+ ```
30
+
31
+ #### From a stream
24
32
25
- $parser = new Parser(new StreamLexer(fopen('games.pgn', 'r')));
33
+ Reading a single PGN game from a stream:
26
34
27
- $tokenIterator = $parser->parse();
35
+ ``` php
36
+ use ChessZebra\PortableGameNotation\Reader\StringReader;
37
+
38
+ $reader = new StreamReader(fopen('games.pgn', 'r'));
39
+
40
+ $tokenIterator = $reader->read();
28
41
```
29
42
30
43
### Writing
31
44
45
+ #### To a string
46
+
47
+ Wriring a PGN game to a string:
48
+
49
+ ``` php
50
+ use ChessZebra\PortableGameNotation\TokenIterator;
51
+ use ChessZebra\PortableGameNotation\Token\StandardAlgebraicNotation;
52
+ use ChessZebra\PortableGameNotation\Writer\StringWriter;
53
+ use ChessZebra\StandardAlgebraicNotation\Notation;
54
+
55
+ $tokenIterator = new TokenIterator([
56
+ new MoveNumber(1),
57
+ new StandardAlgebraicNotation(new Notation('e4')),
58
+ ]);
59
+
60
+ $writer = new StringWriter();
61
+ $writer->write($tokenIterator);
62
+
63
+ $pgn = $writer->getPgn();
64
+ ```
65
+
66
+ #### To a stream
67
+
32
68
Wriring a PGN game to a stream:
33
69
34
70
``` php
0 commit comments