Project type: Making a change to the semantics (and possibly syntax) of an existing, widely-used programming language to fix some problem you (or the language’s community) perceives in that language.
How our project meets the requirements of its project type: We are changing the semantics of how pattern-matching works on a reasonably widely-used language (OCaml). This fixes a problem that prevents string matching to behave properly when the match cases are not string literals.
100%: Support using variables in match statements, as well as allowing for matching multiple items at the same time in a single match statement.
80%: Support using variables in matching single items in match statements for strings. Low risk approach because we do not need to consider language semantics that affect how multiple items are matched, as well as making syntax decisions for the multiple match.
Three documents as promising starting points:
- Official and officially recommended tutorials on pattern matching
- Documentation on patterns and the EBNF defining a pattern.
- Extending OCaml syntax for an overview for what goes into extending the grammar for OCaml (nice to know but might not apply for our case).