NAME
Tags::Output::PYX - PYX class for line oriented output for 'Tags'.
SYNOPSYS
use Tags::Output::PYX;
my $obj = Tags::Output::PYX->new(%parameters);
$obj->finalize;
my $ret = $obj->flush($reset_flag);
my @tags = $obj->open_tags;
$obj->put(@data);
$obj->reset;
PYX LINE CHARS
? - Instruction.
( - Open tag.
) - Close tag.
A - Attribute.
- - Normal data.
METHODS
new(%parameters)
-
Constructor.
auto_flush
Auto flush flag. Default value is 0.
output_callback
Output callback. Default value is undef.
output_handler
Set output handler. Default value is undef.
output_sep
Output separator. Default value is newline.
skip_bad_data
Skip bad tags. Default value is 0.
strict_instruction
Strict instruction. Default value is 1.
finalize()
-
Finalize Tags output. Automaticly puts end of all opened tags. Returns undef.
flush($reset_flag)
-
Flush tags in object. If defined 'output_handler' flush to its. Or returns code. If enabled $reset_flag, then resets internal variables via reset method.
-
Returns array of opened tags.
put(@data)
-
Put tags code in tags format. Returns undef.
reset()
-
Resets internal variables. Returns undef.
ERRORS
new():
Auto-flush can't use without output handler.
Output handler is bad file handler.
From Class::Utils::set_params():
Unknown parameter '%s'.
flush():
Cannot write to output handler.
put():
Bad data.
Bad type of data.
Bad number of arguments. 'Tags' structure %s
Ending bad tag: '%s' in block of tag '%s'.
EXAMPLE
# Pragmas.
use strict;
use warnings;
# Modules.
use Tags::Output::PYX;
# Object.
my $tags = Tags::Output::PYX->new;
# Put all tag types.
$tags->put(
['b', 'tag'],
['a', 'par', 'val'],
['c', 'data', \'data'],
['e', 'tag'],
['i', 'target', 'data'],
['b', 'tag'],
['d', 'data', 'data'],
['e', 'tag'],
);
# Print out.
print $tags->flush."\n";
# Output:
# (tag
# Apar val
# -<!--data--><!--SCALAR(0x1570740)-->
# )tag
# ?target data
# (tag
# -datadata
# )tag
DEPENDENCIES
Error::Pure, Readonly, Tags::Output, Tags::Utils.
SEE ALSO
Tags, Tags::Output, Tags::Output::Raw.
AUTHOR
Michal Špaček skim@cpan.org
LICENSE AND COPYRIGHT
BSD 2-Clause License
VERSION
0.01