Operating System - OpenVMS
1748211 Members
4711 Online
108759 Solutions
New Discussion

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

 
SOLVED
Go to solution
Ian Miller.
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

I think the quote from the book is saying that people often but quotes in when no quotes are needed. It also says that MOST of the time the trailing quote is not needed but sometimes it is. The author of DCL_CHECK and others here are suggesting that when you use the quote then always put both quotes for consitency and the rare case that both are needed.
____________________
Purely Personal Opinion
Jan van den Ende
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

Or, put in another way:
CHECK_DCL does not only check syntax per se,
but also checks for adherance to (some form of?) good practise.

In line therewith, just for my curiosity:
how about a check for consistent usage of indentation? Equally, or maybe even more interesting for humans who may have to work with the DCL's as well.

Cheers.

Have one on me

Jan
Don't rust yours pelled jacker to fine doll missed aches.
Art Wiens
Respected Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

"The author of DCL_CHECK and others here are suggesting that when you use the quote then always put both quotes for consitency and the rare case that both are needed."

I can't find the reference right now, but there's another place where that's definately not the case and they are suggesting the exact opposite


"how about a check for consistent usage of indentation? "

That's a great subject to cause a thread to continue forever!! ;-)

Personally I find it very annoying to have line labels right next to the $ sign eg: $loop: Why not leave a space? When it's white text on a black screen at 132 col's (and your in your 40's) it gets a little blurry!

How about case? All upper, all lower, or a mix of commands upper, variables, symbols etc. lower? Make it look like a language and "camelback" it ie. $ LoopAgain:

Art
Jan van den Ende
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

Art,

I DID NOT specify WHAT indentation, only CONSISTENT USE.

In my view that should mean:

If you start with label names having n (0=
If you start indenting your if-then-else constructs with m (1=
Especially the latter one would be a REAL help in debugging, especially in the case where different persons with personal styles have made changes some time in the past.

THAT, and only that, was my intention.

Cheers!

Have one on me.

Jan
Don't rust yours pelled jacker to fine doll missed aches.
Wim Van den Wyngaert
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

I have written some simple DCL stuff to check if-then-else indentations.
All if-then-else statements must have their words alligned. Badly alligned scripts are unreadable.

I had the same for COBOL but that one is more complicated (runs every night since 1995 in a site were I worked). It also checked ifs with included statements against a maximum length. And much more.

Wim
Wim
Wim Van den Wyngaert
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

If Jan could pay per Internet he would be broke.
Jan : have a lot (nen bak) on me !

Wim
Wim
Guinaudeau
Frequent Advisor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

another question around symbol substitution :

has anyone an idea how could one insert in a string symbol an apostrophe ? i looked at Anagnostopoulos book.

Basically, it would be probably OK when i could defined a string of one char containing "'" and use a substring assignment as in Anagnostopoulos page 43, but DCL attempts a symbol substitution on it.

Thanks for any help

Louis
Robert Gezelter
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

Guinaudeau,

You can assign an apostrophe to a symbol by using the escape convention (doubling the character):

$ STRING = "''''"
$ WRITE SYS$ERROR STRING

Admittedly, the doubling rule is one of the more often confusing parts of DCL syntax.

- Bob Gezelter, http://www.rlgsc.com

Jan van den Ende
Honored Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning


and ANY character ( well, except %X0 ), most notably escape sequences, can be made by numeric assignment of the ASCII value.
eg:
$ esc[0,8]=27
(8 bits of the symbol "esc" get ASCII vaule 27, so ESC is the Escape character.
Look up any 8-bit character you need, and it works.
$ eur[0,8]=128 gives the Euro sign on the printer.
I can not look it up now, and I always confuse double-quote ans apostrophe, but one is 41 and the other 43.

Proost.

Have one on me.

jpe


Don't rust yours pelled jacker to fine doll missed aches.
Lawrence Czlapinski
Trusted Contributor

Re: DCL syntax - symbol substitution - DCL_CHECK.COM warning

Guinaudeau: If you actually want a single quote character enclose it in a pair of double quotes.
CONSHY» string ="I can't."
CONSHY» write sys$output string
I can't.
Lawr