SDF2 o 2

SDF: Modular Syntax Definition Formalism
Proposed Changes

A summary of changes from SDf.2.1 to SDF.2.2 :

  • The syntax of Tools.ATerms will be used for SDF attributes for example: A -> B {left} B -> C {aap(noot,mies)}

  • SDF layout is defined in a separate module and imported at the top. This allows other modules to be reused without inheriting the SDF layout and comment conventions.

  • Tools.ATerm and SDF unquoted literals are distinguished using the sort UQSdfLiteral?.

  • The "definition" keyword is removed. An SDF definition is just a sequence of SDF modules: Module* -> Definition

  • The following file extensions will be used for SDF modules and definitions:
    • .sdf for SDF modules
    • .def for SDF definitions

  • The SDF grammar will contain constructor annotations which define the abstract syntax of SDF

  • Three new constructors are introduced in AsFix:
    • qlit to represent quoted literals
    • uqlit to represent unquoted literals
    • flatlex to represent flattened lexicals

  • The production sorts Symbols -> Grammar has been replaced bu sorts Sorts -> Grammar

Unresolved Issues

  • Do we need directly visible kernel syntax?

  • Are there convincing examples of kernel syntax?
  • Why can these not be handled by lexical syntax?

  • How do the sorts in kernel syntax and other sections relate?

  • Do we need aliases?

  • Why Symbols in parameter list following module name?

  • Keyword "Set" should be "set"

  • Do we need the "(" Symbol "=>" Symbol ")" syntax?

  • Why are the lookaheads "" {Lookahead ","}* "?" visible? Should belong to kernel syntax.

  • How to add GrammarAnnotations??

Sdf.SDF2o2 moved from Tools.SDF2o2 on 09 Feb 2004 - 14:40 by MartinBravenboer