Visual Parse++
Copyright (c) 1994 SandStone Technology Inc.
(800) 988-9023 or (702) 896-7623
CompuServe: 71332,2577
Internet: 71332.2577@compuserve.com

This file contains some technical specifications for Visual 
Parse++, as well as some competitive analysis.

1.  Visual Parse++ has a unique and sophistacted graphical
    development environment for analyzing a specification.
    You will save countless hours using this environment
    when developing a lexer/parser. No other tool has this
    feature.

2.  Visual Parse++ supports DBCS and Unicode - no other tool
    has this capability. This is very important for non-ASCII
    markets, like Europe and Asia. The Visual Parse++ lexical
    analyzer supports any 32-bit quantity as a code point,
    and is not tied to ANY character set.

    It is very easy to  write multi-lingual lexers/parsers.
    You just have to write a lexer for each language. The
    lexer's will be identical except for the keywords, which
    you replace with the correct language.

3.  The Visual Parse++ lexical analyzer supports multiple regular
    expression lists, which can be pushed and popped to do context
    dependent processing in the lexical analysis phase. This can
    greatly ease the grammar design. Legacy lex tools use start
    states, which are very awkward, and can't be pushed and popped.
    The Visual Parse++ technique, called expression lists, is more
    powerful and MUCH cleaner.

    This technique is particularly useful for things like quoted
    strings and comments. It is trivail to handle these cases with
    NO extra application code.

4.  The lexical analyzer can recognize, but ignore tokens. This is
    very useful for removing comments and white space. Again, this
    is accomplished with no extra application code.

5.  Visual Parse++ keeps track of line numbers and offsets. You must
    add code to do this with legacy lex tools.

6.  Visual Parse++ has a much improved error recovery technique
    called synchronization tokens, as well as the familiar error
    tokens. AFTER you develop your grammar, you embed these
    synchronization tokens in the grammar, at points where recovery
    is likely to succeed. When an error occurs, Visual Parse++
    scans the input for a token that can follow either a synchronization
    token or an error token, and continues parsing. Other recovery
    schemes only support error tokens, and only search the most recent
    context, which can make error recovery difficult.

7.  Platform and language independence. You write one specification
    and use it on multiple platforms, with multiple languages. Call
    SandStone Technology at (800)988-9023 or (702)896-7623 to find
    out which languages and platforms are currently supported, or
    to request a specific platform/language. For OS/2, Visual Parse++
    currently supports C++, C, and REXX.

8.  Visual Parse++ uses the latest parser generation algorithms for
    superior performance.

9.  There are no size limitations for the lexer or grammar. Any size
    grammar can be used.

10. The application model or architecture of Visual Parse++ is
    very clean and consistent. Visual Parse++ generates a
    skeleton application for each specification and each
    programming language. You add you code to a specific area
    in the generated skeleton. The process is identical for all
    programming languages. This is why Visual Parse++ lexers and
    parsers can run on multiple platforms and be written in
    multiple languages.

11. You can add an unlimited number of lexers/parsers in ANY
    application, including DLL's. It is awkward or impossible
    to this with legacy yacc tools.

12. Can be used for ALL your lexing/parsing needs, not just
    programming languages. Because of the superior architecture,
    Visual Parse++ should be used for any application requiring
    a lexer/parser. This includes things like edit field validators,
    list box filters, custom file formats, or end user commands.

13. Validator support. Visual Parse++ provides validator support, for
    verifying strings of data. Can be attached to edit fields or
    used to filter data, like list box items. This is a Visual
    Parse++ application, provided for you convenience.

14. Command line parser. Visual Parse++ provides an easy to use
    command line parser. You define the command line, and the
    supplied interface parses the command line and returns the
    result in an easily accessible format. This is a Visual Parse++
    application, provided for your convenience.
