From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

PYX::SGML::Tags - Processing PYX data or file and write as SGML via Tags.

SYNOPSIS

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;
# Input.
my $pyx = <<'END';
(element
-data
)element
END
# Object.
my $obj = PYX::SGML::Tags->new;
# Process.
$obj->parse($pyx);
print "\n";
# Output:
# <element>data</element>

EXAMPLE2

use strict;
# 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);
print "\n";
# Output:
# <element>data</element>

EXAMPLE3

use strict;
# Input.
my $pyx = <<'END';
(element
-data
)element
END
# Object.
my $obj = PYX::SGML::Tags->new(
'input_tags_item_callback' => sub {
my $tags_ar = shift;
print '[ '.$tags_ar->[0].' ]'."\n";
return;
},
);
# Process.
$obj->parse($pyx);
print "\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

http://skim.cz

LICENSE AND COPYRIGHT

© 2011-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.10