Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 1.18 KB

todo.md

File metadata and controls

38 lines (29 loc) · 1.18 KB

Separation of grammar and semantic actions

  • terminal and noneTerminal names must be unique! add validation

  • nested rules for DSL methods.

  • custom names for nested rules.

    • $.OPTION("items", function() {
                 $.SUBRULE($.value);
                 $.MANY("values", function() {
                     // allow multiple nesting levels???
                     $.OPTION("prefix", function() {
                       $.CONSUME(Dollar);
                     }) 
                     $.CONSUME(Comma);
                     $.SUBRULE2($.value);
                 });
             });
    • performance impact/mitigation for multiple args support due to the names arg being first

    • unique name per OR alternative

    • validations

      • duplicate custom names?
  • activating semantics directly on nested rules using package namespace "items$values"

  • Nested rules:

  • Full name includes top REAL rule name.
  • Full name is always two levels deep.
  • name must not conflict with other terminal/NonTerminal names used in the same rule.
  • Support multiple nesting
  • Key which acts as shortname for nested rules, use same as lookahead keys.