Skip to content

Provide exhaustiveness checking algorithms for C++ Pattern Matching

Notifications You must be signed in to change notification settings

camio/exhaustiveness_checking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

exhaustiveness_checking

PURPOSE: Provide exhaustiveness checking algorithms for C++ Pattern Matching.

Description

This repository contains data structures and algorithms that implement algorithms for exhaustiveness checking for Pattern Matching in C++. The code here is not intended to be complete and merely prototypes the essential aspects of the implementation.

There are currently five modules implementing various aspects of the system: types implements data structures representing types in C++, pat provides an abstract syntax tree for C++ patterns, constructor provides a representation for type constructor selections, contrib contains algorithms which determine which patterns contribute to exhaustiveness checking, and lib implements the core algorithms.

TODO

  • Ensure all docs are markdown and use "short descriptions" that don't mention arguments.
  • Make constructor functions into methods.
  • Extend pat_contributes to filter out int primitive literals. E.g. pat_contributes( μ⟦int⟧, μ⟦1⟧) ⇒ false.

About

Provide exhaustiveness checking algorithms for C++ Pattern Matching

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages