예제 #1
0
        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;
                }
            }
        }