First cut of adding Tagged Types to Wyvern. Currently the tagged keyword
works for types and classes.
Added parsing support for matching over tagged types. Wrote some test
cases to verify this functionality.
Merge branch 'master' of https://github.com/wyvernlang/wyvern into TaggedTypes
Refined parser to handle more than 1 case in match statement. Added
another test case for this behaviour.
Updated parser to instantiate correct objects instead of placeholders.
Created Case class and updated the Match class to use it internally.
Updated parser to handle multiline matchc statements properly. Updated
test cases to reflect changes in way match statements are parsed.
Changed match to take an AST instead of a variable name. Updated the tag
tests.
Added typechecking for duplicate tags. Added an error message for this.
Added a test to check the correct error is thrown.
Updated test cases.
Added more type checking to match statement. Added some error messages
related to the type-checking (and some not). Added more test cases for
the different error messages, and some for the interpreter.
Minor revision to error message.
Added some (currently failing) test cases which will test "case of" and
"comprises" additions to tagged types.
From meeting.
Typechecked expression we're matching over, allowing interpreter to work
properly for match. Also wrote another test case for the interpreter.
Added the TaggedInfo class to encapsulate details about case of and
comprises tags. Added parsing of these constructs to parser. Altered
some tests to use pass properly.
Merged in from Alex's changes.
Change to ClassDeclaration.java and the grammar to instantiate and pass
in the TaggedInfo object. Beginnings of type-checking for tagged
information.
Initial commit of TagBinding.
Altered grammar slightly to allow for not having a default case in match
statement.
Updated formatting of grammar.