1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<!--Time-stamp: <2006-02-25 13:19:05 poser> -->
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Author" CONTENT="Bill Poser">
<TITLE>Redet Reference Manual: Limits</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFE2C0" VLINK="#0000EE" LINK="#AA0066" ALINK="#FF0000">
<H2><a name="Limitations">Limitations</a></H2>
<P>
There are a number of things that <i>Redet</i> cannot do. Some of these are probably
temporary; others are deeper and will be difficult or impossible to achieve.
</p>
<p>
In its present form, Redet is line-oriented. It matches patterns against single lines
of data and performs substitutions on single lines. It is therefore not useful for
searches and replacements in which larger chunks are needed and cannot be used to
explore properties involving matching over more than one line, such as whether
a construct matches newline characters. Similarly, Redet cannot distinguish between
the beginning of a string and the beginning of a file, or between the end of a string
and the end of a file.
</p>
<p>
Redet is oriented toward declarative specification of patterns and substitutions,
where the user specifies a pattern to match and possibly also a substituion to perform
but does not provide any explicit instructions as to how to perform the match or
substitution. Some pattern matchers are procedural or combine procedural and declarative
elements. An example of the latter is Perl, which allows arbitrary Perl code to be
intermixed with regular expressions. Redet only deals with declarative pattern matching
and substitution.
</p>
<P>
Redet does not always support (by feature-testing and a palette entry) every feature
of every engine. This may be because I don't know about the feature or have
overlooked it. It may be because I don't understand the feature well, or because
I have not yet figured out how to test it. If you would like to see a missing feature
supported, feel free to contact me about it.
</p>
<P>
Some characters have special meaning to Tcl, the language in which Redet is written,
to the language used actually to execute the expression, or to an intermediate
program, such as a shell, through which the regular expression passes during
execution. In some cases expressions may be passed to the engine in more than one
way. As a result, issues arise having to do with quotation, that is, with
preventing characters from being interpreted until we want them to be.
</p>
<p>
If you are using Redet as a search or replace tool, this should not concern you.
If you are using Redet to prepare expressions for use elsewhere, it is possible that
you will need to quote them differently if you pass them to the engine in a different
way than I do. If, for example, I am embedding the expression directly in the source
text of a program but you pass expressions via the command line or read them from a file,
you may have to quote them differently.
</p>
<br>
<center><a href="speed.html">Next</a></center>
<br>
<center><a href="Manual.html">Back to Table of Contents</a></center>
</body>
</html>
|