S-Link-S Calculator incorporates IBM's XML4J XML parser, Java Edition, and OROMatcher 1.1. The readme's for these products are reproduced below.
For Installation, read installation.html.
Use of S-Link-S Calculator is subject to Openly's Community Source License Agreement.
Send all comments, corrections, questions etc, to slinks@openly.com
------------------------------------------------------------------------------
IMPORTANT:
o Users of Symantec's Visual Cafe should DISABLE array bounds checking in
the runtime environment when using Perl5StreamInput. Perl5StreamInput
sometimes generates ArrayIndexOutOfBoundsExceptions itself and handles
them itself. This causes problems with Symantec's Visual Cafe if
array bounds checking is enabled (the default) because Visual Cafe will
intercept the exceptions itself.
o Users of IBM's Visual Age for Java will find they cannot import the
classes into the repository. IBM is working on fixing this problem.
------------------------------------------------------------------------------
Please read the license agreement in the file OROLicense.html before
using the package. The terms are essentially that you can use the
product without fee to write new software, but you can't distribute
OROMatcher(TM) as an independent software unit without first negotiating
a licensing agreement with ORO, Inc. In other words, you can't bundle
OROMatcher(TM) with a set of development tools, but you can distribute
it as part of your Java text editor that uses OROMatcher(TM) to provide
a search feature for the editor. Please read the license agreement for
the exact details.
This is the 1.1 Beta 3 version of OROMatcher(TM), a Perl5 compatible
regular expression library from ORO, Inc.
The user's guide is out of date right now. It will be updated
by the final release of OROMatcher(TM) 1.1.
The oroLogo.gif file in the images directory, is Copyright 1997 by ORO, Inc. All rights reserved.
Send all bug reports to bugs@oroinc.com.
Send all questions about how to use the OROMatcher(TM) to support@oroinc.com.
Send all suggestions you may have about what you'd like to see in future
releases to suggestions@oroinc.com.
You can get the latest information about OROMatcher(TM) and other
ORO products from the ORO, Inc. web site at http://www.oroinc.com/
------------------------------------------------------------------------------
Changes to OROMatcher:
version 1.1
o Works with Java 1.2
version 1.1b3
o Added Substitution interface as well as StringSubstitution and
Perl5Substitution classes implementing the interface. The string
only substitute methods in Util are now deprecated. You should use
use the new substitute methods taking a Substitution as an argument.
Use StringSubstitution when you don't need to perform match
interpolation and use Perl5Substitution when you want to perform
interpolation. You can create your own Substitution implementations
to make substitutions a function of a match.
o Added READ_ONLY_MASK compilation option to Perl5Compiler to better
support multi-threaded applications. If you use the READ_ONLY_MASK
option, the resulting Perl5Pattern can be safely shared among
multiple Perl5Matcher instances in separate threads.
o Made some miscellaneous performance improvements.
o Perl5Pattern now implements the Cloneable interface so that you
may clone pattern instead of compiling a new one if you desire
a duplicate copy.
version 1.1b2
o Removed Perl5ReaderInput and deprecation of Perl5StreamInput.
Instead added two constructors to Perl5ReaderInput which
would accept an InputStream and renamed the class Perl5StreamInput.
This maintains compatibility with old code while at the same time
adding the benefits of searching Reader instances.
o Changed streamInputExample.java back to use Perl5StreamInput
version 1.1b1
o Added Perl5ReaderInput which supplants Perl5StreamInput.
o Deprecated Perl5StreamInput.
o Made Perl5Pattern implement the serializable interface.
Serialized Perl5Patterns from the 1.1 beta releases will NOT
be compatible with the final 1.1 release because we are changing
some of the fields in Perl5Pattern during the beta-test process.
o \s now corresponds to Character.isWhitespace() rather than
Character.isSpace(), which makes it fully Unicode friendly.
o Changed the example streamInputExample.java to use
Perl5ReaderInput.
version 1.0.7
o Added a quotemeta(String pattern) to Perl5Compiler which is
analogous to the Perl quotmeta builtin function. It became clear
developers wanted this to make it easier to take user input from
a GUI and interpret it literally rather than as a regular expression.
o Fixed a bug where \00 and \000 occuring in a pattern would make
Perl5Compiler.compile() enter an infinite loop. Few people
(including ourselves) use \00 and \000 or we would have caught
this sooner. Thanks to Jeffrey Friedl (author of Mastering Regular
Expressions) for catching this one.
o Made a change to Perl5Compiler.compile()'s handling of
backreferences. Previously, Perl5Compiler would allow an expression
such as a(abc)\2defg because Perl would allow it. However, this
expression will cause a runtime failure during matching. In Perl,
the expression will actually NEVER match anything even though it
is accepted. Rather than accept the expression, Perl5Compiler
now rejects the expression by throwing a MalformedPatternException.
The problem with the expression is that there is a backreference
to a set of parentheses BEFORE those parentheses occur in the
expression. For backreferences greater than \9 in these situations,
the backreference is treated as an octal character. But those
less than or equal to 9 are always supposed to be interpreted as
backreferences (except for \0 which is always the null character).
o The streamInputExample.txt file for the streamInputExample.java
example program had been inadvertently left out of some earlier
distributions. It's back in now.
version 1.0.6
o Made some performance optimizations to the Perl5Matcher matches()
methods to make them faster.
o Added a set of matchesPrefix() methods to facilitate certain
tokenizing applications. Because any regular expression matching
engine that is capable of determining an exact match must also
be capable of determining a prefix match, these methods were added
to the PatternMatcher interface, rather than making them unique
to Perl5Matcher. This feature first appeared in the AwkMatcher
class from AwkTools 1.0b2, and we decided to move it into OROMatcher
based on your suggestions.
o Added a new example, prefixExample, to illustrate a use of
the matchesPrefix() method.
o Moved examples/ directory into the main distribution directory.
o Added charAt() and substring() convenience methods to
PatternMatcherInput. These are more efficient than calling
toString() first and then performing the operation.
version 1.0.5
o Added preMatch(), postMatch(), match(), getMatchBeginOffset(),
getMatchEndOffset() and setMatchOffsets() methods to
PatternMatcherInput. The preMatch(), postMatch(), and match()
methods are convenience methods provided as a result of the
addition of the match offset methods which were a necessary addition
so PatternMatcherInput could properly preserve state across
consecutive matches with the PatternMatcher contains() method.
Previous to this change, certain null string matches could
result in unexpected behavior across consecutive matches. For
example, given the expression (.*?)(?=<<) and the input mm<<mmm<<
consecutive contains matches would produce 4 results:
mm, null string, <mmm, and null string
This was incorrect. With the new changes, only two matches are
produced:
mm and <<mmm<<
As a side note, Perl5.003 and Perl5.004_03 also treat this case
incorrectly (and differently than each other). For the curious,
the Perl5 equivalent of using PatternMatcherInput and Perl5Matcher
contains() in a while loop is:
while($input =~ m/pattern/g) {
...
}
Although our goal is to exactly reproduce the behavior of Perl5,
in instances where Perl5 itself is in error, we seek to provide
the correct behavior in OROMatcher.
We thank David Parker for reporting this discrepancy and
We are submitting a report about this problem to the Perl
maintainers.
o Made an analogous, but API-invisible, state preserving change in
Perl5StreamInput so that consecutive matches involving null
string matches behave properly in all cases.
version 1.0.4
o Corrected behavior of MatchResult instances produced by
Perl5Matcher. group() is defined as returning null and the
offset methods (begin(), end(), beginOffset(), endOffset())
are defined as returning -1 if a parenthesized group is never
matched. The MatchResult produced by Perl5Matcher (actually
a hidden class called Perl5MatchResult) was return the null
string ("") and 0 instead of null and -1 in for this particular
case. This made it impossible to verify a particular parenthesized
group of a regular expession had been matched. The latest release
fixes this discrepancy. The behavior specified in the MatchResult
documentation is now followed to the letter.
o Clarified documentation for Util.split(), explaining the one
way in which it differs from the Perl split() method. To obtain
exact Perl split() behavior, you should use PerlTools.
o Added compile() methods taking option bitmask into PatternCompiler
interface (up to now they were methods specific to Perl5Compiler).
o Added getOptions() to Pattern interface (and Perl5Pattern) so you
can recover the options used to compile the pattern.
o Added getBuffer() method to PatternMatcherInput so that users
can access the PatternMatcherInput buffer if they want to create
their own PatternMatcher/PatternCompiler/Pattern implementations.
o Fixed toString() method in PatternMatcherInput. It now returns
the input defined by the begin and end offsets of the
PatternMatcherInput object rather than the entire input buffer.
version 1.0.3
o Fixed bug in Perl5StreamInput that could cause a
StringIndexOutOfBoundsException to be thrown in some unusual cases.
o Fixed documentation errors indicating that the . metacharacter
never matched the newline character. The actual behavior is that
. matches newlines when matches are performed in singleline mode
(i.e., compiled with Perl5Compiler.SINGLELINE_MASK).
version 1.0.2
o Fixed a bug where the - character occurring at the beginning
of a character set would not compile correctly. A - escaped with
a backslash or a - character at the end of a character set would
always compile and match correctly. In other words [-0-9]* would not
compile but [\-0-9]* and [0-9-] would compile and match correctly.
version 1.0.1
o Fixed a bug in Perl5StreamInput buffering that would cause the
Perl5Matcher contains(Perl5StreamInput, Perl5Pattern) method
to return incorrect matches in unusual circumstances.
LICENSE AGREEMENT FOR XML4J: --------------------------------------------------------------------------------
IBM ALPHAWORKS LICENSE AGREEMENT PLEASE READ THIS IBM ALPHAWORKS LICENSE AGREEMENT (CALLED THE "AGREEMENT") CAREFULLY. YOU MUST AGREE TO THE FOLLOWING TERMS AND CONDITIONS BY ELECTRONICALLY CHECKING THE BOX MARKED "I ACCEPT" BEFORE INSTALLING THE SOFTWARE. IF YOU DO NOT AGREE TO THESE TERMS AND CONDITIONS, YOU MAY NOT INSTALL OR USE THE SOFTWARE.
NOTICE: The Software that is made available through the alphaWorks project is not generally available software. It has not undergone testing and may contain errors. It may not function properly and is subject to change or withdrawal at any time. No support or maintenance is provided with this Software. DO NOT INSTALL THIS SOFTWARE IF YOU ARE NOT ACCUSTOMED TO USING EXPERIMENTAL SOFTWARE.
1. Ownership and License. The Software is owned by International Business Machines Corporation or one of its subsidiaries ("IBM") and is copyrighted and licensed, not sold.
IBM grants you a world-wide, non-exclusive, non-transferable, royalty-free copyright license to: 1) download, reproduce and create derivative works from the object code and source code versions of the Software; and 2) distribute the Software and derivative works thereof, in object code only, and only when you provide some "value-add" with the Software. Examples of value-add would be other software or hardware products. No license to any other IBM intellectual property is granted hereunder.
IBM wishes to continually improve upon the Software. You agree to provide to IBM a copy of any modifications to the Software that you develop or otherwise receive ("Software Modifications") by sending a copy of all such Software Modifications, in source code form, to: xml4j@us.ibm.com. You hereby grant to IBM a world-wide, non-exclusive, non-transferable, royalty-free license to execute, reproduce, create derivative works from and distribute the Software Modifications and derivative works thereof.
2. Termination In the event a claim arises with respect to the Software, IBM may request, upon thirty (30) days notice that you discontinue further distribution of the Software and that you delete or destroy all copies of the Software you possess (except for one copy that may be kept in your archives). You agree that you will comply with such a request. Any licenses to the Software that you granted to your customers prior to such termination will continue to be in effect following such termination.
3. Warranty Disclaimer and Limitation of Liability IBM licenses the Software to you on an "AS IS" basis, without warranty of any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES OR CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using this Software and assume all risks associated with the use of this Software, including but not limited to the risks of program errors, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. Some jurisdictions do not allow for the exclusion or limitation of implied warranties, so the above limitations or exclusions may not apply to you.
IBM WILL NOT BE LIABLE FOR ANY DIRECT DAMAGES OR FOR ANY SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES OR FOR ANY ECONOMIC CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF IBM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IBM will not be liable for the loss of, or damage to, your records or data, the records or data of any third party, or any damages claimed by you based on a third party claim. Some jurisdictions do not allow for the exclusion or limitation of incidental or consequential damages, so the above limitations or exclusions may not apply to you.
You agree to distribute the Software and any derivative works thereof under a license agreement that: 1) is sufficient to notify all licensees of the Software and any derivatives thereof that IBM assumes no liability for any claim that may arise regarding the Software or any derivative works thereof; and 2) that disclaims all warranties, both express and implied, from IBM regarding the Software and any derivative works thereof.
You agree that whenever you distribute the Software, the product packaging and marketing collateral for the value-added product that includes the Software will contain a statement that IBM's XML Parser, Java Edition is incorporated therein.
4. Rights in Data We encourage your feedback and suggestions and want to use your feedback to improve the Software and the alphaWorks program.
You hereby grant to IBM a royalty-free, irrevocable license under all intellectual property rights (including copyright) to use, copy, distribute, sublicense, display, perform and prepare derivative works based upon any feedback, including materials, fixes, error corrections, enhancements, suggestions and the like that you provide to IBM.
5. General This Agreement is governed by the laws of the State of New York.
This Agreement does not grant You or your licensees the right to use any IBM trademark or name.
This Agreement is the only understanding and agreement we have regarding your use of the Software. It supersedes all other communications, understandings or agreements we may have had prior to this Agreement.
|
Openly Informatics, Inc. |
©1999, OCLC Openly Informatics. All rights reserved. S-Link-S is a service mark of OCLC, Inc. Java is a registered trademark of Sun Microsystems, Inc.