---
name: "Statistics::R::IO::ParserState"
section: "3pm"
platform: "linux"
package: "libstatistics-r-io-perl"
version: "1.0002-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Statistics::R::IO::ParserState"
---

# Statistics::R::IO::ParserState(3pm)

Current state of the IO parser

## NAME

Statistics::R::IO::ParserState - Current state of the IO parser

## VERSION

version 1.0002

## SYNOPSIS

```
    use Statistics::R::IO::ParserState;

    my $state = Statistics::R::IO::ParserState->new(
        data => 'file.rds'
    );
    say $state->at
    say $state->next->at;
```

## DESCRIPTION

You shouldn't create instances of this class, it exists mainly to handle deserialization of R data files by the `"IO"` classes.

## METHODS

### ACCESSORS

- data

  An array reference to the data being parsed. The constructs accepts a scalar, which will be split into individual characters.

- position

  Position of the next data element to be processed.

- at

  Returns the element (byte) at the current `"position"`.

- eof

  Returns true if the cursor (`"position"`) is at the end of the `"data"`.

- singletons

  An array reference in which unserialized data that should be exists as singletons can be "stashed" by the parser for later reference.

- get\_singleton $id

  Return the singleton data object with the given `$id`.

### MUTATORS

`"ParserState"` is intended to be immutable, so the "mutator" methods actually return a new instance with appropriately modified values of the attributes.

- next

  Returns a new ParserState instance with `"position"` advanced by one.

- add\_singleton $singleton

  Returns a new ParserState instance with `$singleton` argument appended to the instance's `"singletons"`.

## BUGS AND LIMITATIONS

Instances of this class are intended to be immutable. Please do not try to change their value or attributes.

There are no known bugs in this module. Please see Statistics::R::IO for bug reporting.

## SUPPORT

See Statistics::R::IO for support and contact information.

## AUTHOR

Davor Cubranic \<cubranic@stat.ubc.ca\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by University of British Columbia.

This is free software, licensed under:

```
  The GNU General Public License, Version 3, June 2007
```
