arc> genprog aml example
/*$ID: example.aml v1.0 21.21.16 04/16/97 GENSPT Hanming Tu /* ---------------------------------------------------------------- /* Purpose: /* ---------------------------------------------------------------- /* Called-by: N/A /* Calls-to : logaml.aml /* Routines : bailout,warn - direct error and warn messages /* CheckInputs - varifies inputs /* ReserveEnv - keeps environmental variables /* RestoreEnv - restores environmental variables /* ---------------------------------------------------------------- /* Platforms: Esri ArcInfo 7.0.4 /* IBM/RS6000 AIX 4.1 /* /* ================================================================ /* &severity &error &routine bailout &severity &warning &routine warn &args type &s aml = EXAMPLE &s .run$status = OK &s .log$arg = %type% &if ^ [variable .log$on] &then &s .log$on = .true. &if %.log$on% &then &r logaml start %aml% &s typs = a b c &s usg = &r %aml% <[upcase [subst [quote %typs%] ' ' |]]> &s prg = [show program] &s prog = 'ARC' 'ARCPLOT' 'ARCEDIT' 'GRID' 'TIN' &call ReserveEnv &call CheckInputs &call MainRoutine &call RestoreEnv &return %aml%: All done! /* -------------------------------- &routine CheckInputs /* -------------------------------- &if not %prg% in {%prog%} &then &do &if [null %type%] &then &ty \Usage: %usg%\ &else &type &return Run %aml% in %prog%!\ &end &else &do &if [null %type%] &then &return \Usage: %usg%\ &end &if [null %type%] or %type%_ = #_ &then &s type = [extract 1 %types%] &s type = [upcase %type%] &if [keyword %type% %types%] le 0 &then &return %aml%: Invalid input %type% in %types%. &return /* -------------------------------- &routine ReserveEnv /* -------------------------------- &s cur$wsp = [show &workspace] &return /* -------------------------------- &routine RestoreEnv /* -------------------------------- &work %cur$wsp% &if %.log$on% &then &r logaml end &return /* -------------------------------- &routine MainRoutine /* -------------------------------- &return /* -------------------------------- &routine Warn /* -------------------------------- &severity &warning &ignore &type %aml%: A warning condition occurred &return /* -------------------------------- &routine BailOut /* -------------------------------- &severity &error &fail &s .run$status = FAIL:%aml$errorfile%:%aml$errorline% &call RestoreEnv &return \%aml% - %AML$ErrorFullFile% ~ \ Last Error: [value aml$message] ~ \ Thread: %aml$errorthread% ~ \ Line: %aml$errorline% \