diff options
author | John Hodge (sonata) <tpg@mutabah.net> | 2015-01-22 16:30:06 +0800 |
---|---|---|
committer | John Hodge (sonata) <tpg@mutabah.net> | 2015-01-22 16:30:06 +0800 |
commit | feca7097047ef4821c6684f741cb8305567834c8 (patch) | |
tree | 3d99fee42b0fd607d71807d3379c82babd5b4d4a | |
parent | b00eaff5fa2db54633cdb28e397d06c2df6e0a5d (diff) | |
download | mrust-feca7097047ef4821c6684f741cb8305567834c8.tar.gz |
Minor tweaks to pattern parsing (needs rework)
-rw-r--r-- | src/parse/expr.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index e74432f4..d9d42460 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -28,6 +28,15 @@ AST::Expr Parse_ExprBlock(TokenStream& lex) return AST::Expr(Parse_ExprBlockNode(lex));
}
+/// Parse a pattern
+///
+/// Examples:
+/// - `Enum::Variant(a)`
+/// - `(1, a)`
+/// - `1 ... 2`
+/// - `"string"`
+/// - `mut x`
+/// - `mut x @ 1 ... 2`
AST::Pattern Parse_Pattern(TokenStream& lex)
{
TRACE_FUNCTION;
@@ -35,6 +44,12 @@ AST::Pattern Parse_Pattern(TokenStream& lex) AST::Path path;
Token tok;
tok = lex.getToken();
+ // 1. Bind mutability
+ if( tok.type() == TOK_RWORD_MUT )
+ {
+ throw ParseError::Todo("mut bindings");
+ tok = lex.getToken();
+ }
if( tok.type() == TOK_RWORD_REF )
{
throw ParseError::Todo("ref bindings");
|