Related articles |
---|
Meta-S 4.0 Released qjackson@shaw.ca (Quinn Tyler Jackson) (2003-02-06) |
From: | Quinn Tyler Jackson <qjackson@shaw.ca> |
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
Example:
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
Example:
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
Example:
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:
http://www.meta-s.com
Quinn Tyler Jackson
Return to the
comp.compilers page.
Search the
comp.compilers archives again.