Related articles |
---|
New OS/2 visual programming tool for writing parsers. ebs@world.std.com (1994-12-14) |
Newsgroups: | comp.compilers |
From: | ebs@world.std.com (Erik B Sherman) |
Summary: | New tool uses visual programming techniques for writing parsers. |
Keywords: | tools, visual |
Organization: | The World Public Access UNIX, Brookline, MA |
Date: | Wed, 14 Dec 1994 09:01:26 GMT |
This is the press release and some technical information for a new
programming tool called Visual Parse++ from SandStone Technology Inc.
If you have access to Compuserve, there is a demo located in 'GO
OS2AVEN' in the 'Other Vendors' section. The title is 'Visual
Parse++'.
If you have any other questions, you can e-mail
71332.2577@compuserve.com.
------------------------------------------------------------
SANDSTONE TECHNOLOGY INC.
70 Tidwell Lane
Henderson NV, 89014
(702) 896-7623 (Voice)
(702) 896-6932 (Fax)
(800) 988-9023 (Voice)
Contact: Bill Donahue
CIS: 71332,2577
Internet: 71332.2577@compuserve.com
Visual Parse++ - New Visual Programming Tool Cuts Development Time From
Common Tasks
For Immediate Release
December, 1994
Hendserson, NV -- Software developers can save time needed for many
common programming tasks with a new type of visual programming tool
from SandStone Technology Inc.
Visual Parse++ brings visual programming technology to parsing
techniques -- programming methods used to manipulate and control
information.
Parsing technology has traditionally been restricted to compilers
and interpreters because of the difficulty in using such existing
parsing tools as the Unix utility yacc, or its derivatives.
With Visual Parse++, developers can use parsing technology for end
user commands, protocols, data file structures, as well as the
traditional compiler and interpreter applications. Visual Parse++ even
makes parsing economical for such small tasks as edit field
validators, user parameter files, scripting, tagged data, formatted
files, and data filters.
Visual Parse++ works by creating tables and a skeleton application
for a developer from a specification. Because of this, it is
programming language and platform independent. Support for C, C++,
and REXX is currently included.
While presently shipping for OS/2, a Windows version of Visual
Parse++ is planned for the first quarter of 1995. SandStone
Technology is also considering an AIX version. Unix support is
planned for the second quarter of 1995.
Visual Parse++ supports international character sets through DBCS
and Unicode.
Visual Parse++ is available directly from SandStone Technology.
While the list price for the OS/2 version is $699, there is an
introductory special of $299 until February 28, 1995.
----------------------------------------------------------------
Here is a more technical description of the product. First the
user interface.
You define your 'language' in a specification (a rule file in Visual
Parse++ terminology) that uses a familiar regular expression and
BNF-like notation. You then rigorously debug the entire specification
while you watch. The test data enters from the right, and moves across
the screen from right to left at each STEP. This gives you a clear
visual indication of where you are in the given test file.
As things occur, they are highlighted. Some of the things you see are:
1.Regular expression matches (very detailed, you see the actual point
in each regular expression.)
2.The current lookahead symbol, built up as the data is lexed.
3.The parsing stack.
4.Production reductions. When a production is reduced it is
highlighted, and the associated stack elements are also highlighted.
5.Errors and error recovery.
6.Conflicts. You can test a rule file with conflicts. When a conflict
occurs, the productions are highlighted. You resolve the conflict with
a mouse click. Very useful, especially when just starting out.
Here are some of the advanced features of the lexing and parsing
engines:
1.An expression list stack. You can define multiple expession lists
and push and pop them as regular expressions are matched. Very clean
and more powerful than start states.
2.Advanced error recovery, called synchronization tokens, as well as
error tokens. You imbed synchronization tokens (%) in the grammar at
points where recovery is likely to succeed. Synchronization tokens do
not change the grammar in any way, except to synchronize error
recovery. Error tokens are also supported. When an error occurs,
Visual Parse++ searches the stack (the current context) for any
symbols that can follow either a sync token or an error token. It then
scans the input looking for a matching token. When one is found, the
stack is popped until the current symbol is valid.
3.Unicode and DBCS support. Any 32-bit quantity can be used as a code
point in a regular expression.
4.Programming language and platform independence. There is a well
architected API for each language supported. Visual Parse++ generates
a 'reduce' function for each language. This is where you put all your
code. In C or C++, the 'reduce' function is a switch statement with a
case for each production. There are easy to use functions to access
and pass information on the stack. You can also customize stack
elements to your liking. In C++, this is done by subclassing the class
SSYaccStackElement. We supply a library, or equivalent, for all
programming languages that we support.
5.Because the lexing and parsing process is encapsulated in an API,
you can add as many lexers and/or parsers as you wish to any
application, including DLL's.
6.The parser generator uses the most advanced algorithms, (Park,
Chang, Choe), for superior performance (We also tried DeRemmer and
Ives, but PCC was the best). Can handle any size grammar.
7.The tables generated are very compact, on the order of the size of
the lexer/parser (For a small edit field validator, maybe 100 bytes or
so).
Visual Parse++ can be used for many, many applications that you may
not have considered before, like edit field validators and list box
data filters. Why use a specialized ad-hoc tool when you have the full
power of lexing and/or parsing technology available.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.