I've posted a beta version of the Language Reference Parser online at my web site (www.software-in-motion.com). This program parses the REALbasic HTML Language Reference files for all instances of classes, modules, interfaces, properties, constants, methods, functions, events, and directives. It then builds an XML file that documents all of this information that can more easily be read by programming tools that must have knowledge of the contents of the REALbasic frameworks.

I've released the code under the open source GPL license -- you're free to use it for any purpose at all and modify it (but please send modifications to me so I can ensure that the posted version is up to date). I welcome any comments, including criticism, as long as you're not really nasty. A little nasty I can handle. I'm from New York City. ;-)

The Language Reference Parser handles many of the errors and format inconsistencies in the LR documentation pages, but cannot cope with all of them. These remaining documentation errors currently must be handled by hand-editing the output XML file. So... it's not perfect, but it still does a lot of the work for you.

It does handle:
1. An extraneous space within the parameter name in the TemporaryFolder page 2. An extraneous space within the parameter name in the RectControl.BalloonHelp page 3. An extraneous space within the method name in the UDPSocket.JoinMulticastGroup page 4. Method and function parameter list tables that can be either 2 or 3 columns wide
  5. Properties described in either:
      a. Both Parameters and Syntax tables
      b. Parameter table only
      c. Syntax table only
  6. Exception pages are organized in two different ways:
      a. Method 1: (e.g., KeyChainException)
         1. Page lists exception as being of type "Exception"
         2. Exception properties are not listed
      b. Method 2: (e.g., XMLReaderException)
1. Page lists exception as being of type "Class", with superclass noted
         2. Exception properties are listed
7. Methods that should be part of Array but are listed as if they are global methods unassociated with Array
  8. Pages that describe generic Constructor and Destructor are ignored
  9. Parameters incorrectly listed with wrong type or name:
a. "Integer OR": (Collection.Item, Collection.Remove, Group3D.Remove, MenuItem.Remove)
      b. "Integer,": (Chr and ChrB functions)
      c. "default file name": (GetSaveFolderItem)
      d. "asString": (EmailMessage class methods)
10. Properties that are listed incorrectly (DragItem.Text has type as Text instead of String)
11. Properties that are listed without types (BevelButton.Icon)
12. Return values that are not listed (StringProvider.GetString, Rnd function, Screen function) 13. Properties that are documented on more than one page and differently on each page (EmailMessage.FromAddress)
14. Inconsistencies in the structure of constructor parameter lists

**But it _does not_ handle these errors in the LR files:
1. Parameters that have no data type listed (i.e., data type can be any type, such as in the Array function, IsNumeric function, Str function) 2. Parameters that are not listed at all (Insert method, Remove method, SortWith method) 3. Parameters that have no type listed because the parameters use class constant values (GetFolderItem function)
  4. Return value with no data type listed (Array function)
5. Incorrect return values (Pop has return listed as "The") -- this is probably an untyped return value since it's an Array function 6. Methods with no names (StandardInputStream class, StandardOutputStream class, Variant class)
  7. Constructors that are not documented (MemoryBlock, Picture)
  8. Class constants (no consistent HTML format for them)
        a. EasyTCPSocket
        b. SocketCore
        c. Serial
        d. System
        e. MouseCursor
f. XMLContentModel -- tables present but do not distinguish between properties using each table's constants g. XMLDOMException exception -- tables present but do not distinguish between properties using each table's constants h. XMLReader -- tables present but do not distinguish between properties using each table's constants
        i. HandleType (see BinaryStream)
        j. Encodings
       k. SpecialFolder
       l. XMLNodeType

Dr. Scott Steinman
Brought to you by a grant from the Steinman Foundation (Thanks, Mom and Dad!)
Recommended by Major University Studies Over the Leading Brand
steinman at midsouth dot rr dot com

I hope I die peacefully in my sleep like my grandfather. . .not screaming in terror like his passengers. -- "Deep Thoughts", Jack Handy

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to