diff --git a/src/expressions.md b/src/expressions.md index 8de000937..0cb71959f 100644 --- a/src/expressions.md +++ b/src/expressions.md @@ -1,5 +1,31 @@ # Expressions +> **Syntax** +> _Expression_ : +>       [_LiteralExpression_] +>    | [_PathExpression_] +>    | [_BlockExpression_] +>    | [_OperatorExpression_] +>    | [_GroupedExpression_] +>    | [_ArrayExpression_] +>    | [_IndexExpression_] +>    | [_TupleExpression_] +>    | [_TupleIndexingExpression_] +>    | [_StructExpression_] +>    | [_EnumerationVariantExpression_] +>    | [_CallExpression_] +>    | [_MethodCallExpression_] +>    | [_FieldExpression_] +>    | [_ClosureExpression_] +>    | [_LoopExpression_] +>    | [_ContinueExpression_] +>    | [_BreakExpression_] +>    | [_RangeExpression_] +>    | [_IfExpression_] +>    | [_IfLetExpression_] +>    | [_MatchExpression_] +>    | [_ReturnExpression_] + An expression may have two roles: it always produces a *value*, and it may have *effects* (otherwise known as "side effects"). An expression *evaluates to* a value, and has effects during *evaluation*. Many expressions contain @@ -292,3 +318,27 @@ exist in `core::ops` and `core::cmp` with the same names. [static variables]: items/static-items.html [Temporary values]: #temporary-lifetimes [Variables]: variables.html + +[_ArrayExpression_]: expressions/array-expr.html +[_BlockExpression_]: expressions/block-expr.html +[_BreakExpression_]: expressions/loop-expr.html#break-expressions +[_CallExpression_]: expressions/call-expr.html +[_ClosureExpression_]: expressions/closure-expr.html +[_ContinueExpression_]: expressions/loop-expr.html#continue-expressions +[_EnumerationVariantExpression_]: expressions/enum-variant-expr.html +[_FieldExpression_]: expressions/field-expr.html +[_GroupedExpression_]: expressions/grouped-expr.html +[_IfExpression_]: expressions/if-expr.html#if-expressions +[_IfLetExpression_]: expressions/if-expr.html#if-let-expressions +[_IndexExpression_]: expressions/array-expr.html#array-and-slice-indexing-expressions +[_LiteralExpression_]: expressions/literal-expr.html +[_LoopExpression_]: expressions/loop-expr.html +[_MatchExpression_]: expressions/match-expr.html +[_MethodCallExpression_]: expressions/method-call-expr.html +[_OperatorExpression_]: expressions/operator-expr.html +[_PathExpression_]: expressions/path-expr.html +[_RangeExpression_]: expressions/range-expr.html +[_ReturnExpression_]: expressions/return-expr.html +[_StructExpression_]: expressions/struct-expr.html +[_TupleExpression_]: expressions/tuple-expr.html +[_TupleIndexingExpression_]: expressions/tuple-expr.html#tuple-indexing-expressions