public void Read(PdfFile file) { while (_lexer.NextToken()) { switch (_lexer.Token) { case Token.Header: file.Version = _lexer.Version; break; case Token.Number: { var objId = _lexer.StringValue; _lexer.NextToken(); if (_lexer.Token == Token.Number) { objId += $" {_lexer.StringValue}"; _lexer.NextToken(); if (_lexer.Token == Token.Ider) { switch (_lexer.Ider) { case Ider.obj: var obj = ReadObject(); file.AddObject(objId, obj); break; default: throw new LexerException($"unknown object {_lexer.Ider}"); } } } } break; } } }
void Parse() { while (_lexer.NextToken()) { switch (_lexer.Token) { case Token.Name: break; case Token.Ider: ParseOperator(); break; case Token.Comment: break; } } }