home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!cleveland.Freenet.Edu!at913
- From: at913@cleveland.Freenet.Edu (Mirko Vukovic)
- Newsgroups: vmsnet.tpu
- Subject: Pattern
- Date: 30 Dec 1992 18:40:24 GMT
- Organization: Case Western Reserve University, Cleveland, OH (USA)
- Lines: 40
- Message-ID: <1hsqeoINNmqe@usenet.INS.CWRU.Edu>
- Reply-To: at913@cleveland.Freenet.Edu (Mirko Vukovic)
- NNTP-Posting-Host: hela.ins.cwru.edu
-
-
- Hello!
-
- I am converting a fortran code from single to double precision on a VAX. I
- a TPU routine that searches for constants in the program by using the following
- patterns
-
- aaaa.bbbbbX
- .bbbbbX
- aaaa.X
-
- aaaa any number of digits
- bbbb any number of digits
- X any character except d,D
-
- and puts the cursor on the end of a line where the pattern was found.
-
- I came up with the following patterns:
-
- predig:=span('0123456789'); <--- for aaaa
- posdig:=anchor&span('0123456789'); <--- for bbbb
- per:='.'; <--- for .
- exp:=anchor&(notany('dD')|line_end); <--- for X
-
- find :=((predig&per&exp)|(per&posdig&exp)|(predig&per&posdig&exp));
-
- However the above does detect numbers like 123.12D00, ie if I have more than one
- digit after the period followed by D.
-
- Is that because in posdig anchor forces the span to match only one character?
- How do I go around that? The program has 10000 (10^4) lines.
-
-
- Also, how do I put a cursor on the end of a range?
-
- Thanks.
- --
- Mirko Vukovic
- University of Wisconsin -- Madison
- VUKOVIC@UWMFE.NEEP.WISC.EDU
-