Christian
f35ee00ca2
Bit operators should bind more strongly than comparison operators.
2014-12-18 17:19:42 +01:00
chriseth
8e87e85937
Merge pull request #623 from chriseth/sol_constructorChecks
...
Checks for the constructor and ability to call functions
2014-12-17 15:18:49 +01:00
Christian
ff143b06c4
Add functions needed by constructor.
2014-12-16 23:49:45 +01:00
Christian
5e148ae4b6
Fix: Resolve function types of all contracts before checking types inside functions.
2014-12-16 23:49:02 +01:00
chriseth
350953e598
Merge pull request #621 from chriseth/sol_createContracts
...
Contract creation ("new" operator).
2014-12-16 19:47:36 +01:00
Christian
a1f61684b0
Check that constructor does not have "returns" directive.
2014-12-15 16:09:50 +01:00
Christian
17c433e7c9
Packing and unpacking of constructor arguments.
2014-12-15 13:05:18 +01:00
Christian
ab5347100b
Create contracts.
2014-12-15 13:05:18 +01:00
Christian
7d8ec26141
Merge remote-tracking branch 'ethereum/develop' into sol_swapConstants
...
Conflicts:
test/solidityOptimizerTest.cpp
2014-12-12 17:22:45 +01:00
chriseth
1705ea1927
Merge pull request #584 from chriseth/sol_strings
...
String types.
2014-12-12 17:14:43 +01:00
Christian
7ad8f94a7e
Do not add at the end of the function selector "loop".
2014-12-11 17:48:44 +01:00
Christian
c68d1c62e0
Swap literals to the end if optimizing.
2014-12-11 17:48:44 +01:00
chriseth
1db9bc1651
Whitespace change.
2014-12-11 17:04:26 +01:00
Christian
568babfb5f
Some (few) tests for the optimizer.
2014-12-11 16:37:17 +01:00
Christian
6dcb545cc8
Support empty strings.
2014-12-11 14:19:11 +01:00
chriseth
1d17d34979
Merge pull request #586 from LefterisJP/natspec_contract_tags
...
Natspec title and author tag.
2014-12-10 19:23:57 +01:00
Christian
1a76615a87
Tests for empty and too long strings.
2014-12-10 17:15:10 +01:00
Christian
bf8ea705b8
String types.
2014-12-10 16:30:20 +01:00
chriseth
93722eab8a
Merge pull request #582 from chriseth/sol_varSizeVariables
...
Variably sized elements on the stack
2014-12-10 14:49:12 +01:00
Christian
125e39dd01
Variable-size stack elements for expression compiler.
2014-12-08 22:26:22 +01:00
Christian
7be59036e5
Register variably-sized variables on stack.
2014-12-08 16:56:41 +01:00
Christian
a78aff544c
Calling functions of other contracts.
2014-12-08 12:39:29 +01:00
Christian
3bc5e142dd
Merge remote-tracking branch 'ethereum/develop' into sol_import
...
Conflicts:
libsolidity/CompilerStack.cpp
libsolidity/CompilerStack.h
libsolidity/InterfaceHandler.cpp
libsolidity/InterfaceHandler.h
solc/main.cpp
test/solidityJSONInterfaceTest.cpp
test/solidityNatspecJSON.cpp
2014-12-08 12:07:17 +01:00
Christian
8635399597
Comments and braces.
2014-12-07 09:46:21 +01:00
Christian
8e96de4f9c
Merge remote-tracking branch 'ethereum/develop' into sol_import
...
Conflicts:
libsolidity/CompilerStack.cpp
libsolidity/CompilerStack.h
solc/main.cpp
2014-12-05 15:27:07 +01:00
Christian
69da6df77d
Improved external interface for multi-source and multi-contract compilation.
2014-12-03 18:52:28 +01:00
Christian
445ba10d3b
Multi-source and multi-contract compiler.
2014-12-03 18:51:59 +01:00
Christian
5b6a211b8a
Import directive.
2014-12-03 10:44:46 +01:00
Christian
5cecf5699b
Disallow assignments to structs and mappings.
2014-12-01 17:33:21 +01:00
Christian
0cd1e76553
Global functions.
2014-11-26 15:42:54 +01:00
Christian
aabb54d525
Sending ether.
2014-11-26 15:35:25 +01:00
Christian
aa0fa2209a
More general function types and references.
2014-11-26 15:35:25 +01:00
Christian
6182dae87b
Access to blockchain data.
2014-11-24 13:24:03 +01:00
Christian
59cd984f05
Another test for struct references.
2014-11-23 21:28:45 +01:00
Christian
6cb0d1baa0
Magic variables.
2014-11-23 21:28:45 +01:00
Christian
c5a012cdca
Contracts as types and framework for special global variables.
2014-11-23 21:28:44 +01:00
chriseth
596e7030f7
Merge pull request #524 from LefterisJP/sol_parse_comments
...
Solidity scanner taking documentation comments into account
2014-11-21 15:35:17 +01:00
Christian
4f2008e8d8
Special handling for constructor.
2014-11-19 13:19:43 +01:00
chriseth
09be38b0c1
Merge pull request #515 from chriseth/sol_structs
...
Mappings and structs for Solidity
2014-11-17 22:41:23 +01:00
Christian
558d0999c8
Struct types.
2014-11-14 14:08:14 +01:00
Christian
9f64159620
Mapping types.
2014-11-14 14:08:14 +01:00
Christian
1b405a6957
Provide interface for calls in JSON and some other formatting changes.
2014-11-11 17:41:48 +01:00
Christian
381bec8284
Working template magic for void function.
2014-11-11 11:41:49 +01:00
Christian
9d8fe1a091
Merge remote-tracking branch 'ethereum/develop' into sol_jumptable
...
Conflicts:
libsolidity/Compiler.cpp
2014-11-11 10:39:59 +01:00
Christian
f0dd0d797e
Allow void return type.
2014-11-10 18:08:26 +01:00
Christian
315223fc41
Tests on ranges of input data.
2014-11-10 15:38:06 +01:00
Christian
3fbe72cc47
Merge remote-tracking branch 'ethereum/develop' into sol_optimizer
...
Conflicts:
libevmcore/Instruction.cpp
2014-11-10 13:30:59 +01:00
Christian
3a016ea0b4
Replace function selector jump table by more resilient linear time check.
2014-11-10 13:13:53 +01:00
Christian
34a01c5c30
Merge remote-tracking branch 'ethereum/develop' into sol_stateVariables
...
Conflicts:
libsolidity/ExpressionCompiler.cpp
2014-11-10 00:45:58 +01:00
Christian
1b1b72046b
State variables.
2014-11-07 20:02:57 +01:00
Christian
4fe64b22de
Merge remote-tracking branch 'ethereum/develop' into sol_optimizer
2014-11-07 02:13:31 +01:00
Christian
d7f4e02dbd
Evaluate expressions in convenient order.
2014-11-07 02:07:59 +01:00
Christian
1dfc8d9f2b
Merge remote-tracking branch 'ethereum/develop' into sol_typePromotion
2014-11-06 22:07:02 +01:00
Christian
26150755f6
Merge remote-tracking branch 'ethereum/develop' into sol_optimizer
2014-11-06 15:34:35 +01:00
Christian
34f16940ea
Moved instructions and assembly to new libevmcore.
2014-11-06 14:50:18 +01:00
Christian
008a91ca9d
Ignore break and continue outside of loops.
2014-11-06 02:46:48 +01:00
Christian
b20e70b4b4
Tests for break and continue in nested loops.
2014-11-06 02:46:40 +01:00
Christian
08cba0653f
Support for negative literals.
2014-11-06 02:44:43 +01:00
Christian
b9cc3baf40
Fixes for test framework (sign the transaction).
2014-11-06 02:36:39 +01:00
Christian
04e7977ea1
Type promotion fixes and tests.
2014-11-06 02:36:39 +01:00
Christian
010710353a
Proper type promotion and conversion.
2014-11-06 02:36:39 +01:00
Christian
e22cad4d35
Tests for type conversion at comparison.
2014-11-06 02:22:24 +01:00
Christian
693bc90275
Further framework fix.
2014-11-05 18:50:23 +01:00
Christian
849ccb4159
Fix test framework after change to Transaction.
2014-11-05 18:10:37 +01:00
Christian
3e73402ba3
Merge remote-tracking branch 'ethereum/develop' into HEAD
...
Conflicts:
libsolidity/Compiler.cpp
test/solidityCompiler.cpp
2014-11-05 17:56:38 +01:00
Christian
2432e2dbf3
Bugfix: Special case of statements starting with type conversion.
2014-11-05 07:35:31 +01:00
Christian
bfb2ae9f3c
Test adjustments.
2014-11-03 16:30:11 +01:00
Christian
8a9da8648d
Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler
...
Conflicts:
alethzero/CMakeLists.txt
2014-11-03 16:13:40 +01:00
Christian
dab09c595a
Some tests and bugfixes for the compiler.
2014-11-03 16:11:40 +01:00
Christian
6951657c59
Bugfix: Swap before mod and div.
2014-11-03 15:44:22 +01:00
Christian
47d37b12a3
Bugfix: Swap before mod and div.
2014-11-03 12:23:53 +01:00
Christian
2088aaa85b
Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler
...
Conflicts:
libsolidity/AST.cpp
libsolidity/AST.h
libsolidity/Compiler.cpp
libsolidity/Compiler.h
libsolidity/NameAndTypeResolver.h
libsolidity/Types.cpp
solc/main.cpp
test/solidityCompiler.cpp
2014-10-31 17:20:27 +01:00
Christian
c0528f511a
Actual contract creator and add solidity to AlethZero interface.
2014-10-31 14:37:23 +01:00
chriseth
be45d11e4c
Merge pull request #415 from chriseth/sol_expressionCompiler
...
Solidity expression compiler
2014-10-31 13:42:24 +01:00
Christian
f6c46c57f3
Function selector and variable (un)packing.
2014-10-30 21:21:25 +01:00
Christian
fa24c954a5
Renamed file.
2014-10-30 21:21:25 +01:00
Christian
6642992c97
Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler
2014-10-30 01:25:42 +01:00
Christian
b0d4e0dedf
Contract compiler and also add ExpressionStatement to AST.
...
ExpressionStatement functions as glue between Statements and Expressions.
This way it is possible to detect when the border between statements and
expressions is crossed while walking the AST. Note that ExpressionStatement is
not the only border, almost every statement can contains expressions.
2014-10-30 01:25:42 +01:00
Christian
70d7d9b3bc
Further const placement changes.
2014-10-29 19:41:07 +01:00
Christian
c5c33485d8
Merge remote-tracking branch 'ethereum/develop' into sol_expressionCompiler
2014-10-29 19:26:02 +01:00
Christian
e08065a2fb
Compiler for assignments.
2014-10-29 14:33:25 +01:00
Christian
d706631412
NEG->BNOT change
2014-10-29 14:26:37 +01:00
Christian
9eacf5737f
Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler
...
Conflicts:
libsolidity/Types.cpp
2014-10-29 13:54:36 +01:00
Christian
3f4befd6b4
Parser fix: Consume break and continue.
2014-10-29 13:00:22 +01:00
Christian
eb254f6fdf
Adjustments for the NEG->BNOT change.
2014-10-28 17:09:06 +01:00
Christian
d2a474f7fa
Merge remote-tracking branch 'ethereum/develop' into sol_expressionCompiler
...
Conflicts:
libsolidity/Types.cpp
2014-10-28 17:01:04 +01:00
Christian
28ef0f0f1e
Forgot some asterisks.
2014-10-28 16:57:20 +01:00
Christian
b03a6a3563
Expression compiler.
2014-10-24 19:38:13 +02:00
Christian
c24fa78b21
Pointer type cleanup: Use ASTPointer only for AST nodes and shared_ptr for type
...
pointer.
2014-10-20 16:23:49 +02:00
Christian
ee06ed2ff8
Corrected coding style.
2014-10-16 14:08:54 +02:00
Christian
c2f3d27940
Some fixes for the type system, should be quite usable now.
2014-10-15 18:41:44 +02:00
Christian
35383f9b88
Added meaningful exception types.
2014-10-15 18:41:29 +02:00
Christian
de155c13ef
Type system, not yet complete.
2014-10-15 18:40:19 +02:00
Christian
082d79dba4
Merge remote-tracking branch 'ethereum/develop' into solidity
2014-10-13 17:14:37 +02:00
Christian
9c9a529b9d
Name resolution.
2014-10-13 17:02:21 +02:00
Christian
51f335838c
Initial implementation of Solidity parser finished, not yet tested much.
2014-10-09 18:35:41 +02:00
Christian
9766467f50
Parse everything up to function bodies and report parser errors with location.
2014-10-08 20:53:50 +02:00
Christian
762817f838
Solidity parser, can not parse much yet.
2014-10-08 13:49:34 +02:00
Christian
a1f32a0b26
Solidity scanner and some unit tests.
...
The scanner is a modified version of the v8 javascript scanner.
2014-10-08 11:11:50 +02:00