Annotation of 43BSD/contrib/icon/man/man2/patterns.2, revision 1.1.1.1

1.1       root        1: .so tmac.ilib
                      2: .TH PATTERNS 2 "The University of Arizona \- 7/29/84"
                      3: .SH NAME
                      4: patterns \- SNOBOL4-style pattern matching
                      5: .SH DESCRIPTION
                      6: These procedures are adapted from TR 80-25 and TR 81-6. They
                      7: provide procedural equivalents for most SNOBOL4 patterns and
                      8: some extensions.
                      9: .SH SYNOPSIS
                     10: .nf
                     11: .sp 1
                     12: .ta 1.5i
                     13: \*MAnchor()    &ANCHOR = 1 \fR if \*MMode := Anchor
                     14: Any(s) ANY(S)
                     15: Apply(s,\*bp)  S ? P
                     16: Arb()  ARB
                     17: Arbno(p)       ARBNO(P)
                     18: Arbx(i)        ARB(I)
                     19: Bal()  BAL
                     20: Break(s)       BREAK(S)
                     21: Breakx(s)      BREAKX(S)
                     22: Cat(p1,\*bp2)  P1 P2
                     23: Discard(p)     /P
                     24: Exog(s)        \eS
                     25: Find(s)        FIND(S)
                     26: Float()        &ANCHOR = 0 \fR if \*MMode := Float
                     27: Len(i) LEN(I)
                     28: Limit(p,\*bi)  P \e i
                     29: Locate(p)      LOCATE(P)
                     30: Marb() \fRlongest-first\*M ARB
                     31: Mode() \fRAnchored or unanchored matching (see \*MAnchor\fR and \*MFloat\fR)\*M
                     32: Notany(s)      NOTANY(S)
                     33: Pos(i) POS(I)
                     34: Replace(p,\*bs)        P \(== S
                     35: Rpos(i)        RPOS(I)
                     36: Rtab(i)        RTAB(I)
                     37: Span(s)        SPAN(S)
                     38: String(s)      S
                     39: Succeed()      SUCCEED
                     40: Tab(i) TAB(I)
                     41: Xform(f,\*bp)  F(P)
                     42: .ft R
                     43: .fi
                     44: .LP
                     45: In addition to the procedures above, the following expressions can be
                     46: used:
                     47: .nf
                     48: .sp 1
                     49: \*Mp1() | p2() P1 | P2
                     50: v <\- p()      P . V \fR(approximate)\*M
                     51: v := p()       P $ V \fR(approximate)\*M
                     52: fail   FAIL
                     53: =s             S\fR (in place of \*MString(s)\fR)\*M
                     54: p1() || p2()   P1 P2 \fR(in place of \*MCat(p1,\*bp2)\fR)\*M
                     55: .ft R
                     56: .sp 1
                     57: .fi
                     58: .LP
                     59: Using this system, most SNOBOL4 patterns can be satisfactorily transliterated
                     60: into Icon procedures and expressions. For example, the pattern
                     61: .DS
                     62: SPAN("0123456789") $ N "H" LEN(*N) $ LITERAL
                     63: .DE
                     64: can be transliterated into
                     65: .DS
                     66: (n <\- Span('0123456789')) || ="H" || (literal <\- Len(n))
                     67: .DE
                     68: Concatenation of components is necessary to preserve the pattern-matching properties
                     69: of SNOBOL4.
                     70: See the documents listed below for details and limitations.
                     71: .SH CAVEATS
                     72: Simulating SNOBOL4 pattern matching using the procedures above
                     73: is inefficient.
                     74: .SH SEE ALSO
                     75: Ralph E. Griswold. \fIPattern Matching in Icon\fR,
                     76: TR 80-25, The University of Arizona, 1980.
                     77: .LP
                     78: Ralph E. Griswold. \fIModels of String Pattern Matching\fR,
                     79: TR 81-6,
                     80: Department of Computer Science, The University of Arizona, 1981.
                     81: .LP
                     82: Ralph E. Griswold. ``Implementing SNOBOL4 Pattern Matching in Icon'',
                     83: \fIComputer Languages\fR, Vol. 8, No. 8 (1983), pp. 77-92.
                     84: .SH AUTHOR
                     85: Ralph E. Griswold

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.