Related articles |
---|
Need simple parser/interpreter - reinvent the wheel? pld@fc.hp.com (2000-05-31) |
Re: Need simple parser/interpreter - reinvent the wheel? William.H.Duquette@jpl.nasa.gov (2000-06-01) |
Re: Need simple parser/interpreter - reinvent the wheel? andrew@andrewcooke.free-online.co.uk (Andrew Cooke) (2000-06-03) |
Re: Need simple parser/interpreter - reinvent the wheel? peter@abbnm.com (2000-06-03) |
From: | peter@abbnm.com (Peter da Silva) |
Newsgroups: | comp.compilers,comp.lang.misc |
Date: | 3 Jun 2000 17:35:15 -0400 |
Organization: | ABB Network Management |
References: | 00-05-125 |
Keywords: | parse, comment |
Someone else suggested bootstrapping Perl or Tcl, and I would agree with that,
but if you're sing a UNIX system you can get a lot of benefit from the existing
tools:
Paul Dineen <pld@fc.hp.com> wrote:
> SCSI_disk {
> open values[1] = "-- Information Tool Log for SCSI Disk on path (.*) --";
> values[2] = "^Product ID:\\s*(\\S*)\\s*";
> values[3] = "^Firmware Rev:\\s*(\\S*)\\s";
> close values[4] = "^Serial Number:\\s*(\\S*)\\s";
> return 1-4;
> }
awk 'BEGIN {state="none"}
state=="none" && /Information Tool Log for SCSI Disk on path/ {
state="scsi"
path=$10
}
state=="scsi" && /^Product ID/ {
product_id=$3
}
state=="scsi" && /^Firmware Rev/ {
firmware_rev=$3
}
state=="scsi" && /^Serial Number/ {
serial_number=$3
state="none"
print "SCSI_disk",$path,$product_id,$firmware_rev,$serial_number
}'
(this sort of thing shows you a lot about Perl's ancestry. It's a pity
that the equivalent Perl would be a lot less clean... in many ways Awk
is an improvement on its descendant)
--
In hoc signo hack, Peter da Silva <peter@baileynm.com>
[It's true, for this kind of application perl has too much Basic-Plus and
not enough RPG. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.