tagged by: projectional editor

A grammar for projectional editor

Describing a language editor can be repetitive, for instance when you have to define expressions. expression '+' expression and expression '*' expression is a typical example. From the grammar file that describes the language structure it's possible to recognize repetitive rule structures and build an editor in a consistent way.

The PE project defines a grammar and generates AST in a way not related to any projectional editor. PE4MPS project imports the generated ASTs into MPS generating for example from this rule:

      strict=STRICT? type=GraphType name=string?
      statementList<indentList('{', '}')>=Statement*

this MPS editor:

Graph editor example