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 |