Commit Graph
99 Commits
Author SHA1 Message Date
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