NAME
Language::FormulaEngine::Parser::ContextUtil - utility methods for parsers
VERSION
version 0.08
EXPORTED FUNCTIONS
calc_text_coordinates
my
(
$line
,
$col
)= calc_text_coordinates(
$buffer
,
$pos
);
my
(
$line
,
$col
)= calc_text_coordinates(
$buffer
,
$pos
,
$buffer_line
,
$buffer_col
);
Returns the 0-based line number and character number of an offset within a buffer. The line/column of the start of the buffer can be given as additional arguments.
format_context_string
my
$message
= format_context_string(
$buffer
,
$token_start
,
$token_limit
,
$buffer_line
,
$buffer_col
);
# "'blah blah' on line 15, char 12"
Returns a single-string view of where the token occurs in the buffer. This is useful for single-line "die" messages.
format_context_multiline
my
$tty_text
= format_context_multiline(
$buffer
,
$token_start
,
$token_limit
, \
%args
);
# "blah blah blah token blah blah\n"
# ." ^^^^^\n"
# ." (line 15, char 16)\n";
More advanced view of the input string, printed on three lines with the second marking the token within its context and third listing the line/column. This is only useful with a fixed-width font in a multi-line context.
This method also supports various options for formatting.
AUTHOR
Michael Conrad <mconrad@intellitree.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by Michael Conrad, IntelliTree Solutions llc.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.