Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

abstract / concrete syntax interface invariant checking #28

Open
mhuesch opened this issue Jun 10, 2021 · 0 comments
Open

abstract / concrete syntax interface invariant checking #28

mhuesch opened this issue Jun 10, 2021 · 0 comments

Comments

@mhuesch
Copy link
Contributor

mhuesch commented Jun 10, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant