*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 Tools.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 Tools.GrammarAnnotations?