Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have a large system in OpenEdge ABL that could use some documentation-love. Currently a team member is working on a utility that can find methods and functions and make some "Javadoc-esque" html pages out of it. It's pretty rough around the edges. Okay, it's like sawblades around the edges.

I'm trying to find something like Javadoc or Doxygen that is capable of parsing OpenEdge ABL to generate some kind of API documentation. I know the market for OpenEdge isn't the best, but there is a lot of stuff that's passed along by word of mouth. It's difficult to search for because it used to be called "Progress" which throws off your search queries with non-relevant information.

I'm also open to a system that lets you define the regex's to look for to define your own syntax. Then it parses and gives you an output based on that.

share|improve this question
    
Trying joining the Progress Email Group (peg.com/lists) for General and asking on there. It has a dedicated group of Progress programmers who would know the answer –  briddums Dec 14 '11 at 0:52
add comment

3 Answers

We've had the same issue with an undocumented (and large) legacy codebase. We're planning to give RoboDoc a try, since it only seems to care about comments (Progress's c-style comments are supported).

share|improve this answer
    
This really doesn't answer the question and really should have just been added as a comment. –  Walter Oct 20 '12 at 16:29
add comment

I wrote an xref->TT converter years ago which'll take apart your source files and return all sorts of stuff, including API's and their parameter lists. You can find the source code file here: http://communities.progress.com/pcom/docs/DOC-16588

One caveat is that I stopped working on this ~2008, so the code will be a bit out of date. If your code base doesn't use OOABL too much, I think you should be good.

share|improve this answer
    
One note - I haven't verified that that file is still what I think it is - if not, drop me a line and I'll dig up a real copy and get it to you. If you need any other help documenting your system, let me know! –  Tim Kuehn Dec 15 '11 at 22:05
add comment

I don't know of any utility that would do this.

BUT. If your code is all in structured procedures and structured includes -- that is, written in the AppBuilder instead of in straight text files -- then it should be relatively trivial to create a simple Javadoc-style report for the whole system. It's just a matter of searching for the preprocessor tags that the AppBuilder writes into the code.

In the (relatively unlikely, unfortunately) event that you are running Openedge under *NIX, you could probably get most of the way with Bash, Awk and grep...

Looking at the code I have here, a few pointers for you in case it helps (if this is too obvious, my apologies):

&ANALYZE-SUSPEND _VERSION-NUMBER <Progress version>
&Scoped-define PROCEDURE-TYPE <Window,etc>
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE <procedure name>
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION <function name>

Maybe I can help you some more -- let me know.

share|improve this answer
    
Of the 18,000 or so files in the code base, I would suspect about 3000 are UIB generated. We are running AIX systems, and we do have grep utilities. We could grep for PROCEDURE\s*[a-zA-Z\-]*(\.|\((IN|OUT)PUT\s*[a-zA-Z\-](\,|\)\.)* (Obviously this is just a start at how complex a regex for it could be) but I'm really hoping someone has come across a need for this already :-) Thanks for the input though! –  corsiKa Jun 16 '11 at 20:58
    
Well, thank goodness -- just think how difficult it would have been under Windows! I coded something like this about 15 years ago(!), but the source is long gone, I'm afraid. Good luck... –  Andy Jun 16 '11 at 21:21
    
I'm tempted to say the language has changed so much it wouldn't work well anyway, but honestly, my firm acquired the software when I was 8 years old. You can do the math on that one. It has exploded, I mean, grown organically ever since. –  corsiKa Jun 16 '11 at 22:37
    
@glowcoder: That probably just means I'm a lot older than you. I remember Progress v4...! –  Andy Jun 17 '11 at 13:36
    
@Andy You know, I love their new features, I really do. I hate a lot of things about Progress because the old ways encourage (and sometimes enforce) things that are now considered very bad practices, even if they made sense at the time. But when you have an 18k file system, you can't exactly do a clean sweep and take out those bad things. So we're really limited in how we can take advantage of things that I (with a Java background) see as no-brainers. –  corsiKa Jun 17 '11 at 16:44
show 2 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.