|
|
@ -1,7 +1,7 @@ |
|
|
|
ContractDefinition = 'contract' Identifier |
|
|
|
( 'is' InheritanceSpecifier (',' InheritanceSpecifier )* )? |
|
|
|
'{' ContractPart* '}' |
|
|
|
ContractPart = StateVariableDeclaration | StructDefinition | ModifierDefinition | FunctionDefinition |
|
|
|
ContractPart = StateVariableDeclaration | StructDefinition | ModifierDefinition | FunctionDefinition | EnumDefinition |
|
|
|
|
|
|
|
InheritanceSpecifier = Identifier ( '(' Expression ( ',' Expression )* ')' )? |
|
|
|
StructDefinition = 'struct' Identifier '{' |
|
|
@ -11,6 +11,9 @@ ModifierDefinition = 'modifier' Identifier ParameterList? Block |
|
|
|
FunctionDefinition = 'function' Identifier ParameterList |
|
|
|
( Identifier | 'constant' | 'public' | 'protected' | 'private' )* |
|
|
|
( 'returns' ParameterList )? Block |
|
|
|
|
|
|
|
EnumValue = Identifier |
|
|
|
EnumDefinition = 'enum' '{' EnumValue (',' EnumValue)* '}' ';' |
|
|
|
ParameterList = '(' ( VariableDeclaration (',' VariableDeclaration)* )? ')' |
|
|
|
// semantic restriction: mappings and structs (recursively) containing mappings |
|
|
|
// are not allowed in argument lists |
|
|
|