Meta-S 4.0 Released

Quinn Tyler Jackson <>
6 Feb 2003 00:13:11 -0500

          From comp.compilers

Related articles
Meta-S 4.0 Released (Quinn Tyler Jackson) (2003-02-06)
| List of all articles for this month |

From: Quinn Tyler Jackson <>
Newsgroups: comp.compilers
Date: 6 Feb 2003 00:13:11 -0500
Organization: Compilers Central
Keywords: parse, tools, available
Posted-Date: 06 Feb 2003 00:13:11 EST

Jackson Solutions is happy to announce the release of version 4.0 of
the Meta-S Grammar Development System.

Meta-S is a visual grammar development system that allows you to
iteratively design, develop, and test grammars just as you would write
a program. Once you are confident that a grammar is behaving
correctly, you generate a portable C++ parser class that represents a
grammar that behaves exactly as in the IDE.

# Meta-S grammars are:

        * Type 0 adaptive

        Grammars that contain both predicates and binding can emulate an
infinite tape Turing Machine.

        * dynamic

        Grammars are compiled at run time, thus allowing for dynamic
changes to the grammar, or loading from text sources.

# Meta-S grammars allow you to, without external code:

        * build parse trees and symbol tables


        R ::= "DECLARE" ## $d.v<-(id) ## "AS" ## $(d.v).dt<-(type);

        The above example adds id to the declared variables table, and
remembers the declared variable's data type.

        * effect sophisticated semantic checking


        R ::= "FOR" ## ($v(id)<v=d.v>)<(v).dt=numeric_type> ## "=" ...

        The above example verifies that the variable in a BASIC-type FOR
statement has been previously declared, and that it is a numeric_type
before continuing with the parse.

        * generate custom errors


        R ::= "FOR" ## ($v(id)<v=d.v /"undeclared variable"/>) ...

  The above example generates the run-time parsing error "undeclared
variable" if the variable referenced in the FOR statement has not been
previously declared.

# Using the integrated profiler, you can:

        * test grammar efficiency without writing code

        Characters/Sec., Lines/Sec., Ticks/Hit, Ticks/Miss

        * guarantee production coverage against test data

          View how many times each production hits and misses.

# Some of the example grammars included with version 4.0:

        * C++ (this grammar is still experimental)

        * C# (conforms to published Microsoft C# specification)

        * HTML/XML (grammar adapts to the stricter rules of XML based upon
input encountered)

        * Examples of classically context-sensitive languages such as:

                - a^n b^n c^n
                - a^n b^m c^n d^m (cross agreement)
                - a^n b^m c^mn
                - w w (redoubling, ie. dogdog or catcat)

For more information, visit:

Quinn Tyler Jackson

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.