diff options
author | Federico Bond <federicobond@gmail.com> | 2016-12-28 10:08:57 +0800 |
---|---|---|
committer | Federico Bond <federicobond@gmail.com> | 2016-12-28 10:08:57 +0800 |
commit | 28550ac9ff52237ac2c9cf1919dd3adac017eca0 (patch) | |
tree | 669725bd02dfd09943db80c7c71a09fee8229659 /docs/grammar.txt | |
parent | eafd852a766645da0cb466bff681b9bbb1d6da00 (diff) | |
download | dexon-solidity-28550ac9ff52237ac2c9cf1919dd3adac017eca0.tar.gz dexon-solidity-28550ac9ff52237ac2c9cf1919dd3adac017eca0.tar.zst dexon-solidity-28550ac9ff52237ac2c9cf1919dd3adac017eca0.zip |
Add UserDefinedTypeName to grammar.txt
Diffstat (limited to 'docs/grammar.txt')
-rw-r--r-- | docs/grammar.txt | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/docs/grammar.txt b/docs/grammar.txt index c9f7f448..f18ef2f3 100644 --- a/docs/grammar.txt +++ b/docs/grammar.txt @@ -14,7 +14,7 @@ ContractDefinition = ( 'contract' | 'library' ) Identifier ContractPart = StateVariableDeclaration | UsingForDeclaration | StructDefinition | ModifierDefinition | FunctionDefinition | EventDefinition | EnumDefinition -InheritanceSpecifier = Identifier ( '(' Expression ( ',' Expression )* ')' )? +InheritanceSpecifier = UserDefinedTypeName ( '(' Expression ( ',' Expression )* ')' )? StateVariableDeclaration = TypeName ( 'public' | 'internal' | 'private' )? Identifier ('=' Expression)? ';' UsingForDeclaration = 'using' Identifier 'for' ('*' | TypeName) ';' @@ -36,7 +36,15 @@ TypeNameList = '(' ( TypeName (',' TypeName )* )? ')' // semantic restriction: mappings and structs (recursively) containing mappings // are not allowed in argument lists VariableDeclaration = TypeName Identifier -TypeName = ElementaryTypeName | Identifier StorageLocation? | Mapping | ArrayTypeName | FunctionTypeName + +TypeName = ElementaryTypeName + | UserDefinedTypeName StorageLocation? + | Mapping + | ArrayTypeName + | FunctionTypeName + +UserDefinedTypeName = Identifier ( '.' Identifier )* + Mapping = 'mapping' '(' ElementaryTypeName '=>' TypeName ')' ArrayTypeName = TypeName '[' Expression? ']' StorageLocation? FunctionTypeName = 'function' TypeNameList ( 'internal' | 'external' | 'constant' | 'payable' )* |