Proposed AST
Example 1 - Function body
function a(){
uint x = 5
}{| // Test contract | |
| contract DeclarativeExpressions { | |
| uint a; | |
| uint b = 7; | |
| uint b2=0; | |
| uint public c; | |
| uint constant public d; | |
| uint public constant e; | |
| uint private constant f = 7; | |
| struct S { uint q;} |
Proposed AST
Example 1 - Function body
function a(){
uint x = 5
}{Proposed AST for:
uint [ 7 ] x;{
"type": "StateVariableDeclaration",
"name": "x",
"literal": {
"type": "Type",| /* | |
| AST for: | |
| var (x, y) = (10, 20); | |
| var (a, b) = getMyTuple(); | |
| var (,c) = (10, 20); | |
| var (d,,) = (10, 20, 30); | |
| var (,e,,f,) = (10, 20, 30, 40, 50); | |
| */ | |
| { |
Test
contract Ballot {
struct Voter {
uint weight;
bool voted;
}
function abstain() returns (bool) {AST output for:
Voter airbnb = Voter({
weight: 2,
voted: true,
});{AST for:
assembly {
mstore(0x40, sload(0))
address(0)
byte(0)
return(0x40,32)
}| Compiling ./contracts/Example.sol... | |
| Compiling ./contracts/IsLibrary.sol... | |
| Compiling ./contracts/Loop.sol... | |
| Compiling ./contracts/Migrations.sol... | |
| Compiling ./contracts/PayableExample.sol... | |
| Compiling ./contracts/UsesExample.sol... | |
| Compiling ./contracts/UsesLibrary.sol... | |
| Writing artifacts to ./build/contracts | |
| Compiling ./contracts/Example.sol... | |
| Compiling ./contracts/Migrations.sol... | |
| Writing artifacts to ./build/contracts | |
| Migrations dry-run (simulation) | |
| =============================== | |
| > Network name: 'ropsten-fork' | |
| > Network id: 1337 |
| Compiling ./contracts/Abstract.sol... | |
| Compiling ./contracts/Example.sol... | |
| Compiling ./contracts/ExampleAssert.sol... | |
| Compiling ./contracts/ExampleRevert.sol... | |
| Compiling ./contracts/Loops.sol... | |
| Compiling ./contracts/Migrations.sol... | |
| Compiling ./contracts/RevertWithReason.sol... | |
| Compiling ./contracts/UsesExample.sol... | |
| Writing artifacts to ./build/contracts |