Subject: Re: Pretty-Printer for 4GL Programs

From: [email-masked] (Brian Colfer)
Date: Thu, 19 Nov 1992 09:00:40 -0800 (PST)

Joe Ryburn wrote:
} 
} 
} Does anyone know of a prettyprinter for 4GL programs, or perhaps a 
} vgrind definition file for Informix 4gl?  Please Post.
} 

Here's my attempt at it...
 
#!/bin/sh
# This is a shell archive (shar 3.24)
# made 11/19/1992 16:57 UTC by [email-masked]
# Source directory /u/home/brianc
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   1937 -rw------- vgrinddefs_4gl
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= vgrinddefs_4gl ==============
echo "x - extracting vgrinddefs_4gl (Text)"
sed 's/^X//' << 'SHAR_EOF' > vgrinddefs_4gl &&
X# A vgrindef file for INFORMIX products
X# see vgrind(1) vgrindefs(5)
X#
X# id = @(#)vgrindef_4gl	1.1 8/24/88
X#
X# Copyright (c) 1988 Brian Colfer
X# San Francisco, California
X#
X# Copyright (c) 1988 Regents of the University of California.
X# All rights reserved. 
X#
X
Xinformix|4gl|4GL|4:\
X		:pb=^\d?((function|report)\d\p\d?\(\a?\)):\
X		:bb=\d?(menu|function|report|main|foreach|globals|while|if|for)\d:\
X		:be=\d?(end)\d\*:\
X		:cb=#:ce=$:\
X		:ab={:ae=}:\
X		:lb=':le=':\
X		:sb=":se=":\
X		:oc:\
X		:kw=define at let call for foreach while continue\
X		help file exit else if then case sleep run menu message\
X		prompt open window current close display form\
X		construct array input scroll start output to finish\
X		function main command whenever defer \
X		interrupt quit acsii clipped column spaces today using\
X		screen money serial database row column\
X		smallint integer money char date decimal float\
X		where cursor declare from true int_flag quit_flag status\
X		notfound false set_count scr_line view \
X		before after on key next field print into error \
X		null update delete insert select\
X		group by order between matches exists not\
X		next first last previous prior relative absolute fetch execute\
X		arr_count arr_curr prepare thru flush lock recover\
X		attribute set or and values return record\
X		end
X
Xperform |per|p4gl:\
X		:pb=^\d?a?form:\d?\p\d?\a?:\
X		:bb=\d?(screen|attributes|instructions|tables|{)\d:\
X		:be=\d?(end|})\d\*:\
X		:cb=#:ce=$:\
X		:ab={*:ae=*}:\
X		:lb=':le=':\
X		:sb=":se=":\
X		:oc:\
X		:kw=screen database tables attributes instructions  \
X		autonext downshift comments format default include \
X		lookup joining noentry reverse noupdate right picture \
X		upshift verify queryclear verify required zerofill \
X		master of composites delimiters before after editadd \
X		editupdate record formonly displayonly allowing input type \
X		bell reverse let nextfield char date smallint integer money \
X		decimal ( ) \
X		end 
X
X
X
SHAR_EOF
$TOUCH -am 1119085692 vgrinddefs_4gl &&
chmod 0600 vgrinddefs_4gl ||
echo "restore of vgrinddefs_4gl failed"
set `wc -c vgrinddefs_4gl`;Wc_c=$1
if test "$Wc_c" != "1937"; then
	echo original size 1937, current size $Wc_c
fi
exit 0

-- 
Brian  Colfer          | UC San Francisco        |------------------------|
                       | Dept. of Lab. Medicine  | System Administrator,  |
[email-masked] | S.F. CA, 94143-0134 USA | Programer/Analyst      | 
[email-masked]  | PH. (415) 476-2325      |------------------------|