mirror of
https://github.com/AleoHQ/leo.git
synced 2024-11-13 08:47:17 +03:00
Merge pull request #1679 from AleoHQ/abnf-doc-fix-b
[ABNF] Update some documentation
This commit is contained in:
commit
f886890e2b
@ -335,15 +335,26 @@ unary-expression = postfix-expression
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
In order to allow the recursion of the rule to stop,
|
and
|
||||||
we need to regard, in the grammar, a primary expression as a unary expression
|
|
||||||
(i.e. a primary expression is also a unary expression in the grammar;
|
|
||||||
but note that the opposite is not true).
|
|
||||||
However, this is just a grammatical artifact:
|
```
|
||||||
ontologically, a primary expression is not really a unary expression,
|
postfix-expression = primary-expression
|
||||||
because a unary expression is one that consists of
|
/ postfix-expression "." natural
|
||||||
a unary operator and an operand sub-expression.
|
/ ...
|
||||||
These terminological exceptions should be easy to identify in the rules.
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
In order to allow the recursion of the rule to stop, we need to regard, in the
|
||||||
|
grammar, a postfix or primary expression as a unary expression (i.e. a postfix
|
||||||
|
or primary expression is also a unary expression in the grammar; but note that
|
||||||
|
the opposite is not true). However, this is just a grammatical artifact:
|
||||||
|
ontologically, a postfix or primary expression is not really a unary
|
||||||
|
expression, because a unary expression is one that consists of a unary
|
||||||
|
operator and an operand sub-expression. These terminological exceptions
|
||||||
|
should be easy to identify in the rules.
|
||||||
|
|
||||||
|
|
||||||
--------
|
--------
|
||||||
@ -1241,7 +1252,8 @@ Go to: _[circuit-construction](#user-content-circuit-construction)_;
|
|||||||
|
|
||||||
|
|
||||||
After primary expressions, postfix expressions have highest precedence.
|
After primary expressions, postfix expressions have highest precedence.
|
||||||
They apply to primary expressions, and recursively to postfix expressions.
|
They can be primary expressions, and there are a few kinds of postfix
|
||||||
|
expressions that have postfix expression subcomponents.
|
||||||
|
|
||||||
There are postfix expressions to access parts of aggregate values.
|
There are postfix expressions to access parts of aggregate values.
|
||||||
A tuple access selects a component by index (zero-based).
|
A tuple access selects a component by index (zero-based).
|
||||||
@ -1258,7 +1270,7 @@ There are three kinds of function calls:
|
|||||||
top-level function calls,
|
top-level function calls,
|
||||||
instance (i.e. non-static) member function calls, and
|
instance (i.e. non-static) member function calls, and
|
||||||
static member function calls.
|
static member function calls.
|
||||||
What changes is the start, but they all end in an argument list.
|
They start differently, but they all end in an argument list.
|
||||||
|
|
||||||
Accesses to static constants are also postfix expressions.
|
Accesses to static constants are also postfix expressions.
|
||||||
They consist of a named type followed by the constant name,
|
They consist of a named type followed by the constant name,
|
||||||
@ -1355,8 +1367,8 @@ ordering-expression = additive-expression
|
|||||||
Go to: _[additive-expression](#user-content-additive-expression)_;
|
Go to: _[additive-expression](#user-content-additive-expression)_;
|
||||||
|
|
||||||
|
|
||||||
Equalities return booleans but may also operate on booleans;
|
Next in the precedence order are equivalence relations.
|
||||||
the rule below makes them left-associative.
|
These are not associative, since `a == b == c` could be confusing.
|
||||||
|
|
||||||
<a name="equality-expression"></a>
|
<a name="equality-expression"></a>
|
||||||
```abnf
|
```abnf
|
||||||
|
@ -267,15 +267,20 @@
|
|||||||
; / "!" unary-expression
|
; / "!" unary-expression
|
||||||
; / "-" unary-expression
|
; / "-" unary-expression
|
||||||
;
|
;
|
||||||
; In order to allow the recursion of the rule to stop,
|
; and
|
||||||
; we need to regard, in the grammar, a primary expression as a unary expression
|
;
|
||||||
; (i.e. a primary expression is also a unary expression in the grammar;
|
; postfix-expression = primary-expression
|
||||||
; but note that the opposite is not true).
|
; / postfix-expression "." natural
|
||||||
; However, this is just a grammatical artifact:
|
; / ...
|
||||||
; ontologically, a primary expression is not really a unary expression,
|
;
|
||||||
; because a unary expression is one that consists of
|
; In order to allow the recursion of the rule to stop, we need to regard, in the
|
||||||
; a unary operator and an operand sub-expression.
|
; grammar, a postfix or primary expression as a unary expression (i.e. a postfix
|
||||||
; These terminological exceptions should be easy to identify in the rules.
|
; or primary expression is also a unary expression in the grammar; but note that
|
||||||
|
; the opposite is not true). However, this is just a grammatical artifact:
|
||||||
|
; ontologically, a postfix or primary expression is not really a unary
|
||||||
|
; expression, because a unary expression is one that consists of a unary
|
||||||
|
; operator and an operand sub-expression. These terminological exceptions
|
||||||
|
; should be easy to identify in the rules.
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
@ -767,7 +772,8 @@ circuit-inline-element = identifier ":" expression / identifier
|
|||||||
circuit-expression = circuit-construction
|
circuit-expression = circuit-construction
|
||||||
|
|
||||||
; After primary expressions, postfix expressions have highest precedence.
|
; After primary expressions, postfix expressions have highest precedence.
|
||||||
; They apply to primary expressions, and recursively to postfix expressions.
|
; They can be primary expressions, and there are a few kinds of postfix
|
||||||
|
; expressions that have postfix expression subcomponents.
|
||||||
|
|
||||||
; There are postfix expressions to access parts of aggregate values.
|
; There are postfix expressions to access parts of aggregate values.
|
||||||
; A tuple access selects a component by index (zero-based).
|
; A tuple access selects a component by index (zero-based).
|
||||||
@ -784,7 +790,7 @@ circuit-expression = circuit-construction
|
|||||||
; top-level function calls,
|
; top-level function calls,
|
||||||
; instance (i.e. non-static) member function calls, and
|
; instance (i.e. non-static) member function calls, and
|
||||||
; static member function calls.
|
; static member function calls.
|
||||||
; What changes is the start, but they all end in an argument list.
|
; They start differently, but they all end in an argument list.
|
||||||
|
|
||||||
; Accesses to static constants are also postfix expressions.
|
; Accesses to static constants are also postfix expressions.
|
||||||
; They consist of a named type followed by the constant name,
|
; They consist of a named type followed by the constant name,
|
||||||
@ -839,8 +845,8 @@ ordering-expression = additive-expression
|
|||||||
/ additive-expression "<=" additive-expression
|
/ additive-expression "<=" additive-expression
|
||||||
/ additive-expression ">=" additive-expression
|
/ additive-expression ">=" additive-expression
|
||||||
|
|
||||||
; Equalities return booleans but may also operate on booleans;
|
; Next in the precedence order are equivalence relations.
|
||||||
; the rule below makes them left-associative.
|
; These are not associative, since `a == b == c` could be confusing.
|
||||||
|
|
||||||
equality-expression = ordering-expression
|
equality-expression = ordering-expression
|
||||||
/ ordering-expression "==" ordering-expression
|
/ ordering-expression "==" ordering-expression
|
||||||
|
Loading…
Reference in New Issue
Block a user