NAME

AtteanX::API::Lexer - Role defining common functionality for lexers.

VERSION

This document describes AtteanX::API::Lexer version 0.027

DESCRIPTION

The AtteanX::API::Lexer role provides a common interface and implementation for lexer implementations, allowing line-based buffer filling, and consuming of characters, constant strings, and fixed-length buffers.

ATTRIBUTES

file
linebuffer
line
column
buffer
start_column
start_line

METHODS

fill_buffer

Fills the buffer with a new line from the underlying filehandle.

check_for_bom

Remove a BOM character if one appears at the start of the buffer.

get_char_safe( $char )

Consume the single character $char from the buffer. Throw an error if $char is not at the start of the buffer.

get_char( $char )

Consume and return a single character from the buffer.

peek_char( $char )

Return a single character from the start of the buffer.

read_word( $word )

Consume the string $word from the start of the buffer. Throw an error if $word is not at the start of the buffer.

read_length( $length )

Consume and return $length characters from the start of the buffer.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/attean/issues.

SEE ALSO

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2014--2020 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.