NAME
PYX::SGML::Tags - Processing PYX data or file and write as SGML via Tags.
SYNOPSIS
use
PYX::SGML::Tags;
my
$obj
= PYX::SGML::Tags->new(
%parameters
);
$obj
->parse(
$pyx
,
$out
);
$obj
->parse_file(
$input_file
,
$out
);
$obj
->parse_handler(
$input_file_handler
,
$out
);
$obj
->finalize;
METHODS
new
my
$obj
= PYX::SGML::Tags->new(
%parameters
);
Constructor.
input_encoding
Input encoding for parse_file() and parse_handler() usage.
Default value is 'utf-8'.
input_tags_item_callback
Input 'Tags' item callback. This callback is for Tags::Output::* constructor parameter 'input_tags_item_callback'.
Default value is undef.
output_encoding
Output encoding.
Default value is 'utf-8'.
tags
Tags object. Can be any of Tags::Output::* objects. Default value is
Tags::Output::Raw-
new('output_handler' => \*STDOUT)>. It's required.
Returns instance of class.
parse
$obj
->parse(
$pyx
,
$out
);
Parse PYX text or array of PYX text. Output is serialization to SGML by Tags::Output::* module. If $out
not present, use 'output_handler'.
Returns undef.
parse_file
$obj
->parse_file(
$input_file
,
$out
);
Parse file with PYX data. $input_file
file is decoded by 'input_encoding'. Output is serialization to SGML. If $out
not present, use 'output_handler'.
Returns undef.
parse_handler
$obj
->parse_handler(
$input_file_handler
,
$out
);
Parse PYX handler. $input_file_handler
handler is decoded by 'input_encoding'. Output is serialization to SGML. If $out
not present, use 'output_handler'.
Returns undef.
finalize
$obj
->finalize;
Finalize opened tags,
if
exists
.
Returns
undef
.
ERRORS
new():
Bad
'Tags::Output::*'
object.
From Class::Utils::set_params():
Unknown parameter
'%s'
.
parse():
From PYX::Parser::parse():
Bad PYX line
'%s'
.
From Tags::Output::Raw::flush():
Cannot
write
to output handler.
parse_file():
From PYX::Parser::parse_file():
Bad PYX line
'%s'
.
No input handler.
From Tags::Output::Raw::flush():
Cannot
write
to output handler.
parse_handler():
From PYX::Parser::parse_handler():
Bad PYX line
'%s'
.
No input handler.
From Tags::Output::Raw::flush():
Cannot
write
to output handler.
EXAMPLE1
use
strict;
use
warnings;
use
PYX::SGML::Tags;
# Input.
my
$pyx
=
<<'END';
(element
-data
)element
END
# Object.
my
$obj
= PYX::SGML::Tags->new;
# Process.
$obj
->parse(
$pyx
);
"\n"
;
# Output:
# <element>data</element>
EXAMPLE2
use
strict;
use
warnings;
use
PYX::SGML::Tags;
use
Tags::Output::Indent;
# Input.
my
$pyx
=
<<'END';
(element
-data
)element
END
# Object.
my
$obj
= PYX::SGML::Tags->new(
'tags'
=> Tags::Output::Indent->new(
'output_handler'
=> \
*STDOUT
,
),
);
# Process.
$obj
->parse(
$pyx
);
"\n"
;
# Output:
# <element>data</element>
EXAMPLE3
use
strict;
use
warnings;
use
PYX::SGML::Tags;
use
Tags::Output::Indent;
# Input.
my
$pyx
=
<<'END';
(element
-data
)element
END
# Object.
my
$obj
= PYX::SGML::Tags->new(
'input_tags_item_callback'
=>
sub
{
my
$tags_ar
=
shift
;
'[ '
.
$tags_ar
->[0].
' ]'
.
"\n"
;
return
;
},
);
# Process.
$obj
->parse(
$pyx
);
"\n"
;
# Output:
# [ b ]
# [ d ]
# [ e ]
# <element>data</element>
DEPENDENCIES
Class::Utils, Error::Pure, PYX::Parser, PYX::Utils, Tags::Output::Raw.
SEE ALSO
- Task::PYX
-
Install the PYX modules.
REPOSITORY
https://github.com/michal-josef-spacek/PYX-SGML-Tags
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2011-2023 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.10