[PATCH] Add documentation for tuple access expressions
[Thread Prev] | [Thread Next]
- Subject: [PATCH] Add documentation for tuple access expressions
- From: Quentin Carbonneaux <quentin@xxxxxx>
- Reply-to: myrddin-dev@xxxxxxxxxxxxxx
- Date: Mon, 16 Jul 2018 15:59:50 +0000
- To: myrddin-dev@xxxxxxxxxxxxxx
Hi myrddin-dev, I updated the language spec to mention the feature my previous patch introduces. I also fixed some cross-references en passant. Happy hacking. --- doc/lang.txt | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/doc/lang.txt b/doc/lang.txt index 459ac509..2f50eb1e 100644 --- a/doc/lang.txt +++ b/doc/lang.txt @@ -1139,6 +1139,7 @@ TABLE OF CONTENTS: Precedence 11: x.name Member lookup + x.N Tuple component access x++ Postincrement x-- Postdecremendoc/libstd/varargst x# Dereference @@ -1246,10 +1247,10 @@ TABLE OF CONTENTS: Atomic expressions are the building blocks of expressions, and are either parenthesized expressions or directly represent - literals. Literals are covered in depth in section 4.2. + literals. Literals are covered in depth in section 5.1. An identifier specifies a variable, and are looked up via - the scoping rules specified in section 4.9. + the scoping rules specified in section 3.5. Gap expressions (`_`) represent an anonymous sink value. Anything can be assigned to a gap, and it may be used in pattern matching. @@ -1632,7 +1633,20 @@ TABLE OF CONTENTS: (expr : <seq>).len : @idx :: integral @a, numeric @a - 5.2.22: Index: + 5.2.22: Tuple Component Access + + expr.N + + Tuple component access operates on tuples. N must be a natural + number (i.e., 0, 1, 2, ...) and the type of `expr` must be a tuple + type with at least `N+1` components. The result of the expression + is an lvalue of the type of the `N+1`th component. + + Type: + + (expr : (@a0, ..., @aN, ...)).N : @aN + + 5.2.23: Index: expr[idx] @@ -1649,7 +1663,7 @@ TABLE OF CONTENTS: (expr : @a[:])[(idx : @idx)] : @a :: integral, numeric @idx - 5.2.23: Slice: + 5.2.24: Slice: expr[lo:hi], expr[:hi], expr[lo:], expr[:] @@ -1671,7 +1685,7 @@ TABLE OF CONTENTS: (expr : @#)[(lo : @lo) : (hi : @hi)] : @a[:] :: integral, numeric @lo, integral, numeric @hi - 5.2.24: Call: + 5.2.25: Call: expr() expr(arg1, arg2) -- 2.18.0
- Prev by Date: Re: [PATCH] Fix typo in generic sleq implementation
- Next by Date: Re: [PATCH] Support direct tuple access operators "tuple.N"
- Previous by thread: Re: [PATCH] Fix typo in generic sleq implementation
- Next by thread: [PATCH] Add zeroed env pointer when a const fn is passed as an argument.
- Index(es):