rep_lang icon indicating copy to clipboard operation
rep_lang copied to clipboard

abstract / concrete syntax interface invariant checking

Open mhuesch opened this issue 3 years ago • 0 comments

I want to note an issue with interfaces - if folks define their own parsers (via their own concrete syntax crate, an ability which we intend to support later) then we will need to define some invariants for the construction of abstract syntax trees. for one, avoiding reserved keywords. if we expose the Expr type, then "invalid" names could be inserted into it.

one way around this would be to have a function fn check_expr(expr: &Expr) -> bool which runs checks on whatever expr is passed in from a concrete syntax module, and asserts that it works with the runtime/abstract syntax machinery.

mhuesch avatar Jun 10 '21 18:06 mhuesch