Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site sdcrdcf.UUCP Path: utzoo!decvax!ittvax!dcdwest!sdcsvax!sdcrdcf!dberry From: dberry@sdcrdcf.UUCP (Daniel M. Berry) Newsgroups: net.text Subject: help with vgrindefs Message-ID: <1628@sdcrdcf.UUCP> Date: Fri, 28-Dec-84 16:54:05 EST Article-I.D.: sdcrdcf.1628 Posted: Fri Dec 28 16:54:05 1984 Date-Received: Sat, 29-Dec-84 10:11:07 EST Distribution: net Organization: System Development Corp. R+D, Santa Monica Lines: 27 There is something puzzling about the form of the vgrindefs: Specifically consider: :pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\ from the pascal definition. Why are there no parentheses around (procedure|....|program)? It appears to me that the quoted line says that a procedure begins with any one of the following 1.new-line,optional-delimiter,"procedure" 2."function" 3."program",delimiter,identifier,delimiter 4."(" 5.";" 6.":" because of the way the parens surround the ors. But then why is the whole line structured as (.....)|(.....) ? I would think that the correct line would be... :pb=(^\d?(procedure|function|program\d\p\d|\(|;|\:))|(=\d?record\d):\ ^ ^ Can someone explain the precedence rules? Thanks Dan Berry Happy New Year reply to dberry@ucla-cs {ihnp4,cepu,sdcrdcf}!ucla-cs!dberry