Root@0..2151
File@0..2151
LineComment@0..71 "// A contract consist ..."
Whitespace@71..72 "\n"
LineComment@72..132 "// the code to be dep ..."
Whitespace@132..133 "\n"
LineComment@133..196 "// The single \"code\" ..."
Whitespace@196..197 "\n"
LineComment@197..260 "// Every (other) name ..."
Whitespace@260..261 "\n"
LineComment@261..346 "// made accessible to ..."
Whitespace@346..347 "\n"
LineComment@347..422 "// The current object ..."
Whitespace@422..423 "\n"
LineComment@423..439 "// are in scope."
Whitespace@439..440 "\n"
Object@440..2151
Object@440..446 "object"
Whitespace@446..447 " "
LiteralString@447..458 "\"Contract1\""
Whitespace@458..459 " "
BraceOpen@459..460 "{"
Whitespace@460..465 "\n "
LineComment@465..513 "// This is the constr ..."
Whitespace@513..518 "\n "
Code@518..1426
Code@518..522 "code"
Whitespace@522..523 " "
Block@523..1426
BraceOpen@523..524 "{"
Whitespace@524..533 "\n "
Statement@533..736
Function@533..736
Function@533..541 "function"
Whitespace@541..542 " "
Identifier@542..550 "allocate"
Arguments@550..557
ParenOpen@550..551 "("
Identifiers@551..555
Identifier@551..555 "size"
ParenClose@555..556 ")"
Whitespace@556..557 " "
Returns@557..564
Returns@557..559 "->"
Whitespace@559..560 " "
Identifiers@560..564
Identifier@560..563 "ptr"
Whitespace@563..564 " "
Block@564..736
BraceOpen@564..565 "{"
Whitespace@565..578 "\n "
Statement@578..609
Assignment@578..609
Identifiers@578..582
Identifier@578..581 "ptr"
Whitespace@581..582 " "
Assign@582..584 ":="
Whitespace@584..585 " "
Expression@585..609
Call@585..609
Identifier@585..590 "mload"
Arguments@590..609
ParenOpen@590..591 "("
Expression@591..595
Literal@591..595
LiteralHex@591..595 "0x40"
ParenClose@595..596 ")"
Whitespace@596..609 "\n "
Statement@609..652
If@609..652
If@609..611 "if"
Whitespace@611..612 " "
Expression@612..624
Call@612..624
Identifier@612..618 "iszero"
Arguments@618..624
ParenOpen@618..619 "("
Expression@619..622
Identifier@619..622 "ptr"
ParenClose@622..623 ")"
Whitespace@623..624 " "
Block@624..652
BraceOpen@624..625 "{"
Whitespace@625..626 " "
Statement@626..638
Assignment@626..638
Identifiers@626..630
Identifier@626..629 "ptr"
Whitespace@629..630 " "
Assign@630..632 ":="
Whitespace@632..633 " "
Expression@633..638
Literal@633..638
LiteralHex@633..637 "0x60"
Whitespace@637..638 " "
BraceClose@638..639 "}"
Whitespace@639..652 "\n "
Statement@652..689
Expression@652..689
Call@652..689
Identifier@652..658 "mstore"
Arguments@658..689
ParenOpen@658..659 "("
Expression@659..663
Literal@659..663
LiteralHex@659..663 "0x40"
Comma@663..664 ","
Whitespace@664..665 " "
Expression@665..679
Call@665..679
Identifier@665..668 "add"
Arguments@668..679
ParenOpen@668..669 "("
Expression@669..672
Identifier@669..672 "ptr"
Comma@672..673 ","
Whitespace@673..674 " "
Expression@674..678
Identifier@674..678 "size"
ParenClose@678..679 ")"
ParenClose@679..680 ")"
Whitespace@680..689 "\n "
BraceClose@689..690 "}"
Whitespace@690..700 "\n\n "
LineComment@700..727 "// first create \"Cont ..."
Whitespace@727..736 "\n "
Statement@736..778
Let@736..778
Let@736..739 "let"
Whitespace@739..740 " "
Identifiers@740..745
Identifier@740..744 "size"
Whitespace@744..745 " "
Assign@745..747 ":="
Whitespace@747..748 " "
Expression@748..778
Call@748..778
Identifier@748..756 "datasize"
Arguments@756..778
ParenOpen@756..757 "("
Expression@757..768
Literal@757..768
LiteralString@757..768 "\"Contract2\""
ParenClose@768..769 ")"
Whitespace@769..778 "\n "
Statement@778..863
Let@778..863
Let@778..781 "let"
Whitespace@781..782 " "
Identifiers@782..789
Identifier@782..788 "offset"
Whitespace@788..789 " "
Assign@789..791 ":="
Whitespace@791..792 " "
Expression@792..863
Call@792..863
Identifier@792..800 "allocate"
Arguments@800..863
ParenOpen@800..801 "("
Expression@801..805
Identifier@801..805 "size"
ParenClose@805..806 ")"
Whitespace@806..815 "\n "
LineComment@815..854 "// This will turn int ..."
Whitespace@854..863 "\n "
Statement@863..978
Expression@863..978
Call@863..978
Identifier@863..871 "datacopy"
Arguments@871..978
ParenOpen@871..872 "("
Expression@872..878
Identifier@872..878 "offset"
Comma@878..879 ","
Whitespace@879..880 " "
Expression@880..903
Call@880..903
Identifier@880..890 "dataoffset"
Arguments@890..903
ParenOpen@890..891 "("
Expression@891..902
Literal@891..902
LiteralString@891..902 "\"Contract2\""
ParenClose@902..903 ")"
Comma@903..904 ","
Whitespace@904..905 " "
Expression@905..909
Identifier@905..909 "size"
ParenClose@909..910 ")"
Whitespace@910..919 "\n "
LineComment@919..969 "// constructor parame ..."
Whitespace@969..978 "\n "
Statement@978..1020
Expression@978..1020
Call@978..1020
Identifier@978..984 "mstore"
Arguments@984..1020
ParenOpen@984..985 "("
Expression@985..1002
Call@985..1002
Identifier@985..988 "add"
Arguments@988..1002
ParenOpen@988..989 "("
Expression@989..995
Identifier@989..995 "offset"
Comma@995..996 ","
Whitespace@996..997 " "
Expression@997..1001
Identifier@997..1001 "size"
ParenClose@1001..1002 ")"
Comma@1002..1003 ","
Whitespace@1003..1004 " "
Expression@1004..1010
Literal@1004..1010
LiteralHex@1004..1010 "0x1234"
ParenClose@1010..1011 ")"
Whitespace@1011..1020 "\n "
Statement@1020..1174
Expression@1020..1174
Call@1020..1174
Identifier@1020..1023 "pop"
Arguments@1023..1174
ParenOpen@1023..1024 "("
Expression@1024..1056
Call@1024..1056
Identifier@1024..1030 "create"
Arguments@1030..1056
ParenOpen@1030..1031 "("
Expression@1031..1037
Identifier@1031..1037 "offset"
Comma@1037..1038 ","
Whitespace@1038..1039 " "
Expression@1039..1052
Call@1039..1052
Identifier@1039..1042 "add"
Arguments@1042..1052
ParenOpen@1042..1043 "("
Expression@1043..1047
Identifier@1043..1047 "size"
Comma@1047..1048 ","
Whitespace@1048..1049 " "
Expression@1049..1051
Literal@1049..1051
LiteralInt@1049..1051 "32"
ParenClose@1051..1052 ")"
Comma@1052..1053 ","
Whitespace@1053..1054 " "
Expression@1054..1055
Literal@1054..1055
LiteralInt@1054..1055 "0"
ParenClose@1055..1056 ")"
ParenClose@1056..1057 ")"
Whitespace@1057..1067 "\n\n "
LineComment@1067..1114 "// now return the run ..."
Whitespace@1114..1123 "\n "
LineComment@1123..1165 "// executing code is ..."
Whitespace@1165..1174 "\n "
Statement@1174..1210
Assignment@1174..1210
Identifiers@1174..1179
Identifier@1174..1178 "size"
Whitespace@1178..1179 " "
Assign@1179..1181 ":="
Whitespace@1181..1182 " "
Expression@1182..1210
Call@1182..1210
Identifier@1182..1190 "datasize"
Arguments@1190..1210
ParenOpen@1190..1191 "("
Expression@1191..1200
Literal@1191..1200
LiteralString@1191..1200 "\"runtime\""
ParenClose@1200..1201 ")"
Whitespace@1201..1210 "\n "
Statement@1210..1340
Assignment@1210..1340
Identifiers@1210..1217
Identifier@1210..1216 "offset"
Whitespace@1216..1217 " "
Assign@1217..1219 ":="
Whitespace@1219..1220 " "
Expression@1220..1340
Call@1220..1340
Identifier@1220..1228 "allocate"
Arguments@1228..1340
ParenOpen@1228..1229 "("
Expression@1229..1233
Identifier@1229..1233 "size"
ParenClose@1233..1234 ")"
Whitespace@1234..1243 "\n "
LineComment@1243..1301 "// This will turn int ..."
Whitespace@1301..1310 "\n "
LineComment@1310..1331 "// a codecopy for EVM"
Whitespace@1331..1340 "\n "
Statement@1340..1394
Expression@1340..1394
Call@1340..1394
Identifier@1340..1348 "datacopy"
Arguments@1348..1394
ParenOpen@1348..1349 "("
Expression@1349..1355
Identifier@1349..1355 "offset"
Comma@1355..1356 ","
Whitespace@1356..1357 " "
Expression@1357..1378
Call@1357..1378
Identifier@1357..1367 "dataoffset"
Arguments@1367..1378
ParenOpen@1367..1368 "("
Expression@1368..1377
Literal@1368..1377
LiteralString@1368..1377 "\"runtime\""
ParenClose@1377..1378 ")"
Comma@1378..1379 ","
Whitespace@1379..1380 " "
Expression@1380..1384
Identifier@1380..1384 "size"
ParenClose@1384..1385 ")"
Whitespace@1385..1394 "\n "
Statement@1394..1419
Expression@1394..1419
Call@1394..1419
Identifier@1394..1400 "return"
Arguments@1400..1419
ParenOpen@1400..1401 "("
Expression@1401..1407
Identifier@1401..1407 "offset"
Comma@1407..1408 ","
Whitespace@1408..1409 " "
Expression@1409..1413
Identifier@1409..1413 "size"
ParenClose@1413..1414 ")"
Whitespace@1414..1419 "\n "
BraceClose@1419..1420 "}"
Whitespace@1420..1426 "\n\n "
Data@1426..1455
Data@1426..1430 "data"
Whitespace@1430..1431 " "
LiteralString@1431..1439 "\"Table2\""
Whitespace@1439..1440 " "
LiteralStringHex@1440..1449 "hex\"4123\""
Whitespace@1449..1455 "\n\n "
Object@1455..1931
Object@1455..1461 "object"
Whitespace@1461..1462 " "
LiteralString@1462..1471 "\"runtime\""
Whitespace@1471..1472 " "
BraceOpen@1472..1473 "{"
Whitespace@1473..1482 "\n "
Code@1482..1786
Code@1482..1486 "code"
Whitespace@1486..1487 " "
Block@1487..1786
BraceOpen@1487..1488 "{"
Whitespace@1488..1501 "\n "
Statement@1501..1717
Function@1501..1717
Function@1501..1509 "function"
Whitespace@1509..1510 " "
Identifier@1510..1518 "allocate"
Arguments@1518..1525
ParenOpen@1518..1519 "("
Identifiers@1519..1523
Identifier@1519..1523 "size"
ParenClose@1523..1524 ")"
Whitespace@1524..1525 " "
Returns@1525..1532
Returns@1525..1527 "->"
Whitespace@1527..1528 " "
Identifiers@1528..1532
Identifier@1528..1531 "ptr"
Whitespace@1531..1532 " "
Block@1532..1717
BraceOpen@1532..1533 "{"
Whitespace@1533..1550 "\n "
Statement@1550..1585
Assignment@1550..1585
Identifiers@1550..1554
Identifier@1550..1553 "ptr"
Whitespace@1553..1554 " "
Assign@1554..1556 ":="
Whitespace@1556..1557 " "
Expression@1557..1585
Call@1557..1585
Identifier@1557..1562 "mload"
Arguments@1562..1585
ParenOpen@1562..1563 "("
Expression@1563..1567
Literal@1563..1567
LiteralHex@1563..1567 "0x40"
ParenClose@1567..1568 ")"
Whitespace@1568..1585 "\n "
Statement@1585..1632
If@1585..1632
If@1585..1587 "if"
Whitespace@1587..1588 " "
Expression@1588..1600
Call@1588..1600
Identifier@1588..1594 "iszero"
Arguments@1594..1600
ParenOpen@1594..1595 "("
Expression@1595..1598
Identifier@1595..1598 "ptr"
ParenClose@1598..1599 ")"
Whitespace@1599..1600 " "
Block@1600..1632
BraceOpen@1600..1601 "{"
Whitespace@1601..1602 " "
Statement@1602..1614
Assignment@1602..1614
Identifiers@1602..1606
Identifier@1602..1605 "ptr"
Whitespace@1605..1606 " "
Assign@1606..1608 ":="
Whitespace@1608..1609 " "
Expression@1609..1614
Literal@1609..1614
LiteralHex@1609..1613 "0x60"
Whitespace@1613..1614 " "
BraceClose@1614..1615 "}"
Whitespace@1615..1632 "\n "
Statement@1632..1673
Expression@1632..1673
Call@1632..1673
Identifier@1632..1638 "mstore"
Arguments@1638..1673
ParenOpen@1638..1639 "("
Expression@1639..1643
Literal@1639..1643
LiteralHex@1639..1643 "0x40"
Comma@1643..1644 ","
Whitespace@1644..1645 " "
Expression@1645..1659
Call@1645..1659
Identifier@1645..1648 "add"
Arguments@1648..1659
ParenOpen@1648..1649 "("
Expression@1649..1652
Identifier@1649..1652 "ptr"
Comma@1652..1653 ","
Whitespace@1653..1654 " "
Expression@1654..1658
Identifier@1654..1658 "size"
ParenClose@1658..1659 ")"
ParenClose@1659..1660 ")"
Whitespace@1660..1673 "\n "
BraceClose@1673..1674 "}"
Whitespace@1674..1688 "\n\n "
LineComment@1688..1703 "// runtime code"
Whitespace@1703..1717 "\n\n "
Statement@1717..1756
Expression@1717..1756
Call@1717..1756
Identifier@1717..1723 "mstore"
Arguments@1723..1756
ParenOpen@1723..1724 "("
Expression@1724..1725
Literal@1724..1725
LiteralInt@1724..1725 "0"
Comma@1725..1726 ","
Whitespace@1726..1727 " "
Expression@1727..1742
Literal@1727..1742
LiteralString@1727..1742 "\"Hello, World!\""
ParenClose@1742..1743 ")"
Whitespace@1743..1756 "\n "
Statement@1756..1780
Expression@1756..1780
Call@1756..1780
Identifier@1756..1762 "return"
Arguments@1762..1780
ParenOpen@1762..1763 "("
Expression@1763..1764
Literal@1763..1764
LiteralInt@1763..1764 "0"
Comma@1764..1765 ","
Whitespace@1765..1766 " "
Expression@1766..1770
Literal@1766..1770
LiteralHex@1766..1770 "0x20"
ParenClose@1770..1771 ")"
Whitespace@1771..1780 "\n "
BraceClose@1780..1781 "}"
Whitespace@1781..1786 "\n "
BraceClose@1786..1787 "}"
Whitespace@1787..1793 "\n\n "
LineComment@1793..1864 "// Embedded object. U ..."
Whitespace@1864..1869 "\n "
LineComment@1869..1926 "// and Contract2 is t ..."
Whitespace@1926..1931 "\n "
Object@1931..2149
Object@1931..1937 "object"
Whitespace@1937..1938 " "
LiteralString@1938..1949 "\"Contract2\""
Whitespace@1949..1950 " "
BraceOpen@1950..1951 "{"
Whitespace@1951..1960 "\n "
Code@1960..2015
Code@1960..1964 "code"
Whitespace@1964..1965 " "
Block@1965..2015
BraceOpen@1965..1966 "{"
Whitespace@1966..1979 "\n "
LineComment@1979..1995 "// code here ..."
Whitespace@1995..2004 "\n "
BraceClose@2004..2005 "}"
Whitespace@2005..2015 "\n\n "
Object@2015..2119
Object@2015..2021 "object"
Whitespace@2021..2022 " "
LiteralString@2022..2031 "\"runtime\""
Whitespace@2031..2032 " "
BraceOpen@2032..2033 "{"
Whitespace@2033..2046 "\n "
Code@2046..2108
Code@2046..2050 "code"
Whitespace@2050..2051 " "
Block@2051..2108
BraceOpen@2051..2052 "{"
Whitespace@2052..2069 "\n "
LineComment@2069..2085 "// code here ..."
Whitespace@2085..2098 "\n "
BraceClose@2098..2099 "}"
Whitespace@2099..2108 "\n "
BraceClose@2108..2109 "}"
Whitespace@2109..2119 "\n\n "
Data@2119..2147
Data@2119..2123 "data"
Whitespace@2123..2124 " "
LiteralString@2124..2132 "\"Table1\""
Whitespace@2132..2133 " "
LiteralStringHex@2133..2142 "hex\"4123\""
Whitespace@2142..2147 "\n "
BraceClose@2147..2148 "}"
Whitespace@2148..2149 "\n"
BraceClose@2149..2150 "}"
Whitespace@2150..2151 "\n"