mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
grammar.txt: Fix grammar for f.gas(p).value(q)() style calls
This commit is contained in:
parent
bffb8c404f
commit
f0f1e5abfa
@ -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,12 @@ 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 ('++' | '--')
|
||||
| FunctionCall
|
||||
| NewExpression
|
||||
| MemberAccess
|
||||
| IndexAccess
|
||||
| ('!' | '~' | 'delete' | '++' | '--' | '+' | '-') Expression
|
||||
| Expression '**' Expression
|
||||
| Expression ('*' | '/' | '%') Expression
|
||||
@ -101,7 +108,7 @@ PrimaryExpression = Identifier
|
||||
ExpressionList = Expression ( ',' Expression )*
|
||||
NameValueList = Identifier ':' Expression ( ',' Identifier ':' Expression )*
|
||||
|
||||
FunctionCall = ( PrimaryExpression | NewExpression | TypeName ) ( ( '.' Identifier ) | ( '[' Expression ']' ) )* '(' FunctionCallArguments ')'
|
||||
FunctionCall = Expression '(' FunctionCallArguments ')'
|
||||
FunctionCallArguments = '{' NameValueList? '}'
|
||||
| ExpressionList?
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user