gs boyz
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 32
Bash Blogger 0.3.6
Bash Blogger is a shell script that generates CSS styled XHTML 1.1 static Web pages. more>>
Bash Blogger is a shell script that generates CSS styled XHTML 1.1 static Web pages.
Keeping up a website is basically just adding new content and a bunch of small repetitive tasks, e.g. updating the archives, updating the front page, etc. Bash scripting is good for automating repetitive tasks, so this works out pretty well.
Why program in the shell instead of (Perl, Python, etc)?
You may not have Perl, PHP or any number of the other scripting languages available on your hosting provider. Its a fairly safe bet that if you have shell access to your account, you can use Bash Blogger.
Enhancements:
- This release adds pingservices to notify technorati, blo.gs, etc. when a site is updated.
- It adds pingback support (autodiscovery and XML-RPC posting of pingback).
- User templates are now fully exposed.
- The default templates have been changed from XHTML 1.1 to HTML5 as per WHATWG recommendations.
- An ispell/aspell spellcheck menu option has been added.
- The welcome message code has been replaced with functions to make articles "sticky".
<<lessKeeping up a website is basically just adding new content and a bunch of small repetitive tasks, e.g. updating the archives, updating the front page, etc. Bash scripting is good for automating repetitive tasks, so this works out pretty well.
Why program in the shell instead of (Perl, Python, etc)?
You may not have Perl, PHP or any number of the other scripting languages available on your hosting provider. Its a fairly safe bet that if you have shell access to your account, you can use Bash Blogger.
Enhancements:
- This release adds pingservices to notify technorati, blo.gs, etc. when a site is updated.
- It adds pingback support (autodiscovery and XML-RPC posting of pingback).
- User templates are now fully exposed.
- The default templates have been changed from XHTML 1.1 to HTML5 as per WHATWG recommendations.
- An ispell/aspell spellcheck menu option has been added.
- The welcome message code has been replaced with functions to make articles "sticky".
Download (0.032MB)
Added: 2007-07-28 License: GPL (GNU General Public License) Price:
822 downloads
GnomeKiSS 2.0
GnomeKiSS project is a KiSS paper doll viewer for GNOME. more>>
GnomeKiSS project is a KiSS paper doll viewer for GNOME.
GnomeKiSS is an implementation of French-KiSS for the GNOME desktop environment, using GNOME, GTK+ and the X Window System. French KiSS is an enhanced KiSS/GS for scriptable dolls, where KiSS is an abbreviation for Kisekae Set System (or something).
GnomeKiSS apparently works on plenty of Linux systems (including Debian GNU/Linux and PLD Linux) and is available as a FreeBSD port. If you dont have one of these Free operating systems I have been told that GnomeKiSS compiles and runs on Mac OS X and Sun Solaris too. It should work on any modern Unix-like system with GNOME installed but obviously I cant test them all.
Enhancements:
- GNOME 2.x conversion aiming at GNOME 2.6 and later
- Many new compiler warnings fixed, e.g. sign and const fixes
- Further changes to event handling to ensure interactivity when stressed
- Fixed snprintf() call to stay strictly within the buffer
- Still warn, but dont ignore objects declared after @EventHandler
<<lessGnomeKiSS is an implementation of French-KiSS for the GNOME desktop environment, using GNOME, GTK+ and the X Window System. French KiSS is an enhanced KiSS/GS for scriptable dolls, where KiSS is an abbreviation for Kisekae Set System (or something).
GnomeKiSS apparently works on plenty of Linux systems (including Debian GNU/Linux and PLD Linux) and is available as a FreeBSD port. If you dont have one of these Free operating systems I have been told that GnomeKiSS compiles and runs on Mac OS X and Sun Solaris too. It should work on any modern Unix-like system with GNOME installed but obviously I cant test them all.
Enhancements:
- GNOME 2.x conversion aiming at GNOME 2.6 and later
- Many new compiler warnings fixed, e.g. sign and const fixes
- Further changes to event handling to ensure interactivity when stressed
- Fixed snprintf() call to stay strictly within the buffer
- Still warn, but dont ignore objects declared after @EventHandler
Download (0.16MB)
Added: 2006-11-10 License: GPL (GNU General Public License) Price:
1079 downloads
CAM::PDF::GS 1.07
CAM::PDF::GS is a PDF graphic state. more>>
CAM::PDF::GS is a PDF graphic state.
SYNOPSIS
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $contentTree = $pdf->getPageContentTree(4);
my $gs = $contentTree->computeGS();
This class is used to represent the graphic state at a point in the rendering flow of a PDF page. Much of the functionality is actually based in the parent class, CAM::PDF::GS::NoText.
Subclasses that want to do something useful with text should override the renderText() method.
<<lessSYNOPSIS
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $contentTree = $pdf->getPageContentTree(4);
my $gs = $contentTree->computeGS();
This class is used to represent the graphic state at a point in the rendering flow of a PDF page. Much of the functionality is actually based in the parent class, CAM::PDF::GS::NoText.
Subclasses that want to do something useful with text should override the renderText() method.
Download (0.72MB)
Added: 2006-07-28 License: Perl Artistic License Price:
1184 downloads
ThingamaBlog 1.0.5
Thingamablog is a cross-platform, standalone blogging application that makes authoring and publishing your weblogs easy. more>>
Thingamablog is a cross-platform, standalone blogging application that makes authoring and publishing your weblogs almost effortless.
Unlike most blogging solutions, Thingamablog does NOT require a third-party blogging host, a cgi/php enabled web host, or a MySQL database.
In fact, all you need to setup, and manage, a blog with Thingamablog is FTP, SFTP, or network access to a web server.
Main features:
- Set up a blog in minutes via an intuitive wizard
- Maintain multiple blogs
- Effortlessly manage thousands of entries
- Dynamically update blog content
- Write entries offline (Dialup users)
- Publish your blog with a single click
- Read news with an integrated feed reader
- Make posts from your favorite feeds
- Create a unique layout with customizable templates
- Import entries from RSS/Atom feeds
- Set up flexible archiving options
- Organize your entries by category or date
- Save entries as drafts
- Define your own custom template tags
- Syndicate your blog via an RSS or Atom feed
- Ping services like weblogs.com, BlogRolling, and Blo.gs
- And much more...
<<lessUnlike most blogging solutions, Thingamablog does NOT require a third-party blogging host, a cgi/php enabled web host, or a MySQL database.
In fact, all you need to setup, and manage, a blog with Thingamablog is FTP, SFTP, or network access to a web server.
Main features:
- Set up a blog in minutes via an intuitive wizard
- Maintain multiple blogs
- Effortlessly manage thousands of entries
- Dynamically update blog content
- Write entries offline (Dialup users)
- Publish your blog with a single click
- Read news with an integrated feed reader
- Make posts from your favorite feeds
- Create a unique layout with customizable templates
- Import entries from RSS/Atom feeds
- Set up flexible archiving options
- Organize your entries by category or date
- Save entries as drafts
- Define your own custom template tags
- Syndicate your blog via an RSS or Atom feed
- Ping services like weblogs.com, BlogRolling, and Blo.gs
- And much more...
Download (3.8MB)
Added: 2005-11-29 License: GPL (GNU General Public License) Price:
1468 downloads
GeoServer 1.5.3 / 1.6.0 Beta 2
GeoServer is a web feature server to share geographic information. more>>
GeoServer project is a full transactional Java (J2EE) implementation of the OpenGIS Consortiums Web Feature Server specification, with an integrated WMS.
GeoServer is free software, available under the GPL 2.0 license.
Users who would like to access and modify their geographic data over the Internet using flexible, industry-approved standards should take a look at GeoServer or one of the existing commercial Web Feature Servers.
You can define your geoserver data directory in three ways:
1. "GEOSERVER_DATA_DIR" system property. this will most likely have come from "java -DGEOSERVER_DATA_DIR=..." or from you web containers GUI
2. "GEOSERVER_DATA_DIR" in the web.xml document:
< context-param >
< param-name >GEOSERVER_DATA_DIR< /param-name >
< param-value >c:myGeoserverData< /param-value >
< /context-param >
3. Defaults to the old behavior - ie. the application root - usually "server/geoserver" in your .WAR.
To make a new one of these data directories, just:
1. create the data directory
2. copy "data/" from an already running geoserver
3. create a "WEB-INF/" directory
5. copy "catalog.xml" and "services.xml" into the WEB-INF/ directory
Whats New in 1.6.0 Beta 2 Development Release:
- This is the second beta release in the 1.6 series of GeoServer. Besides the usual raft of bug fixes, the most notable additions are the much more configurable logging subsystem, the new connection pooling subsystem with much better control on the number of opened database connections, templated GetFeatureInfo, improvements in date/time handling in WFS 1.1, improved layer grouping, and new mash up demos with Google Map, Yahoo! Map and Microsoft Virtual Earth. The full change log for this release can be found here: http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10311&styleName=Html&version=13547 This release is based on Geotools 2.4-SNAPSHOT, tag = geoserver-1.6-beta2, revision 26251.
Whats New in 1.5.3 Stable Release:
Bug
- [GEOS-1271] - georss output does not work with shorthand, or without being url encoded
- [GEOS-1272] - georss output ignores bounding box
- [GEOS-1273] - atom rss producer should declare georss namespace mapping
- [GEOS-1278] - wfs:Delete does not work anymore with Oracle Datastore since 1.5.2
- [GEOS-1286] - Coverage configuration form allows pure SRS number to be inputed, but all of the code expects EPSG:XXXX instead
Improvement
- [GEOS-1118] - The wms-gs-1_0_1.js library doesnt take SLD parameter into account
- [GEOS-1274] - KML polygons should have borders by default (like before)
- [GEOS-1275] - Default text color for KML should be white
- [GEOS-1277] - Use 900913 for gs-wms.js, to help promote that value
<<lessGeoServer is free software, available under the GPL 2.0 license.
Users who would like to access and modify their geographic data over the Internet using flexible, industry-approved standards should take a look at GeoServer or one of the existing commercial Web Feature Servers.
You can define your geoserver data directory in three ways:
1. "GEOSERVER_DATA_DIR" system property. this will most likely have come from "java -DGEOSERVER_DATA_DIR=..." or from you web containers GUI
2. "GEOSERVER_DATA_DIR" in the web.xml document:
< context-param >
< param-name >GEOSERVER_DATA_DIR< /param-name >
< param-value >c:myGeoserverData< /param-value >
< /context-param >
3. Defaults to the old behavior - ie. the application root - usually "server/geoserver" in your .WAR.
To make a new one of these data directories, just:
1. create the data directory
2. copy "data/" from an already running geoserver
3. create a "WEB-INF/" directory
5. copy "catalog.xml" and "services.xml" into the WEB-INF/ directory
Whats New in 1.6.0 Beta 2 Development Release:
- This is the second beta release in the 1.6 series of GeoServer. Besides the usual raft of bug fixes, the most notable additions are the much more configurable logging subsystem, the new connection pooling subsystem with much better control on the number of opened database connections, templated GetFeatureInfo, improvements in date/time handling in WFS 1.1, improved layer grouping, and new mash up demos with Google Map, Yahoo! Map and Microsoft Virtual Earth. The full change log for this release can be found here: http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10311&styleName=Html&version=13547 This release is based on Geotools 2.4-SNAPSHOT, tag = geoserver-1.6-beta2, revision 26251.
Whats New in 1.5.3 Stable Release:
Bug
- [GEOS-1271] - georss output does not work with shorthand, or without being url encoded
- [GEOS-1272] - georss output ignores bounding box
- [GEOS-1273] - atom rss producer should declare georss namespace mapping
- [GEOS-1278] - wfs:Delete does not work anymore with Oracle Datastore since 1.5.2
- [GEOS-1286] - Coverage configuration form allows pure SRS number to be inputed, but all of the code expects EPSG:XXXX instead
Improvement
- [GEOS-1118] - The wms-gs-1_0_1.js library doesnt take SLD parameter into account
- [GEOS-1274] - KML polygons should have borders by default (like before)
- [GEOS-1275] - Default text color for KML should be white
- [GEOS-1277] - Use 900913 for gs-wms.js, to help promote that value
Download (20.4MB)
Added: 2007-08-15 License: GPL (GNU General Public License) Price:
501 downloads
SURVIVOR 1.0
SURVIVOR is yet another systems monitor. more>>
SURVIVOR is yet another systems monitor.
Does the world need yet another systems monitor? Well, the world has had the Backstreet Boys, N Sync, 98 Degrees, Take That, Boyzone, Westlife, 5ive, O-Town, not to mention New Kids on the Block, All-4-One, Boyz II Men, New Edition, and Menudo, so clearly there is an ability to accept and even appreciate redundancy. Not that one needs to appreciate boy bands to appreciate systems monitoring, and perhaps now would be a good time to underscore that the SURVIVOR project does not endorse or even listen to boy bands.
Differentiating systems monitors can be a lot like differentiating boy bands. At first glance, they all look alike. With careful study, however, they all still look alike, except that some have goatees and others dont. With further study, it is possible to detect different accents, but no matter how far you look you still have a boy band.
In this respect, SURVIVOR is a lot like other systems monitors. It was written because of requirements that dictated the equivalent of a boy band with two Americans, two Brits, and an Australian, two with goatees, three brunettes, and not all of them living in the same town in Florida.
Unlike most boy bands, the core of SURVIVOR is a POSIX-thread based scheduler, responsible for determining when services should be checked and when alerts should be transmitted. The scheduler should be highly scalable, although it has not yet been tested against an entire class B network.
Like almost every other package, check and alert modules may be written in any language. These modules should generally scale quite well, although specifics depend on what the module actually does.
A command line interface, web interface, and two-way messaging gateway are provided.
Unlike most boy bands, SURVIVOR is intended to be a very high quality, feature rich, package. It is unlikely to ever get airtime on TRL.
Enhancements:
- In addition to the usual bugfixes, this stabilization release adds five new check modules, a flap reporting module, and adds various improvements to the command and Web interfaces.
- This is the first release with accompanying RPMs.
<<lessDoes the world need yet another systems monitor? Well, the world has had the Backstreet Boys, N Sync, 98 Degrees, Take That, Boyzone, Westlife, 5ive, O-Town, not to mention New Kids on the Block, All-4-One, Boyz II Men, New Edition, and Menudo, so clearly there is an ability to accept and even appreciate redundancy. Not that one needs to appreciate boy bands to appreciate systems monitoring, and perhaps now would be a good time to underscore that the SURVIVOR project does not endorse or even listen to boy bands.
Differentiating systems monitors can be a lot like differentiating boy bands. At first glance, they all look alike. With careful study, however, they all still look alike, except that some have goatees and others dont. With further study, it is possible to detect different accents, but no matter how far you look you still have a boy band.
In this respect, SURVIVOR is a lot like other systems monitors. It was written because of requirements that dictated the equivalent of a boy band with two Americans, two Brits, and an Australian, two with goatees, three brunettes, and not all of them living in the same town in Florida.
Unlike most boy bands, the core of SURVIVOR is a POSIX-thread based scheduler, responsible for determining when services should be checked and when alerts should be transmitted. The scheduler should be highly scalable, although it has not yet been tested against an entire class B network.
Like almost every other package, check and alert modules may be written in any language. These modules should generally scale quite well, although specifics depend on what the module actually does.
A command line interface, web interface, and two-way messaging gateway are provided.
Unlike most boy bands, SURVIVOR is intended to be a very high quality, feature rich, package. It is unlikely to ever get airtime on TRL.
Enhancements:
- In addition to the usual bugfixes, this stabilization release adds five new check modules, a flap reporting module, and adds various improvements to the command and Web interfaces.
- This is the first release with accompanying RPMs.
Download (1.0MB)
Added: 2007-04-04 License: GPL (GNU General Public License) Price:
933 downloads
IPChains 0.5
IPChains is a Perl module to create and manipulate ipchains via Perl. more>>
IPChains is a Perl module to create and manipulate ipchains via Perl.
SYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
<<lessSYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
Download (0.050MB)
Added: 2007-05-10 License: Perl Artistic License Price:
897 downloads
CUPS-PDF 2.4.6
CUPS-PDF project is a PDF writer backend for CUPS. more>>
CUPS-PDF project is a PDF writer backend for CUPS. It is designed to produce PDF files in a heterogeneous network by providing a PDF printer on the central fileserver.
It will convert files printed to its queue in CUPS to PDF and put them in a per-user-based directory structure. It can execute post-processing scripts, e.g. to allow mailing the results to the user.
Important notes:
CUPS-PDF requires root privileges since it has to modify file ownerships. In recent distributions the "RunAsUser" option in cupsd.conf is set to "Yes" which removes these privileges. Please make sure to set "RunAsUser No" if you want to use CUPS-PDF.
make sure if any of CUPS-PDFs working directories (e.g. output) is a NFS mounted volume it is mounted without root_squash!
CUPS-PDF is known to fail if the gs (GhostScript) binary on a system is compressed by upx (Ultimate Packer for eXecutables).
if you are using SELinux make sure it does not interfere with CUPS-PDF
On MacOSX you will have to use pstopdf instead of AFPL GhostScript (see Readme).
<<lessIt will convert files printed to its queue in CUPS to PDF and put them in a per-user-based directory structure. It can execute post-processing scripts, e.g. to allow mailing the results to the user.
Important notes:
CUPS-PDF requires root privileges since it has to modify file ownerships. In recent distributions the "RunAsUser" option in cupsd.conf is set to "Yes" which removes these privileges. Please make sure to set "RunAsUser No" if you want to use CUPS-PDF.
make sure if any of CUPS-PDFs working directories (e.g. output) is a NFS mounted volume it is mounted without root_squash!
CUPS-PDF is known to fail if the gs (GhostScript) binary on a system is compressed by upx (Ultimate Packer for eXecutables).
if you are using SELinux make sure it does not interfere with CUPS-PDF
On MacOSX you will have to use pstopdf instead of AFPL GhostScript (see Readme).
Download (0.033MB)
Added: 2007-05-06 License: GPL (GNU General Public License) Price:
929 downloads
CAM::PDF::GS::NoText 1.07
CAM::PDF::GS::NoText is a PDF graphic state. more>>
CAM::PDF::GS::NoText is a PDF graphic state.
SYNOPSIS
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $contentTree = $pdf->getPageContentTree(4);
my $gs = $contentTree->computeGS(1);
This class is used to represent the graphic state at a point in the rendering flow of a PDF page. This does not include the graphics state for text blocks. That functionality is in the subclass, CAM::PDF::GS.
FUNCTIONS
$pkg->new($hashref)
Create a new instance, setting all state values to their defaults. Stores a reference to $hashref and sets the property $hashref-{fm}> to undef.
$self->clone()
Duplicate the instance.
CONVERSION FUNCTIONS
$self->applyMatrix($m1, $m2)
Apply $m1 to $m2, save in $m2.
$self->dot($matrix, $x, $y)
Compute the dot product of a position against the coordinate matrix.
$self->userToDevice($x, $y)
Convert user coordinates to device coordinates.
$self->getCoords($node)
Computes device coordinates for the specified node. This implementation handles line-drawing nodes.
$self->nodeType($node)
Returns one of block, path, paint, text or (the fallback case) op for the type of the specified node.
<<lessSYNOPSIS
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $contentTree = $pdf->getPageContentTree(4);
my $gs = $contentTree->computeGS(1);
This class is used to represent the graphic state at a point in the rendering flow of a PDF page. This does not include the graphics state for text blocks. That functionality is in the subclass, CAM::PDF::GS.
FUNCTIONS
$pkg->new($hashref)
Create a new instance, setting all state values to their defaults. Stores a reference to $hashref and sets the property $hashref-{fm}> to undef.
$self->clone()
Duplicate the instance.
CONVERSION FUNCTIONS
$self->applyMatrix($m1, $m2)
Apply $m1 to $m2, save in $m2.
$self->dot($matrix, $x, $y)
Compute the dot product of a position against the coordinate matrix.
$self->userToDevice($x, $y)
Convert user coordinates to device coordinates.
$self->getCoords($node)
Computes device coordinates for the specified node. This implementation handles line-drawing nodes.
$self->nodeType($node)
Returns one of block, path, paint, text or (the fallback case) op for the type of the specified node.
Download (0.72MB)
Added: 2006-07-28 License: Perl Artistic License Price:
1183 downloads
Hamster Font Manager 1.02
Hamster Font Manager is an easy GUI to manage fonts for X11/GS/TeX. more>>
HFM is a font manager for Unix systems. With it you can control the avaliability of fonts in all of the supported applications from a central place. Currently included are modules to support:
* X-Window
* Ghostscript
* TeX
A PostScript module handles PS Fonts. Other fonts remain untouched by this program.
HFM is distributed under the GPL (GNU Public License).
<<less* X-Window
* Ghostscript
* TeX
A PostScript module handles PS Fonts. Other fonts remain untouched by this program.
HFM is distributed under the GPL (GNU Public License).
Download (0.23MB)
Added: 2005-04-21 License: GPL (GNU General Public License) Price:
1647 downloads
Efax-gtk 3.0.15
Efax-gtk provides a GUI frontend for the efax fax program. more>>
Efax-gtk is a GUI front end for the efax fax program. Efax-gtk can be used to send and receive faxes with a fax modem, and to view, print and manage faxes received.
It also has a socket interface to provide a "virtual printer" for sending faxes from word processors and similar programs, and can automatically e-mail a received fax to a designated user, and automatically print a received fax.
To compile and run efax-gtk-3.*, the GTK+-2.* and libsigc++ libraries must be installed. GTK+-2.* comes with Gnome-2. The README file referred to above provides further information about required versions of libsigc++, and it can be downloaded here: libsigc++ . The program is known to compile with gcc-2.95.3, gcc-3.2, gcc-3.3, gcc-3.4 and gcc-4.0, and should compile with any other standards compliant compiler.
To use the program you must also have ghostscript (gs) installed (this is included in practically all Linux/Unix-type distributions). You do not need to separately download and install efax - the standard efax-gtk packages in the Download section below include the necessary efax source code.
To use the supplied mail_fax script (which will automatically mail a received fax to a specified user), you will also need nail. This can be obtained here, if it is not included in your distribution: nail
Version 3.* of efax-gtk does not use gtkmm. That dependency was removed on going from version 2.2.16 to version 3.0.0. Functionally, version 2.2.16 is identical to version 3.0.0.
Enhancements:
- A provision for printing and viewing the logfile has been added.
- The Greek translation has been updated.
- Other minor changes and bugfixes were made.
<<lessIt also has a socket interface to provide a "virtual printer" for sending faxes from word processors and similar programs, and can automatically e-mail a received fax to a designated user, and automatically print a received fax.
To compile and run efax-gtk-3.*, the GTK+-2.* and libsigc++ libraries must be installed. GTK+-2.* comes with Gnome-2. The README file referred to above provides further information about required versions of libsigc++, and it can be downloaded here: libsigc++ . The program is known to compile with gcc-2.95.3, gcc-3.2, gcc-3.3, gcc-3.4 and gcc-4.0, and should compile with any other standards compliant compiler.
To use the program you must also have ghostscript (gs) installed (this is included in practically all Linux/Unix-type distributions). You do not need to separately download and install efax - the standard efax-gtk packages in the Download section below include the necessary efax source code.
To use the supplied mail_fax script (which will automatically mail a received fax to a specified user), you will also need nail. This can be obtained here, if it is not included in your distribution: nail
Version 3.* of efax-gtk does not use gtkmm. That dependency was removed on going from version 2.2.16 to version 3.0.0. Functionally, version 2.2.16 is identical to version 3.0.0.
Enhancements:
- A provision for printing and viewing the logfile has been added.
- The Greek translation has been updated.
- Other minor changes and bugfixes were made.
Download (0.87MB)
Added: 2007-07-15 License: GPL (GNU General Public License) Price:
510 downloads
GoldSeeker 0.32
GoldSeeker provides a small formatted data extraction application. more>>
GoldSeeker provides a small formatted data extraction application.
It was built to extract formatted data from HTML files, but can be used with all kind of files.
Its behaviour is defined by a rule-based configuration file. It can process files on the local server, or directly get web pages via http://.
GoldSeeker is still in development, its neither whole nor stable; nevertheless it can already be used for simple extractions.
Use
Edit GSParser.php and set your mysql connection parameters (if you dont want to use database export just comment out the "dbConnect();" line). Check that the include paths are correct, and run sample.php.
GS parameters:
include(GSparser.php);
$gs = new GSParser(config file path, data source path, data source type);
$gs->parse();
?>
Data source type: singleFile for... well, a single file; listOfFiles for an array of filenames; directory for a whole directory. Source path : file path or array of file paths.
Enhancements:
- Corrected some linkVariableValues bugs
- Optional (non-mandatory) variables support
- Added a set of unit tests to avoid further regressions (they also serve as a set of samples)
<<lessIt was built to extract formatted data from HTML files, but can be used with all kind of files.
Its behaviour is defined by a rule-based configuration file. It can process files on the local server, or directly get web pages via http://.
GoldSeeker is still in development, its neither whole nor stable; nevertheless it can already be used for simple extractions.
Use
Edit GSParser.php and set your mysql connection parameters (if you dont want to use database export just comment out the "dbConnect();" line). Check that the include paths are correct, and run sample.php.
GS parameters:
include(GSparser.php);
$gs = new GSParser(config file path, data source path, data source type);
$gs->parse();
?>
Data source type: singleFile for... well, a single file; listOfFiles for an array of filenames; directory for a whole directory. Source path : file path or array of file paths.
Enhancements:
- Corrected some linkVariableValues bugs
- Optional (non-mandatory) variables support
- Added a set of unit tests to avoid further regressions (they also serve as a set of samples)
Download (0.017MB)
Added: 2007-01-31 License: LGPL (GNU Lesser General Public License) Price:
999 downloads
a2ping.pl 2.77p
a2ping.pl is a tool to convert between PS, EPS, and PDF and other page description formats. more>>
a2ping.pl is a small tool written in Perl, used to convert between PS, EPS, and PDF and other page description formats.
a2ping is a Unix command line utility that converts many raster image and vector graphics formats to EPS or PDF and other page description formats.
Accepted input file formats are: PS (PostScript), EPS, PDF, PNG, JPEG, TIFF, PNM, BMP, GIF, LBM, XPM, PCX, and TGA.
Accepted output formats are: EPS, PCL5, PDF, PDF1, PBM, PGM, PPM, PS, markedEPS, markedPS, PNG, XWD, BMP, TIFF, JPEG, GIF, and XPM. a2ping delegates the low-level work to Ghostscript (GS), pdftops, and sam2p.
Only the first page of PDF and PS files are converted.
<<lessa2ping is a Unix command line utility that converts many raster image and vector graphics formats to EPS or PDF and other page description formats.
Accepted input file formats are: PS (PostScript), EPS, PDF, PNG, JPEG, TIFF, PNM, BMP, GIF, LBM, XPM, PCX, and TGA.
Accepted output formats are: EPS, PCL5, PDF, PDF1, PBM, PGM, PPM, PS, markedEPS, markedPS, PNG, XWD, BMP, TIFF, JPEG, GIF, and XPM. a2ping delegates the low-level work to Ghostscript (GS), pdftops, and sam2p.
Only the first page of PDF and PS files are converted.
Download (0.029MB)
Added: 2006-10-04 License: GPL (GNU General Public License) Price:
1120 downloads
Pod::HtmlEasy 0.091
Pod::HtmlEasy Perl module can generate personalized HTML from PODs. more>>
Pod::HtmlEasy Perl module can generate personalized HTML from PODs. By default the HTML generated is similar to the CPAN site style for module documentation.
SYNOPSIS
Simple usage:
my $podhtml = Pod::HtmlEasy- >new() ;
my $html = $podhtml- >pod2html( test.pod ) ;
print "$htmln" ;
Complete usage:
use Pod::HtmlEasy ;
Create the object and set local events subs:
Note that these are all the events, and examples of how to implement
them. All of these events are, of course, already implemented, so if
the actions provided are adequate, no local subs are required.
The actual implementation of on_head1 is somewhat more complex, to
provide for the detection of the module title and insertion of the
uparrow.
my $podhtml = Pod::HtmlEasy- >new (
on_B = > sub {
my ( $this , $txt ) = @_ ;
return "< b >$txt< /b >" ;
} ,
on_C = > sub {
my ( $this , $txt ) = @_ ;
return "< font face=Courier New >$txt< /font >" ;
} ,
on_E = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s{^&}{}smx;
$txt =~ s{;$}{}smx;
$txt = qq{#$txt} if $txt =~ /^d+$/ ;
return qq{ &$txt;};
} ,
on_F = > sub {
my ( $this , $txt ) = @_ ;
return "< b >< i >$txt< /i >< /b >" ;
} ,
on_I = > sub {
my ( $this , $txt ) = @_ ;
return "< i >$txt< /i >" ;
} ,
on_L = > sub {
my ( $this , $L , $text, $page , $section, $type ) = @_ ;
if ( $type eq pod ) {
$section = defined $section ? "#$section" : ;
$page = unless defined $page;
return "< i >< a href=http://search.cpan.org/perldoc?$page$section >$text< /a >< /i >" ;
}
elsif( $type eq man ) { return "< i >$text< /i >" ;}
elsif( $type eq url ) { return "< a href=$page target=_blank >$text< /a >" ;}
} ,
on_S = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s/n/ /gs ;
return $txt ;
} ,
on_X = > sub { return ; } ,
on_Z = > sub { return ; } ,
on_back = > sub {
my $this = shift ;
return "< /ul >$NL" ;
} ,
on_begin = > sub {
my $this = shift ;
my ( $txt , $a_name ) = @_ ;
$this- >{IN_BEGIN} = 1;
return ;
} ,
on_error = > sub {
my ( $this , $txt ) = @_ ;
return qq{< !-- POD_ERROR: $txt -- >} ;
} ,
on_end = > sub {
my $this = shift ;
my ( $txt , $a_name ) = @_ ;
delete $this- >{IN_BEGIN};
return ;
} ,
on_for = > sub { return ;} ,
on_head1 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h1 >$txt< /h1 >$NL$NL} ;
} ,
on_head2 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h2 >$txt< /h2 >$NL$NL} ;
} ,
on_head3 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h3 >$txt< /h3 >$NL$NL} ;
} ,
on_head4 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h4 >$txt< /h4 >$NL$NL} ;
} ,
on_include = > sub {
my ( $this , $file ) = @_ ;
return qq{./$file} ;
} ,
on_item = > sub {
my ( $this , $txt ) = @_ ;
return qq{< li >$txt< /li >$NL} ;
} ,
on_index_node_start = > sub {
my ( $this , $txt , $a_name , $has_children ) = @_ ;
my $ret = qq{< li >< a href=#$a_name >$txt< /a >$NL} ;
$ret .= q{$NL< ul >$NL} if $has_children ;
return $ret ;
} ,
on_index_node_end = > sub {
my $this = shift ;
my ( $txt , $a_name , $has_children ) = @_ ;
my $ret = $has_children ? q{< /ul >} : $EMPTY ;
return $ret ;
} ,
on_over = > sub {
my ( $this , $level ) = @_ ;
return qq{< ul >$NL? ;
} ,
on_textblock = > sub {
my ( $this , $txt ) = @_ ;
return if exists $this- >{IN_BEGIN};
return qq{< p >$txt< /p >$NL} ;
} ,
on_uri = > sub {
my ( $this , $uri ) = @_ ;
return qq{< a href=$uri target=_blank >$uri< /a >{ ;
} ,
on_verbatim = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s{(A$NL)*(A$NL)z}{}gsmx;
return unless length $txt;
return qq{< pre >$txt< /pre >$NL} ;
} ,
) ;
## Convert to HTML:
my $html = $podhtml- >pod2html(test.pod ,
test.html ,
title = > POD::Test ,
body = > { bgcolor = > #CCCCCC } ,
css = > test.css ,
) ;
<<lessSYNOPSIS
Simple usage:
my $podhtml = Pod::HtmlEasy- >new() ;
my $html = $podhtml- >pod2html( test.pod ) ;
print "$htmln" ;
Complete usage:
use Pod::HtmlEasy ;
Create the object and set local events subs:
Note that these are all the events, and examples of how to implement
them. All of these events are, of course, already implemented, so if
the actions provided are adequate, no local subs are required.
The actual implementation of on_head1 is somewhat more complex, to
provide for the detection of the module title and insertion of the
uparrow.
my $podhtml = Pod::HtmlEasy- >new (
on_B = > sub {
my ( $this , $txt ) = @_ ;
return "< b >$txt< /b >" ;
} ,
on_C = > sub {
my ( $this , $txt ) = @_ ;
return "< font face=Courier New >$txt< /font >" ;
} ,
on_E = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s{^&}{}smx;
$txt =~ s{;$}{}smx;
$txt = qq{#$txt} if $txt =~ /^d+$/ ;
return qq{ &$txt;};
} ,
on_F = > sub {
my ( $this , $txt ) = @_ ;
return "< b >< i >$txt< /i >< /b >" ;
} ,
on_I = > sub {
my ( $this , $txt ) = @_ ;
return "< i >$txt< /i >" ;
} ,
on_L = > sub {
my ( $this , $L , $text, $page , $section, $type ) = @_ ;
if ( $type eq pod ) {
$section = defined $section ? "#$section" : ;
$page = unless defined $page;
return "< i >< a href=http://search.cpan.org/perldoc?$page$section >$text< /a >< /i >" ;
}
elsif( $type eq man ) { return "< i >$text< /i >" ;}
elsif( $type eq url ) { return "< a href=$page target=_blank >$text< /a >" ;}
} ,
on_S = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s/n/ /gs ;
return $txt ;
} ,
on_X = > sub { return ; } ,
on_Z = > sub { return ; } ,
on_back = > sub {
my $this = shift ;
return "< /ul >$NL" ;
} ,
on_begin = > sub {
my $this = shift ;
my ( $txt , $a_name ) = @_ ;
$this- >{IN_BEGIN} = 1;
return ;
} ,
on_error = > sub {
my ( $this , $txt ) = @_ ;
return qq{< !-- POD_ERROR: $txt -- >} ;
} ,
on_end = > sub {
my $this = shift ;
my ( $txt , $a_name ) = @_ ;
delete $this- >{IN_BEGIN};
return ;
} ,
on_for = > sub { return ;} ,
on_head1 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h1 >$txt< /h1 >$NL$NL} ;
} ,
on_head2 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h2 >$txt< /h2 >$NL$NL} ;
} ,
on_head3 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h3 >$txt< /h3 >$NL$NL} ;
} ,
on_head4 = > sub {
my ( $this , $txt , $a_name ) = @_ ;
return qq{< a name=$a_name >< /a >< h4 >$txt< /h4 >$NL$NL} ;
} ,
on_include = > sub {
my ( $this , $file ) = @_ ;
return qq{./$file} ;
} ,
on_item = > sub {
my ( $this , $txt ) = @_ ;
return qq{< li >$txt< /li >$NL} ;
} ,
on_index_node_start = > sub {
my ( $this , $txt , $a_name , $has_children ) = @_ ;
my $ret = qq{< li >< a href=#$a_name >$txt< /a >$NL} ;
$ret .= q{$NL< ul >$NL} if $has_children ;
return $ret ;
} ,
on_index_node_end = > sub {
my $this = shift ;
my ( $txt , $a_name , $has_children ) = @_ ;
my $ret = $has_children ? q{< /ul >} : $EMPTY ;
return $ret ;
} ,
on_over = > sub {
my ( $this , $level ) = @_ ;
return qq{< ul >$NL? ;
} ,
on_textblock = > sub {
my ( $this , $txt ) = @_ ;
return if exists $this- >{IN_BEGIN};
return qq{< p >$txt< /p >$NL} ;
} ,
on_uri = > sub {
my ( $this , $uri ) = @_ ;
return qq{< a href=$uri target=_blank >$uri< /a >{ ;
} ,
on_verbatim = > sub {
my ( $this , $txt ) = @_ ;
$txt =~ s{(A$NL)*(A$NL)z}{}gsmx;
return unless length $txt;
return qq{< pre >$txt< /pre >$NL} ;
} ,
) ;
## Convert to HTML:
my $html = $podhtml- >pod2html(test.pod ,
test.html ,
title = > POD::Test ,
body = > { bgcolor = > #CCCCCC } ,
css = > test.css ,
) ;
Download (0.025MB)
Added: 2007-07-23 License: Perl Artistic License Price:
823 downloads
Parse::Eyapp 1.069577
Parse::Eyapp module contains extensions for Parse::Yapp. more>>
Parse::Eyapp module contains extensions for Parse::Yapp.
SYNOPSIS
use strict;
use Parse::Eyapp;
use Parse::Eyapp::Treeregexp;
sub TERMINAL::info {
$_[0]{attr}
}
my $grammar = q{
%right = # Lowest precedence
%left - + # + and - have more precedence than = Disambiguate a-b-c as (a-b)-c
%left * / # * and / have more precedence than + Disambiguate a/b/c as (a/b)/c
%left NEG # Disambiguate -a-b as (-a)-b and not as -(a-b)
%tree # Let us build an abstract syntax tree ...
%%
line: exp { $_[1] } /* list of expressions separated by ; */
;
/* The %name directive defines the name of the class to which the node being built belongs */
exp:
%name NUM NUM | %name VAR VAR | %name ASSIGN VAR = exp
| %name PLUS exp + exp | %name MINUS exp - exp | %name TIMES exp * exp
| %name DIV exp / exp | %name UMINUS - exp %prec NEG
| ( exp ) { $_[2] } /* Let us simplify a bit the tree */
;
%%
sub _Error { die "Syntax error near ".($_[0]->YYCurval?$_[0]->YYCurval:"end of file")."n" }
sub _Lexer {
my($parser)=shift; # The parser object
for ($parser->YYData->{INPUT}) { # Topicalize
m{Gs+}gc;
$_ eq and return(,undef);
m{G([0-9]+(?:.[0-9]+)?)}gc and return(NUM,$1);
m{G([A-Za-z][A-Za-z0-9_]*)}gc and return(VAR,$1);
m{G(.)}gcs and return($1,$1);
}
}
sub Run {
my($self)=shift;
$self->YYParse( yylex => &_Lexer, yyerror => &_Error, );
}
}; # end grammar
our (@all, $uminus);
Parse::Eyapp->new_grammar( # Create the parser package/class
input=>$grammar,
classname=>Calc, # The name of the package containing the parser
firstline=>7 # String $grammar starts at line 7 (for error diagnostics)
);
my $parser = Calc->new(); # Create a parser
$parser->YYData->{INPUT} = "2*-3+b*0;--2n"; # Set the input
my $t = $parser->Run; # Parse it!
local $Parse::Eyapp::Node::INDENT=2;
print "Syntax Tree:",$t->str;
# Let us transform the tree. Define the tree-regular expressions ..
my $p = Parse::Eyapp::Treeregexp->new( STRING => q{
{ # Example of support code
my %Op = (PLUS=>+, MINUS => -, TIMES=>*, DIV => /);
}
constantfold: /TIMES|PLUS|DIV|MINUS/:bin(NUM($x), NUM($y))
=> {
my $op = $Op{ref($bin)};
$x->{attr} = eval "$x->{attr} $op $y->{attr}";
$_[0] = $NUM[0];
}
uminus: UMINUS(NUM($x)) => { $x->{attr} = -$x->{attr}; $_[0] = $NUM }
zero_times_whatever: TIMES(NUM($x), .) and { $x->{attr} == 0 } => { $_[0] = $NUM }
whatever_times_zero: TIMES(., NUM($x)) and { $x->{attr} == 0 } => { $_[0] = $NUM }
},
OUTPUTFILE=> main.pm
);
$p->generate(); # Create the tranformations
$t->s($uminus); # Transform UMINUS nodes
$t->s(@all); # constant folding and mult. by zero
local $Parse::Eyapp::Node::INDENT=0;
print "nSyntax Tree after transformations:n",$t->str,"n";
<<lessSYNOPSIS
use strict;
use Parse::Eyapp;
use Parse::Eyapp::Treeregexp;
sub TERMINAL::info {
$_[0]{attr}
}
my $grammar = q{
%right = # Lowest precedence
%left - + # + and - have more precedence than = Disambiguate a-b-c as (a-b)-c
%left * / # * and / have more precedence than + Disambiguate a/b/c as (a/b)/c
%left NEG # Disambiguate -a-b as (-a)-b and not as -(a-b)
%tree # Let us build an abstract syntax tree ...
%%
line: exp { $_[1] } /* list of expressions separated by ; */
;
/* The %name directive defines the name of the class to which the node being built belongs */
exp:
%name NUM NUM | %name VAR VAR | %name ASSIGN VAR = exp
| %name PLUS exp + exp | %name MINUS exp - exp | %name TIMES exp * exp
| %name DIV exp / exp | %name UMINUS - exp %prec NEG
| ( exp ) { $_[2] } /* Let us simplify a bit the tree */
;
%%
sub _Error { die "Syntax error near ".($_[0]->YYCurval?$_[0]->YYCurval:"end of file")."n" }
sub _Lexer {
my($parser)=shift; # The parser object
for ($parser->YYData->{INPUT}) { # Topicalize
m{Gs+}gc;
$_ eq and return(,undef);
m{G([0-9]+(?:.[0-9]+)?)}gc and return(NUM,$1);
m{G([A-Za-z][A-Za-z0-9_]*)}gc and return(VAR,$1);
m{G(.)}gcs and return($1,$1);
}
}
sub Run {
my($self)=shift;
$self->YYParse( yylex => &_Lexer, yyerror => &_Error, );
}
}; # end grammar
our (@all, $uminus);
Parse::Eyapp->new_grammar( # Create the parser package/class
input=>$grammar,
classname=>Calc, # The name of the package containing the parser
firstline=>7 # String $grammar starts at line 7 (for error diagnostics)
);
my $parser = Calc->new(); # Create a parser
$parser->YYData->{INPUT} = "2*-3+b*0;--2n"; # Set the input
my $t = $parser->Run; # Parse it!
local $Parse::Eyapp::Node::INDENT=2;
print "Syntax Tree:",$t->str;
# Let us transform the tree. Define the tree-regular expressions ..
my $p = Parse::Eyapp::Treeregexp->new( STRING => q{
{ # Example of support code
my %Op = (PLUS=>+, MINUS => -, TIMES=>*, DIV => /);
}
constantfold: /TIMES|PLUS|DIV|MINUS/:bin(NUM($x), NUM($y))
=> {
my $op = $Op{ref($bin)};
$x->{attr} = eval "$x->{attr} $op $y->{attr}";
$_[0] = $NUM[0];
}
uminus: UMINUS(NUM($x)) => { $x->{attr} = -$x->{attr}; $_[0] = $NUM }
zero_times_whatever: TIMES(NUM($x), .) and { $x->{attr} == 0 } => { $_[0] = $NUM }
whatever_times_zero: TIMES(., NUM($x)) and { $x->{attr} == 0 } => { $_[0] = $NUM }
},
OUTPUTFILE=> main.pm
);
$p->generate(); # Create the tranformations
$t->s($uminus); # Transform UMINUS nodes
$t->s(@all); # constant folding and mult. by zero
local $Parse::Eyapp::Node::INDENT=0;
print "nSyntax Tree after transformations:n",$t->str,"n";
Download (0.36MB)
Added: 2007-06-27 License: Perl Artistic License Price:
849 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 gs boyz 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