mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix StructDef. Add BoolLiteral. Def NumLiteral, StringLiteral and Identifier.
This commit is contained in:
parent
1e2f071a11
commit
f003bdafa6
@ -5,7 +5,7 @@ ContractPart = StateVariableDeclaration | StructDefinition | ModifierDefinition
|
|||||||
|
|
||||||
InheritanceSpecifier = Identifier ( '(' Expression ( ',' Expression )* ')' )?
|
InheritanceSpecifier = Identifier ( '(' Expression ( ',' Expression )* ')' )?
|
||||||
StructDefinition = 'struct' Identifier '{'
|
StructDefinition = 'struct' Identifier '{'
|
||||||
( VariableDeclaration (';' VariableDeclaration)* )? '}'
|
( VariableDeclaration ';' (VariableDeclaration ';')* )? '}'
|
||||||
StateVariableDeclaration = TypeName ( 'public' | 'internal' | 'private' )? Identifier ';'
|
StateVariableDeclaration = TypeName ( 'public' | 'internal' | 'private' )? Identifier ';'
|
||||||
ModifierDefinition = 'modifier' Identifier ParameterList? Block
|
ModifierDefinition = 'modifier' Identifier ParameterList? Block
|
||||||
FunctionDefinition = 'function' Identifier ParameterList
|
FunctionDefinition = 'function' Identifier ParameterList
|
||||||
@ -29,7 +29,7 @@ Statement = IfStatement | WhileStatement | ForStatement | Block |
|
|||||||
ExpressionStatement = Expression
|
ExpressionStatement = Expression
|
||||||
IfStatement = 'if' '(' Expression ')' Statement ( 'else' Statement )?
|
IfStatement = 'if' '(' Expression ')' Statement ( 'else' Statement )?
|
||||||
WhileStatement = 'while' '(' Expression ')' Statement
|
WhileStatement = 'while' '(' Expression ')' Statement
|
||||||
VardefOrExprStmt = Variabledefinition | ExpressionStatement
|
VardefOrExprStmt = VariableDefinition | ExpressionStatement
|
||||||
ForStatement = 'for' '(' (VardefOrExprStmt)? ';' (Expression)? ';' (ExpressionStatement)? ')' Statement
|
ForStatement = 'for' '(' (VardefOrExprStmt)? ';' (Expression)? ';' (ExpressionStatement)? ')' Statement
|
||||||
Continue = 'continue'
|
Continue = 'continue'
|
||||||
Break = 'break'
|
Break = 'break'
|
||||||
@ -50,7 +50,12 @@ FunctionCall = Identifier '(' Expression? ( ',' Expression )* ')'
|
|||||||
NewExpression = 'new' Identifier
|
NewExpression = 'new' Identifier
|
||||||
MemberAccess = Expression '.' Identifier
|
MemberAccess = Expression '.' Identifier
|
||||||
IndexAccess = Expression '[' Expression? ']'
|
IndexAccess = Expression '[' Expression? ']'
|
||||||
PrimaryExpression = Identifier | NumberLiteral | StringLiteral | ElementaryTypeName | '(' Expression ')'
|
PrimaryExpression = Identifier | BooleanLiteral | NumberLiteral | StringLiteral | ElementaryTypeName | '(' Expression ')'
|
||||||
|
|
||||||
|
BooleanLiteral = 'true' | 'false'
|
||||||
|
NumberLiteral = [0-9]+
|
||||||
|
StringLiteral = '"' [a-zA-Z_0-9]* '"'
|
||||||
|
Identifier = [a-zA-Z_] [a-zA-Z_0-9]*
|
||||||
|
|
||||||
ElementaryTypeName = 'address' | 'bool' | 'string'
|
ElementaryTypeName = 'address' | 'bool' | 'string'
|
||||||
| 'int' | 'int8' | 'int16' | 'int24' | 'int32' | 'int40' | 'int48' | 'int56' | 'int64' | 'int72' | 'int80' | 'int88' | 'int96' | 'int104' | 'int112' | 'int120' | 'int128' | 'int136' | 'int144' | 'int152' | 'int160' | 'int168' | 'int176' | 'int184' | 'int192' | 'int200' | 'int208' | 'int216' | 'int224' | 'int232' | 'int240' | 'int248' | 'int256'
|
| 'int' | 'int8' | 'int16' | 'int24' | 'int32' | 'int40' | 'int48' | 'int56' | 'int64' | 'int72' | 'int80' | 'int88' | 'int96' | 'int104' | 'int112' | 'int120' | 'int128' | 'int136' | 'int144' | 'int152' | 'int160' | 'int168' | 'int176' | 'int184' | 'int192' | 'int200' | 'int208' | 'int216' | 'int224' | 'int232' | 'int240' | 'int248' | 'int256'
|
||||||
|
Loading…
Reference in New Issue
Block a user