Reply To: Using Tags and TipWin

Product Compare Forums Multi-Edit Support Using Tags and TipWin Reply To: Using Tags and TipWin

#6538
Clay Martin
Keymaster

Dan,
The "Clay" in me likes the idea of packs. I always like everything for a task stored in the same place. And, if there was a package to download that had sample files (like for keywords) sample .dat, .upd files and a language.s file with stubs for all the macros (like to the tipwin stuff, tag stuff, etc) such that an global change would give you stubs named for the language like:
LANGGetParseFlags() becomes XyzGetParseFlags()
LANGInit() becomes XyzInit()

it would help makers of new languages conform to the general naming flow, and give them a finite list of all the things they might add. If the don’t add the code to the stub, it just does nothing. So my Xyz.s file would have a stub like:

[code:9ngvrtln]void XyzGetDeclaration() {
/* ======================
Wrapper for Xyz.
*/
//Rm("PascalGetDeclaration " + MParm_Str); //for pascal like languages
//Rm("CGetDeclaration " + MParm_Str); //for c like languages
Rm("XyzGetDeclaration " + MParm_Str); //you need to add code for this
}[/code:9ngvrtln]

and thus elsewhere in the Xyz.s file would be:

[code:9ngvrtln]void XyzGetDeclaration () {
//add your code here or use one for another language
}
[/code:9ngvrtln]
I feel that this would make Language pack creators more likely to add things like tipwin support, and if they don’t, there is no fear that a call will be made to a function that does not exist.

When I fist started on SAS language support just being directed to pascal.s or c.s was someone daunting as they were poorly commented and differed from other language.s files (probably an age thing). Moreover I have noticed over the years that language support has become more integrated.

On the other hand the "Business man" in me looks at the rewrite work that would go into making SAS support work like pascal support and think "is it worth the cost?" Besides looking at code I wrote years ago gives me the creeps (did I really write something that clumsy??? :oops: ). I also think that in the case of EZRTools the indent routine does a lot more than the indent routines for other languages do, such as adding comments to the end of control structures reflecting the structure that the closing syntax belongs to and turning on the ruler when a SAS construct is typed that will be followed by the programmer entering column delimited data.

Then again, the new implementation of keyword lists (as a file) would be a easy fit with SAS.

And then there is tags and tipwin which at first glance seem to have no use for the SAS language as code contains calls the Proc’s (somewhat similar, but not the same as SELECT, TABLE CREATE, etc in SQL) and Functions that you do not get the source code for, thus tipwin for these would have to be setup manually (from the manual), if that is even possible. The only SAS construct that is scan able would be user created macros, but they can be many to a file which is accessed (run time) by a strait include in the code, or in a autocall library that is a directory one macro per file, each file with the name of the contained macro. The autocall library can be specified with a statement in the code, or by a mention in the "init" file for the SAS installation, or a combination of the above (searched in a particular order). Moreover these macros in either form can be brought in during execution of the SAS program from a SAS catalog, which is a proprietary non-text file format, thus even if the source for the macros exists some where there is no way to find out where from the code being edited. I don’t know how tipwin and tags are really implemented, but I’m willing to bet that it would be quite different to implement for SAS than C or C++.

There may not be any other languages that are as strange as SAS, so these things are not important in the greater scheme of standardization of language support. Maybe others (users of strange languages) can comment on how their language is similar or dissimilar to the more standard languages like C, C++, Pascal Modual2 and Ada.

Unfortunately (for me) my user base has not deluged me with requests for additional functionality like "tipwin for SAS dataset(read table) field structure or Formats", or anything else for that matter (note MeLS and EZRTools users there is a … please… pretty please with coffee and donuts…).

Overall I like Dan’s idea and think that it would be ideal for many languages, then again what about APL? :lol: