diff options
author | chriseth <chris@ethereum.org> | 2017-06-23 17:33:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-23 17:33:03 +0800 |
commit | b00d7a6911e5378d8207a07e7df1ffaf23419c8c (patch) | |
tree | 5ba47a72e15e68b4b2b658a3efa0aae602f71176 /docs | |
parent | 50e8a887a4647e6f2981d43a85f3a7f9763e4146 (diff) | |
parent | 9fc4c877d35f87d6efef6ca9143d196c9cfb9f7f (diff) | |
download | dexon-solidity-b00d7a6911e5378d8207a07e7df1ffaf23419c8c.tar.gz dexon-solidity-b00d7a6911e5378d8207a07e7df1ffaf23419c8c.tar.zst dexon-solidity-b00d7a6911e5378d8207a07e7df1ffaf23419c8c.zip |
Merge pull request #2401 from federicobond/update-grammar
grammar.txt: Fix grammar for f.gas(p).value(q)() style calls
Diffstat (limited to 'docs')
-rw-r--r-- | docs/grammar.txt | 20 | ||||
-rw-r--r-- | docs/miscellaneous.rst | 4 |
2 files changed, 17 insertions, 7 deletions
diff --git a/docs/grammar.txt b/docs/grammar.txt index b38b7ffa..6c041460 100644 --- a/docs/grammar.txt +++ b/docs/grammar.txt @@ -20,9 +20,12 @@ StateVariableDeclaration = TypeName ( 'public' | 'internal' | 'private' )? Ident UsingForDeclaration = 'using' Identifier 'for' ('*' | TypeName) ';' StructDefinition = 'struct' Identifier '{' ( VariableDeclaration ';' (VariableDeclaration ';')* )? '}' + ModifierDefinition = 'modifier' Identifier ParameterList? Block +ModifierInvocation = Identifier ( '(' ExpressionList? ')' )? + FunctionDefinition = 'function' Identifier? ParameterList - ( FunctionCall | Identifier | 'constant' | 'payable' | 'external' | 'public' | 'internal' | 'private' )* + ( ModifierInvocation | 'constant' | 'payable' | 'external' | 'public' | 'internal' | 'private' )* ( 'returns' ParameterList )? ( ';' | Block ) EventDefinition = 'event' Identifier IndexedParameterList 'anonymous'? ';' @@ -72,8 +75,13 @@ VariableDefinition = ('var' IdentifierList | VariableDeclaration) ( '=' Expressi IdentifierList = '(' ( Identifier? ',' )* Identifier? ')' // Precedence by order (see github.com/ethereum/solidity/pull/732) -Expression = - ( Expression ('++' | '--') | FunctionCall | IndexAccess | MemberAccess | '(' Expression ')' ) +Expression + = Expression ('++' | '--') + | NewExpression + | IndexAccess + | MemberAccess + | FunctionCall + | '(' Expression ')' | ('!' | '~' | 'delete' | '++' | '--' | '+' | '-') Expression | Expression '**' Expression | Expression ('*' | '/' | '%') Expression @@ -90,18 +98,18 @@ Expression = | Expression ('=' | '|=' | '^=' | '&=' | '<<=' | '>>=' | '+=' | '-=' | '*=' | '/=' | '%=') Expression | PrimaryExpression -PrimaryExpression = Identifier - | BooleanLiteral +PrimaryExpression = BooleanLiteral | NumberLiteral | HexLiteral | StringLiteral | TupleExpression + | Identifier | ElementaryTypeNameExpression ExpressionList = Expression ( ',' Expression )* NameValueList = Identifier ':' Expression ( ',' Identifier ':' Expression )* -FunctionCall = ( PrimaryExpression | NewExpression | TypeName ) ( ( '.' Identifier ) | ( '[' Expression ']' ) )* '(' FunctionCallArguments ')' +FunctionCall = Expression '(' FunctionCallArguments ')' FunctionCallArguments = '{' NameValueList? '}' | ExpressionList? diff --git a/docs/miscellaneous.rst b/docs/miscellaneous.rst index 2e0ccf45..17f2dcf9 100644 --- a/docs/miscellaneous.rst +++ b/docs/miscellaneous.rst @@ -394,12 +394,14 @@ The following is the order of precedence for operators, listed in order of evalu +============+=====================================+============================================+ | *1* | Postfix increment and decrement | ``++``, ``--`` | + +-------------------------------------+--------------------------------------------+ -| | Function-like call | ``<func>(<args...>)`` | +| | New expression | ``new <typename>`` | + +-------------------------------------+--------------------------------------------+ | | Array subscripting | ``<array>[<index>]`` | + +-------------------------------------+--------------------------------------------+ | | Member access | ``<object>.<member>`` | + +-------------------------------------+--------------------------------------------+ +| | Function-like call | ``<func>(<args...>)`` | ++ +-------------------------------------+--------------------------------------------+ | | Parentheses | ``(<statement>)`` | +------------+-------------------------------------+--------------------------------------------+ | *2* | Prefix increment and decrement | ``++``, ``--`` | |