parser generators
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1167
Sid parser generator 1.10
Sid is an LL(1) parser generator. more>>
Sid is an LL(1) parser generator. This project can read grammars written in more convenient forms and transform them to LL(1).
The language-specific actions are stored seperately to the grammar, which allows for multiple languages in the future.
Although Sid is intended to be used with lexi an example is included demonstrating use with lex.
Enhancements:
- This is the first release of Sid as a stand-alone project. It has been moved out of the TenDRA compiler.
<<lessThe language-specific actions are stored seperately to the grammar, which allows for multiple languages in the future.
Although Sid is intended to be used with lexi an example is included demonstrating use with lex.
Enhancements:
- This is the first release of Sid as a stand-alone project. It has been moved out of the TenDRA compiler.
Download (0.20MB)
Added: 2007-06-05 License: BSD License Price:
878 downloads
Dragon parser generator 1.2.11
Dragon is a powerful parser generator. more>>
Dragon is a powerful parser generator. It produces a consequent, object-oriented, integrated scanner and parser solution. Dragon parser generator also scales for very large grammar defintions. Since dragon parses LR(1) grammars, the generation algorithm is quite CPU intensive.
Using LR(1) instead of LALR decreases efficiency of the parser, but avoids some reduce/reduce conflicts in some cases. Dragon provides a very clean and structured way for the integration of application specific context code. Dragon combines the lexical and syntactical analysis and the corresponding code generation.
Enhancements:
- The switch option -y was added to switch between a dynamically allocated parse table or a static parse table.
- An escape feature was added for special token definitions.
<<lessUsing LR(1) instead of LALR decreases efficiency of the parser, but avoids some reduce/reduce conflicts in some cases. Dragon provides a very clean and structured way for the integration of application specific context code. Dragon combines the lexical and syntactical analysis and the corresponding code generation.
Enhancements:
- The switch option -y was added to switch between a dynamically allocated parse table or a static parse table.
- An escape feature was added for special token definitions.
Download (0.36MB)
Added: 2007-08-15 License: GPL (GNU General Public License) Price:
805 downloads
Exemplar: An XML Parser Generator 0.1
Exemplar is free software designed to make it easier to work with XML. more>>
Exemplar is free software designed to make it easier to work with XML. Exemplar: An XML Parser Generator was started as a program to generate the smallest possible parser for a given vocabulary of XML. While it still retains the capability to do this, it is now a more general program intended to support conversion of specifications of XML vocabularies (DTDs, Schemas, etc) into useful code.
Main features:
- Input from DTD
- Output to Java (SAX versions 1.0 and 2.0)
- Output to XSLT
- Output to DTD
- Command line and Ant user interfaces
Benefits
Save Programmer Time
XML is supposed to be easy to parse, but its very easy to get wrong. Offload your programming efforts to Exemplar and you can spend more of your time working on the core functionality of your application.
Save Space
Working in a space constrained environment? Exemplar can create SAX-compatible parsers as small as 5kb. No more need to hand write XML parsers to make them fit your environment.
Free Software
Exemplar is distributed under a permissive, BSD-style license (OSI approved). This means that youll never have to worry about integrating Exemplar with your own work, whether its commercial or not.
<<lessMain features:
- Input from DTD
- Output to Java (SAX versions 1.0 and 2.0)
- Output to XSLT
- Output to DTD
- Command line and Ant user interfaces
Benefits
Save Programmer Time
XML is supposed to be easy to parse, but its very easy to get wrong. Offload your programming efforts to Exemplar and you can spend more of your time working on the core functionality of your application.
Save Space
Working in a space constrained environment? Exemplar can create SAX-compatible parsers as small as 5kb. No more need to hand write XML parsers to make them fit your environment.
Free Software
Exemplar is distributed under a permissive, BSD-style license (OSI approved). This means that youll never have to worry about integrating Exemplar with your own work, whether its commercial or not.
Download (0.16MB)
Added: 2007-01-10 License: BSD License Price:
1021 downloads
Spirit Parser library 1.8.2
Spirit Parser library is an object-oriented, recursive descent parser generator framework. more>>
Spirit is an object oriented recursive descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus Normal Form[1] (EBNF) completely in C++.
Parser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
<<lessParser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
Download (2.27MB)
Added: 2005-04-22 License: zlib/libpng License Price:
1647 downloads
Test-Parser 1.2
Test::Parser is a collection of parsers for different test output file formats. more>>
Test::Parser is a collection of parsers for different test output file formats. These parse the data into a general purpose data structure that can then be used to create reports, do post-processing analysis, etc.
Test-Parser can also export tests in SpikeSources TRPI test description XML language.
<<lessTest-Parser can also export tests in SpikeSources TRPI test description XML language.
Download (0.053MB)
Added: 2006-05-04 License: GPL (GNU General Public License) Price:
1268 downloads
CQL::Parser 1.0
CQL::Parser is a Perl module that compiles CQL strings into parse trees of Node subtypes. more>>
CQL::Parser is a Perl module that compiles CQL strings into parse trees of Node subtypes.
SYNOPSIS
use CQL::Parser;
my $parser = CQL::Parser->new();
my $root = $parser->parse( $cql );
CQL::Parser provides a mechanism to parse Common Query Language (CQL) statements. The best description of CQL comes from the CQL homepage at the Library of Congress http://www.loc.gov/z3950/agency/zing/cql/
CQL is a formal language for representing queries to information retrieval systems such as web indexes, bibliographic catalogs and museum collection information. The CQL design objective is that queries be human readable and human writable, and that the language be intuitive while maintaining the expressiveness of more complex languages.
A CQL statement can be as simple as a single keyword, or as complicated as a set of compoenents indicating search indexes, relations, relational modifiers, proximity clauses and boolean logic. CQL::Parser will parse CQL statements and return the root node for a tree of nodes which describes the CQL statement. This data structure can then be used by a client application to analyze the statement, and possibly turn it into a query for a local repository.
Each CQL component in the tree inherits from CQL::Node and can be one of the following: CQL::AndNode, CQL::NotNode, CQL::OrNode, CQL::ProxNode, CQL::TermNode, CQL::PrefixNode. See the documentation for those modules for their respective APIs.
Here are some examples of CQL statements:
george
dc.creator=george
dc.creator="George Clinton"
clinton and funk
clinton and parliament and funk
(clinton or bootsy) and funk
dc.creator="clinton" and dc.date="1976"
<<lessSYNOPSIS
use CQL::Parser;
my $parser = CQL::Parser->new();
my $root = $parser->parse( $cql );
CQL::Parser provides a mechanism to parse Common Query Language (CQL) statements. The best description of CQL comes from the CQL homepage at the Library of Congress http://www.loc.gov/z3950/agency/zing/cql/
CQL is a formal language for representing queries to information retrieval systems such as web indexes, bibliographic catalogs and museum collection information. The CQL design objective is that queries be human readable and human writable, and that the language be intuitive while maintaining the expressiveness of more complex languages.
A CQL statement can be as simple as a single keyword, or as complicated as a set of compoenents indicating search indexes, relations, relational modifiers, proximity clauses and boolean logic. CQL::Parser will parse CQL statements and return the root node for a tree of nodes which describes the CQL statement. This data structure can then be used by a client application to analyze the statement, and possibly turn it into a query for a local repository.
Each CQL component in the tree inherits from CQL::Node and can be one of the following: CQL::AndNode, CQL::NotNode, CQL::OrNode, CQL::ProxNode, CQL::TermNode, CQL::PrefixNode. See the documentation for those modules for their respective APIs.
Here are some examples of CQL statements:
george
dc.creator=george
dc.creator="George Clinton"
clinton and funk
clinton and parliament and funk
(clinton or bootsy) and funk
dc.creator="clinton" and dc.date="1976"
Download (0.019MB)
Added: 2007-06-20 License: Perl Artistic License Price:
856 downloads
Regexp::Parser::Handlers 0.20
Regexp::Parser::Handlers is a Perl module with handlers for Perl 5 regexes. more>>
Regexp::Parser::Handlers is a Perl module with handlers for Perl 5 regexes.
This module holds the init() method for the Regexp::Parser class, which installs all the handlers for standard Perl 5 regexes. This documentation contains a sub-classing tutorial.
SUB-CLASSING
I will present two example sub-classes, Regexp::NoCode, and Regexp::AndBranch.
Parser Internals
The parser object is a hash reference with the following keys:
regex
A reference to the original string representation of the regex.
len
The length of the original string representation of the regex.
tree
During the first pass, tree is undef, which instructs the object() method not to actually create any objects. Afterwards, it is an array reference of (node) objects.
stack
Initially an array reference, used to store the tree as a new scope is entered and then exited. The general concept is:
if (into_scope) {
push STACK, TREE;
TREE = CURRENT->DATA;
}
if (outof_scope) {
TREE = pop STACK;
}
After the tree has been created, this key is deleted; this gives the code a way to be sure compilation was successful.
maxpar
The highest number of parentheses. It will end up being identical to nparen, but it is incremented during the initial pass, so that on the second pass (the tree-building), it can distinguish back-references from octal escapes. (The source code to Perls regex compiler does the same thing.)
nparen
The number of OPENs (capturing groups) in the regex.
captures
An array reference to the open nodes.
flags
An array reference of flag values. When a scope is entered, the top value is copied and pushed onto the stack. When a scope is left, the top value is popped and discarded.
It is important to do this copy-and-push before you do any flag-parsing, if youre adding a handle that might parse flags, because you do not want to accidentally affect the previous scopes flag values.
Here is example code from the handler for (?ismx) and (?ismx:...):
# (?i:...) {next} }, qw< c) atom >;
}
for (split //, $on) {
if (my $h = $S->can("FLAG_$_")) {
my $v = $h->(1); # 1 means this is on
if ($v) { &Rf |= $v } # turn the flag on
else { ... } # the flags value is 0
next;
}
# throw an error if the flag isnt supported
}
for (map "FLAG_$_", split //, $off) {
if (my $h = $S->can("FLAG_$_")) {
my $v = $h->(0); # 0 means this is off
if ($v) { &Rf &= ~$v } # turn the flag off
else { ... } # the flags value is 0
next;
}
# throw an error if the flag isnt supported
}
Youll probably not be adding handlers that have to parse flags, but if you do, remember to follow this model correctly.
next
An array reference of what handles (or "rules") to try to match next.
<<lessThis module holds the init() method for the Regexp::Parser class, which installs all the handlers for standard Perl 5 regexes. This documentation contains a sub-classing tutorial.
SUB-CLASSING
I will present two example sub-classes, Regexp::NoCode, and Regexp::AndBranch.
Parser Internals
The parser object is a hash reference with the following keys:
regex
A reference to the original string representation of the regex.
len
The length of the original string representation of the regex.
tree
During the first pass, tree is undef, which instructs the object() method not to actually create any objects. Afterwards, it is an array reference of (node) objects.
stack
Initially an array reference, used to store the tree as a new scope is entered and then exited. The general concept is:
if (into_scope) {
push STACK, TREE;
TREE = CURRENT->DATA;
}
if (outof_scope) {
TREE = pop STACK;
}
After the tree has been created, this key is deleted; this gives the code a way to be sure compilation was successful.
maxpar
The highest number of parentheses. It will end up being identical to nparen, but it is incremented during the initial pass, so that on the second pass (the tree-building), it can distinguish back-references from octal escapes. (The source code to Perls regex compiler does the same thing.)
nparen
The number of OPENs (capturing groups) in the regex.
captures
An array reference to the open nodes.
flags
An array reference of flag values. When a scope is entered, the top value is copied and pushed onto the stack. When a scope is left, the top value is popped and discarded.
It is important to do this copy-and-push before you do any flag-parsing, if youre adding a handle that might parse flags, because you do not want to accidentally affect the previous scopes flag values.
Here is example code from the handler for (?ismx) and (?ismx:...):
# (?i:...) {next} }, qw< c) atom >;
}
for (split //, $on) {
if (my $h = $S->can("FLAG_$_")) {
my $v = $h->(1); # 1 means this is on
if ($v) { &Rf |= $v } # turn the flag on
else { ... } # the flags value is 0
next;
}
# throw an error if the flag isnt supported
}
for (map "FLAG_$_", split //, $off) {
if (my $h = $S->can("FLAG_$_")) {
my $v = $h->(0); # 0 means this is off
if ($v) { &Rf &= ~$v } # turn the flag off
else { ... } # the flags value is 0
next;
}
# throw an error if the flag isnt supported
}
Youll probably not be adding handlers that have to parse flags, but if you do, remember to follow this model correctly.
next
An array reference of what handles (or "rules") to try to match next.
Download (0.040MB)
Added: 2006-10-13 License: Perl Artistic License Price:
1107 downloads
XML::Parser::PerlSAX 0.08
XML::Parser::PerlSAX is a Perl SAX parser using XML::Parser. more>>
XML::Parser::PerlSAX is a Perl SAX parser using XML::Parser.
SYNOPSIS
use XML::Parser::PerlSAX;
$parser = XML::Parser::PerlSAX->new( [OPTIONS] );
$result = $parser->parse( [OPTIONS] );
$result = $parser->parse($string);
XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser module. This man page summarizes the specific options, handlers, and properties supported by XML::Parser::PerlSAX; please refer to the PerlSAX standard in `PerlSAX.pod for general usage information.
METHODS
new
Creates a new parser object. Default options for parsing, described below, are passed as key-value pairs or as a single hash. Options may be changed directly in the parser object unless stated otherwise. Options passed to `parse() override the default options in the parser object for the duration of the parse.
parse
Parses a document. Options, described below, are passed as key-value pairs or as a single hash. Options passed to `parse() override default options in the parser object.
location
Returns the location as a hash:
ColumnNumber The column number of the parse.
LineNumber The line number of the parse.
BytePosition The current byte position of the parse.
PublicId A string containing the public identifier, or undef
if none is available.
SystemId A string containing the system identifier, or undef
if none is available.
Base The current value of the base for resolving relative
URIs.
ALPHA WARNING: The `SystemId and `PublicId properties returned are the system and public identifiers of the document passed to `parse(), not the identifiers of the currently parsing external entity. The column, line, and byte positions are of the current entity being parsed.
<<lessSYNOPSIS
use XML::Parser::PerlSAX;
$parser = XML::Parser::PerlSAX->new( [OPTIONS] );
$result = $parser->parse( [OPTIONS] );
$result = $parser->parse($string);
XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser module. This man page summarizes the specific options, handlers, and properties supported by XML::Parser::PerlSAX; please refer to the PerlSAX standard in `PerlSAX.pod for general usage information.
METHODS
new
Creates a new parser object. Default options for parsing, described below, are passed as key-value pairs or as a single hash. Options may be changed directly in the parser object unless stated otherwise. Options passed to `parse() override the default options in the parser object for the duration of the parse.
parse
Parses a document. Options, described below, are passed as key-value pairs or as a single hash. Options passed to `parse() override default options in the parser object.
location
Returns the location as a hash:
ColumnNumber The column number of the parse.
LineNumber The line number of the parse.
BytePosition The current byte position of the parse.
PublicId A string containing the public identifier, or undef
if none is available.
SystemId A string containing the system identifier, or undef
if none is available.
Base The current value of the base for resolving relative
URIs.
ALPHA WARNING: The `SystemId and `PublicId properties returned are the system and public identifiers of the document passed to `parse(), not the identifiers of the currently parsing external entity. The column, line, and byte positions are of the current entity being parsed.
Download (0.063MB)
Added: 2006-06-14 License: GPL (GNU General Public License) Price:
1234 downloads
SVG::Parser 1.01
SVG::Parser is a Perl module with XML Parser for SVG documents. more>>
SVG::Parser is a Perl module with XML Parser for SVG documents.
SYNOPSIS
#!/usr/bin/perl -w
use strict;
use SVG::Parser;
die "Usage: $0 n" unless @ARGV;
my $xml;
{
local $/=undef;
$xml=;
}
my $parser=new SVG::Parser(-debug => 1);
my $svg=$parser->parse($xml);
print $svg->xmlify;
and:
#!/usr/bin/perl -w
use strict;
use SVG::Parser qw(SAX=XML::LibXML::Parser::SAX Expat SAX);
die "Usage: $0 n" unless @ARGV;
my $svg=SVG::Parser->new()->parsefile($ARGV[0]);
print $svg->xmlify;
SVG::Parser is an XML parser for SVG Documents. It takes XML as input and produces an SVG object as its output.
SVG::Parser supports both XML::SAX and XML::Parser (Expat) parsers, with SAX preferred by default. Only one of these needs to be installed for SVG::Parser to function.
A list of preferred parsers may be specified in the import list - SVG::Parser will use the first parser that successfully loads. Some basic measures are taken to provide cross-compatability. Applications requiring more advanced parser features should use the relevant parser module directly; see SVG::Parser::Expat and SVG::Parser::SAX
<<lessSYNOPSIS
#!/usr/bin/perl -w
use strict;
use SVG::Parser;
die "Usage: $0 n" unless @ARGV;
my $xml;
{
local $/=undef;
$xml=;
}
my $parser=new SVG::Parser(-debug => 1);
my $svg=$parser->parse($xml);
print $svg->xmlify;
and:
#!/usr/bin/perl -w
use strict;
use SVG::Parser qw(SAX=XML::LibXML::Parser::SAX Expat SAX);
die "Usage: $0 n" unless @ARGV;
my $svg=SVG::Parser->new()->parsefile($ARGV[0]);
print $svg->xmlify;
SVG::Parser is an XML parser for SVG Documents. It takes XML as input and produces an SVG object as its output.
SVG::Parser supports both XML::SAX and XML::Parser (Expat) parsers, with SAX preferred by default. Only one of these needs to be installed for SVG::Parser to function.
A list of preferred parsers may be specified in the import list - SVG::Parser will use the first parser that successfully loads. Some basic measures are taken to provide cross-compatability. Applications requiring more advanced parser features should use the relevant parser module directly; see SVG::Parser::Expat and SVG::Parser::SAX
Download (0.014MB)
Added: 2006-09-20 License: Perl Artistic License Price:
1131 downloads
XML::Parser 2.34
XML::Parser is a perl module for parsing XML documents. more>>
XML::Parser is a perl module for parsing XML documents.
SYNOPSIS
use XML::Parser;
$p1 = new XML::Parser(Style => Debug);
$p1->parsefile(REC-xml-19980210.xml);
$p1->parse( Hello World );
# Alternative
$p2 = new XML::Parser(Handlers => {Start => &handle_start,
End => &handle_end,
Char => &handle_char});
$p2->parse($socket);
# Another alternative
$p3 = new XML::Parser(ErrorContext => 2);
$p3->setHandlers(Char => &text,
Default => &other);
open(FOO, xmlgenerator |);
$p3->parse(*FOO, ProtocolEncoding => ISO-8859-1);
close(FOO);
$p3->parsefile(junk.xml, ErrorContext => 3);
This module provides ways to parse XML documents. It is built on top of XML::Parser::Expat, which is a lower level interface to James Clarks expat library. Each call to one of the parsing methods creates a new instance of XML::Parser::Expat which is then used to parse the document.
Expat options may be provided when the XML::Parser object is created. These options are then passed on to the Expat object on each parse call. They can also be given as extra arguments to the parse methods, in which case they override options given at XML::Parser creation time.
The behavior of the parser is controlled either by "Style" and/or "Handlers" options, or by "setHandlers" method. These all provide mechanisms for XML::Parser to set the handlers needed by XML::Parser::Expat. If neither Style nor Handlers are specified, then parsing just checks the document for being well-formed.
When underlying handlers get called, they receive as their first parameter the Expat object, not the Parser object.
<<lessSYNOPSIS
use XML::Parser;
$p1 = new XML::Parser(Style => Debug);
$p1->parsefile(REC-xml-19980210.xml);
$p1->parse( Hello World );
# Alternative
$p2 = new XML::Parser(Handlers => {Start => &handle_start,
End => &handle_end,
Char => &handle_char});
$p2->parse($socket);
# Another alternative
$p3 = new XML::Parser(ErrorContext => 2);
$p3->setHandlers(Char => &text,
Default => &other);
open(FOO, xmlgenerator |);
$p3->parse(*FOO, ProtocolEncoding => ISO-8859-1);
close(FOO);
$p3->parsefile(junk.xml, ErrorContext => 3);
This module provides ways to parse XML documents. It is built on top of XML::Parser::Expat, which is a lower level interface to James Clarks expat library. Each call to one of the parsing methods creates a new instance of XML::Parser::Expat which is then used to parse the document.
Expat options may be provided when the XML::Parser object is created. These options are then passed on to the Expat object on each parse call. They can also be given as extra arguments to the parse methods, in which case they override options given at XML::Parser creation time.
The behavior of the parser is controlled either by "Style" and/or "Handlers" options, or by "setHandlers" method. These all provide mechanisms for XML::Parser to set the handlers needed by XML::Parser::Expat. If neither Style nor Handlers are specified, then parsing just checks the document for being well-formed.
When underlying handlers get called, they receive as their first parameter the Expat object, not the Parser object.
Download (0.22MB)
Added: 2006-06-14 License: Perl Artistic License Price:
1235 downloads
Nmap Parser 1.11
Nmap Parser is a Perl module to ease the pain of developing scripts or collecting network information from nmap scans. more>>
Nmap Parser is a module that implements a interface to the information contained in an nmap scan. It is implemented by parsing the xml scan data that is generated by nmap.
This will enable anyone who utilizes nmap to quickly create fast and robust security scripts that utilize the powerful port scanning abilities of nmap.
Enhancements:
- Parsing of distance information was added. Ignoring of taskend, taskbegin, and taskprogress information was added.
- Tests for nmap 4.20 were added.
- The license was changed to the MIT-style.
- The "always null" bug for the service->protocol call was fixed.
<<lessThis will enable anyone who utilizes nmap to quickly create fast and robust security scripts that utilize the powerful port scanning abilities of nmap.
Enhancements:
- Parsing of distance information was added. Ignoring of taskend, taskbegin, and taskprogress information was added.
- Tests for nmap 4.20 were added.
- The license was changed to the MIT-style.
- The "always null" bug for the service->protocol call was fixed.
Download (0.035MB)
Added: 2007-06-15 License: GPL (GNU General Public License) Price:
862 downloads
Test::Parser 1.1
Test::Parser is a collection of parsers for different test output file formats. more>>
Test::Parser is a collection of parsers for different test output file formats.
These parse the data into a general purpose data structure that can then be used to create reports, do post-processing analysis, etc.
Test::Parser can also export tests in SpikeSources TRPI test description XML language.
Installation:
To install the script and man pages in the standard areas, give the sequence of commands
$ perl Makefile.PL
$ make
$ make test
$ make install # you probably need to do this step as superuser
If you want to install the script in your own private space, use
$ perl Makefile.PL PREFIX=/home/joeuser
INSTALLMAN1DIR=/home/joeuser/man/man1
INSTALLMAN3DIR=/home/joeuser/man/man3
$ make
$ make test
$ make install # can do this step as joeuser
Note that `make test` does nothing interesting.
Enhancements:
- This release improves the LTP parser and adds a parse_ltp script that prints a tabular summary of the PASS/FAILs of test cases.
<<lessThese parse the data into a general purpose data structure that can then be used to create reports, do post-processing analysis, etc.
Test::Parser can also export tests in SpikeSources TRPI test description XML language.
Installation:
To install the script and man pages in the standard areas, give the sequence of commands
$ perl Makefile.PL
$ make
$ make test
$ make install # you probably need to do this step as superuser
If you want to install the script in your own private space, use
$ perl Makefile.PL PREFIX=/home/joeuser
INSTALLMAN1DIR=/home/joeuser/man/man1
INSTALLMAN3DIR=/home/joeuser/man/man3
$ make
$ make test
$ make install # can do this step as joeuser
Note that `make test` does nothing interesting.
Enhancements:
- This release improves the LTP parser and adds a parse_ltp script that prints a tabular summary of the PASS/FAILs of test cases.
Download (0.044MB)
Added: 2006-04-07 License: GPL (GNU General Public License) Price:
1295 downloads
XML::Parser::EasyTree 0.01
XML::Parser::EasyTree is an easier tree style for XML::Parser. more>>
XML::Parser::EasyTree is an easier tree style for XML::Parser.
SYNOPSIS
use XML::Parser;
use XML::Parser::EasyTree;
$XML::Parser::Easytree::Noempty=1;
my $p=new XML::Parser(Style=>EasyTree);
my $tree=$p->parsefile(something.xml);
XML::Parser::EasyTree adds a new "built-in" style called "EasyTree" to XML::Parser. Like XML::Parsers "Tree" style, setting this style causes the parser to build a lightweight tree structure representing the XML document. This structure is, at least in this authors opinion, easier to work with than the one created by the built-in style.
When the parser is invoked with the EasyTree style, it returns a reference to an array of tree nodes, each of which is a hash reference.
All nodes have a type key whose value is the type of the node: e for element nodes, t for text nodes, and p for processing instruction nodes. All nodes also have a content key whose value is a reference to an array holding the elements child nodes for element nodes, the string value for text nodes, and the data value for processing instruction nodes. Element nodes also have an attrib key whose value is a reference to a hash of attribute names and values. Processing instructions also have a target key whose value is the PIs target.
EasyTree nodes are ordinary Perl hashes and are not objects. Contiguous runs of text are always returned in a single node.
The reason the parser returns an array reference rather than the root elements node is that an XML document can legally contain processing instructions outside the root element (the xml-stylesheet PI is commonly used this way).
If the parsers Namespaces option is set, element and attribute names will be prefixed with their (possibly empty) namespace URI enclosed in curly brackets.
<<lessSYNOPSIS
use XML::Parser;
use XML::Parser::EasyTree;
$XML::Parser::Easytree::Noempty=1;
my $p=new XML::Parser(Style=>EasyTree);
my $tree=$p->parsefile(something.xml);
XML::Parser::EasyTree adds a new "built-in" style called "EasyTree" to XML::Parser. Like XML::Parsers "Tree" style, setting this style causes the parser to build a lightweight tree structure representing the XML document. This structure is, at least in this authors opinion, easier to work with than the one created by the built-in style.
When the parser is invoked with the EasyTree style, it returns a reference to an array of tree nodes, each of which is a hash reference.
All nodes have a type key whose value is the type of the node: e for element nodes, t for text nodes, and p for processing instruction nodes. All nodes also have a content key whose value is a reference to an array holding the elements child nodes for element nodes, the string value for text nodes, and the data value for processing instruction nodes. Element nodes also have an attrib key whose value is a reference to a hash of attribute names and values. Processing instructions also have a target key whose value is the PIs target.
EasyTree nodes are ordinary Perl hashes and are not objects. Contiguous runs of text are always returned in a single node.
The reason the parser returns an array reference rather than the root elements node is that an XML document can legally contain processing instructions outside the root element (the xml-stylesheet PI is commonly used this way).
If the parsers Namespaces option is set, element and attribute names will be prefixed with their (possibly empty) namespace URI enclosed in curly brackets.
Download (0.003MB)
Added: 2006-06-14 License: Perl Artistic License Price:
1228 downloads
PXR::Parser 0.1.5
PXR::Parser is a Pure Perl SAX XML Push Parser. more>>
PXR::Parser is a Pure Perl SAX XML Push Parser.
SYNOPSIS
use PXR::Parser;
my $parser = PXR::Parser->new(
Handlers => {
startDocument => &start_doc,
endDocument => &end_doc,
startElement => &start_element,
endElement => &end_element,
characters => &characters,
}
);
$parser->parse($data);
$parser->setHandlers(startDocument => &different_start);
A simple, fast, efficient pure perl sax xml parser.
BUGS AND NOTES
This Parser was blatantly ripped and modified from XML::Stream::Parser because it was the only pure perl parser simple and speedy enough to be included by default in various other things such as PXR or PoCo::Jabber. Just note that there is no recovering or detecting XML malformedness. So if you feed this little pet something non-tasty, you are in for a surprise (mainly memory leaking everywhere, and other things like gnawing on furniture).
That is the trade off for its speed. In situtations where you know you are not going to get malformed XML such as a connection to a jabber server (or other XML pushing entities) then this parser is ideal. Currently, the speed difference between this parser and XML::Parser::Expat are about 30 percent in favor of XML::Parser::Expat (which says alot of the speed of this pure perl implementation).
Thanks to Ryan Eatmon for writing and releasing this code. It has been a boon to those of us that really appreciate a simple small solution.
<<lessSYNOPSIS
use PXR::Parser;
my $parser = PXR::Parser->new(
Handlers => {
startDocument => &start_doc,
endDocument => &end_doc,
startElement => &start_element,
endElement => &end_element,
characters => &characters,
}
);
$parser->parse($data);
$parser->setHandlers(startDocument => &different_start);
A simple, fast, efficient pure perl sax xml parser.
BUGS AND NOTES
This Parser was blatantly ripped and modified from XML::Stream::Parser because it was the only pure perl parser simple and speedy enough to be included by default in various other things such as PXR or PoCo::Jabber. Just note that there is no recovering or detecting XML malformedness. So if you feed this little pet something non-tasty, you are in for a surprise (mainly memory leaking everywhere, and other things like gnawing on furniture).
That is the trade off for its speed. In situtations where you know you are not going to get malformed XML such as a connection to a jabber server (or other XML pushing entities) then this parser is ideal. Currently, the speed difference between this parser and XML::Parser::Expat are about 30 percent in favor of XML::Parser::Expat (which says alot of the speed of this pure perl implementation).
Thanks to Ryan Eatmon for writing and releasing this code. It has been a boon to those of us that really appreciate a simple small solution.
Download (0.016MB)
Added: 2006-09-18 License: Perl Artistic License Price:
1131 downloads
HTML::Parser 3.54
HTML::Parser is a HTML parser class. more>>
HTML::Parser is a HTML parser class. Objects of the HTML::Parser class will recognize markup and separate it from plain text (alias data content) in HTML documents. As different kinds of markup and text are recognized, the corresponding event handlers are invoked.
HTML::Parser is not a generic SGML parser.
We have tried to make it able to deal with the HTML that is actually "out there", and it normally parses as closely as possible to the way the popular web browsers do it instead of strictly following one of the many HTML specifications from W3C. Where there is disagreement, there is often an option that you can enable to get the official behaviour.
The document to be parsed may be supplied in arbitrary chunks. This makes on-the-fly parsing as documents are received from the network possible.
If event driven parsing does not feel right for your application, you might want to use HTML::PullParser. This is an HTML::Parser subclass that allows a more conventional program structure.
SYNOPSIS:
use HTML::Parser ();
# Create parser object
$p = HTML::Parser->new( api_version => 3,
start_h => [&start, "tagname, attr"],
end_h => [&end, "tagname"],
marked_sections => 1,
);
# Parse document text chunk by chunk
$p->parse($chunk1);
$p->parse($chunk2);
#...
$p->eof; # signal end of document
# Parse directly from file
$p->parse_file("foo.html");
# or
open(my $fh, "<<less
HTML::Parser is not a generic SGML parser.
We have tried to make it able to deal with the HTML that is actually "out there", and it normally parses as closely as possible to the way the popular web browsers do it instead of strictly following one of the many HTML specifications from W3C. Where there is disagreement, there is often an option that you can enable to get the official behaviour.
The document to be parsed may be supplied in arbitrary chunks. This makes on-the-fly parsing as documents are received from the network possible.
If event driven parsing does not feel right for your application, you might want to use HTML::PullParser. This is an HTML::Parser subclass that allows a more conventional program structure.
SYNOPSIS:
use HTML::Parser ();
# Create parser object
$p = HTML::Parser->new( api_version => 3,
start_h => [&start, "tagname, attr"],
end_h => [&end, "tagname"],
marked_sections => 1,
);
# Parse document text chunk by chunk
$p->parse($chunk1);
$p->parse($chunk2);
#...
$p->eof; # signal end of document
# Parse directly from file
$p->parse_file("foo.html");
# or
open(my $fh, "<<less
Download (0.082MB)
Added: 2006-05-05 License: Perl Artistic License Price:
1269 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above parser generators search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed