Commit Graph
99 Commits
Author SHA1 Message Date
Christian 583a315d3d Magic variables. 2014-11-23 21:28:45 +01:00
Christian c50cd646ce Contracts as types and framework for special global variables. 2014-11-23 21:28:44 +01:00
Christian fa987e0a20 Convenience class for type members. 2014-11-23 21:04:39 +01:00
Christian 735dbe6986 We only care about member types. 2014-11-23 21:04:39 +01:00
chriseth c7b933b4db 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 3ba9649dde Special handling for constructor. 2014-11-19 13:19:43 +01:00
Christian c560a62352 Struct types. 2014-11-14 14:08:14 +01:00
Christian 46dd629820 Mapping types. 2014-11-14 14:08:14 +01:00
Christian 8c6bf21c01 Provide interface for calls in JSON and some other formatting changes. 2014-11-11 17:41:48 +01:00
Christian d1789250b6 Merge remote-tracking branch 'ethereum/develop' into sol_jumptable
Conflicts:
	libsolidity/Compiler.cpp
2014-11-11 10:39:59 +01:00
Christian a0c72065fe Merge remote-tracking branch 'ethereum/develop' into sol_optimizer
Conflicts:
	libevmcore/Instruction.cpp
2014-11-10 13:30:59 +01:00
Christian 41b26e491b Replace function selector jump table by more resilient linear time check. 2014-11-10 13:13:53 +01:00
Christian 5af66a6cb3 Merge remote-tracking branch 'ethereum/develop' into sol_stateVariables
Conflicts:
	libsolidity/ExpressionCompiler.cpp
2014-11-10 00:45:58 +01:00
Christian 91f9a7b7c4 Do not return after throw. 2014-11-10 00:42:12 +01:00
Christian 64a4d77c8b State variables. 2014-11-07 20:02:57 +01:00
Christian 4c8e670530 Bugfix: Bit width of address types. 2014-11-07 17:34:50 +01:00
Christian dc8fb45e1f Merge remote-tracking branch 'ethereum/develop' into sol_optimizer 2014-11-07 02:13:31 +01:00
Christian af0aa0f898 Evaluate expressions in convenient order. 2014-11-07 02:07:59 +01:00
Christian b66e58d6c9 Prevent optimizer from changing certain parts of the code. 2014-11-06 22:55:42 +01:00
Christian 225fc8e1b3 Option to activate the optimizer for solidity. 2014-11-06 22:55:42 +01:00
chriseth d9decb8f1d Removed superfluous braces. 2014-11-06 22:11:21 +01:00
Christian 6c2e3ffd76 Merge remote-tracking branch 'ethereum/develop' into sol_typePromotion 2014-11-06 22:07:02 +01:00
Christian d3215fb4a6 Re-added some changes lost in merges. 2014-11-06 22:04:10 +01:00
chriseth e0ba1c79db Stylistic changes. 2014-11-06 21:55:01 +01:00
Christian 04726a4ee4 Merge remote-tracking branch 'ethereum/develop' into sol_optimizer 2014-11-06 15:34:35 +01:00
Christian 8a0fff83f1 Moved instructions and assembly to new libevmcore. 2014-11-06 14:50:18 +01:00
Christian d1df8b810f Ignore break and continue outside of loops. 2014-11-06 02:46:48 +01:00
Christian 627c80f0a8 Support for negative literals. 2014-11-06 02:44:43 +01:00
Christian b5e77678c9 Keywords for all integer types. 2014-11-06 02:40:39 +01:00
Christian 95d2edfbac Type promotion fixes and tests. 2014-11-06 02:36:39 +01:00
Christian 13baaf98b8 Proper type promotion and conversion. 2014-11-06 02:36:39 +01:00
Christian 4b6c422315 More information for type expectation errors. 2014-11-06 02:22:24 +01:00
Christian 29c9a7aed9 Allow implicit type conversions for comparisons. 2014-11-06 02:22:24 +01:00
Christian de493c673f Detect integer length from literals and remove "std::". 2014-11-06 02:22:24 +01:00
Christian 0062cdb83c Minor cleanup. 2014-11-05 23:35:00 +01:00
Christian e30d3f8d53 Merge remote-tracking branch 'ethereum/develop' into HEAD
Conflicts:
	libsolidity/Compiler.cpp
	test/solidityCompiler.cpp
2014-11-05 17:56:38 +01:00
Christian f0c73b7a54 Stylistic corrections. 2014-11-05 15:04:33 +01:00
Christian c1f7a1665f Converted all asserts to exceptions. 2014-11-05 15:01:24 +01:00
Christian 5dd8f3a937 Bugfix: Special case of statements starting with type conversion. 2014-11-05 07:35:31 +01:00
chriseth 1de66d6e9e Added doxygen comment. 2014-11-04 19:52:04 +01:00
chriseth ef546e789a Stylistic changes. 2014-11-04 11:56:19 +01:00
Christian 4dfd6dfa13 Some tests and bugfixes for the compiler. 2014-11-03 16:11:40 +01:00
Christian 643c781a6d Bugfix: Swap before mod and div. 2014-11-03 15:44:22 +01:00
Christian e9eef77489 Bugfix: Swap before mod and div. 2014-11-03 12:23:53 +01:00
Christian 25c0e08bdf 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 a36db1f241 Actual contract creator and add solidity to AlethZero interface. 2014-10-31 14:37:23 +01:00
Christian 9f53f18893 Corrected doxygen post comments. 2014-10-31 13:29:32 +01:00
Christian cb9cb48dc7 Function selector and variable (un)packing. 2014-10-30 21:21:25 +01:00
Christian a5f3602738 Renamed file. 2014-10-30 21:21:25 +01:00
Christian d3f5c6a0c8 Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler 2014-10-30 01:25:42 +01:00
Christian 7f19f3d133 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 51349bdae5 Bugfix: Allow empty return statements without type checking. 2014-10-30 01:18:07 +01:00
Christian 5d287e7ea2 Further const placement changes. 2014-10-29 19:41:07 +01:00
Christian 62822ffd92 Fixed placements of const. 2014-10-29 19:28:30 +01:00
Christian 21b01a9647 Merge remote-tracking branch 'ethereum/develop' into sol_expressionCompiler 2014-10-29 19:26:02 +01:00
Christian b5a4d12fa3 Compiler for assignments. 2014-10-29 14:33:25 +01:00
Christian 01224287f5 NEG->BNOT change 2014-10-29 14:26:37 +01:00
Christian 413b315a03 Merge remote-tracking branch 'ethereum/develop' into sol_contractCompiler
Conflicts:
	libsolidity/Types.cpp
2014-10-29 13:54:36 +01:00
Christian 2939b180ba Parser fix: Consume break and continue. 2014-10-29 13:00:22 +01:00
Christian f91ddc2788 Adjustments for the NEG->BNOT change. 2014-10-28 17:09:06 +01:00
Christian 2541a403c3 Merge remote-tracking branch 'ethereum/develop' into sol_expressionCompiler
Conflicts:
	libsolidity/Types.cpp
2014-10-28 17:01:04 +01:00
Christian 7bb3311be6 Forgot some asterisks. 2014-10-28 16:57:20 +01:00
Christian 933fbd7d60 Asterisk-syntax for doxygen class documentation. 2014-10-28 16:51:26 +01:00
Christian fae8ca001e Stylistic corrections. 2014-10-28 09:25:01 +01:00
Christian 6c07a4c380 CMakeLists library dependency cleanup for libdevcore, libevmface, libsolidity and solc.
Fixes #417.
2014-10-25 18:00:49 +02:00
Christian a29eb889a2 Removed some more boost asserts. 2014-10-24 20:01:20 +02:00
Christian 6a96b6b5ad Removed std:: where it made sense. 2014-10-24 19:42:38 +02:00
Christian 58be273506 Replace BOOST_ASSERT by assert. 2014-10-24 19:40:47 +02:00
Christian 9141725cf2 Documentation for AST, Parser, Scanner and other classes. 2014-10-24 19:38:48 +02:00
Christian b2f12991db Some documentation. 2014-10-24 19:38:48 +02:00
Christian 59b5e950f4 Expression compiler. 2014-10-24 19:38:13 +02:00
Christian 2a24c3d810 Use the passed stream, not std::cerr. 2014-10-24 19:08:31 +02:00
Christian 33babb0c6f Use endl instead of "\n". 2014-10-24 16:47:10 +02:00
Christian f8038792ca Remove nullptr comparisons. 2014-10-24 16:43:11 +02:00
Christian 1ae1fc66e2 Use createTypeError everywhere and stream out Location. 2014-10-24 12:42:44 +02:00
Christian 987f42aa38 Sorted include directives. 2014-10-23 21:46:39 +02:00
Christian 094ee44f72 Use boost errinfo. 2014-10-23 21:37:57 +02:00
Christian 781d7fd514 Improved exceptions and reporting exceptions for command-line compiler. 2014-10-23 16:43:50 +02:00
Christian a09e4c559d Type information for AST printer. 2014-10-23 16:27:51 +02:00
Christian fd046d7c90 Corrected spacing around colon. 2014-10-23 00:24:07 +02:00
Christian c8b008558d Cleanup of copyright headers. 2014-10-20 16:37:04 +02:00
Christian 8696598020 Access modifier cleanup. 2014-10-20 16:28:24 +02:00
Christian be885dc3cf Pointer type cleanup: Use ASTPointer only for AST nodes and shared_ptr for type
pointer.
2014-10-20 16:23:49 +02:00
Christian f0c334670d Coding style cleanup: const and vecptr. 2014-10-20 13:02:06 +02:00
Christian 646f106a34 Keyword cleanup 2014-10-17 12:52:39 +02:00
Christian a7f9815c0f Coding style and cleanup 2014-10-17 12:37:51 +02:00
Christian 8a506b505f Corrected coding style. 2014-10-16 14:08:54 +02:00
Christian 4ece1ba1d3 Remove unused parameters. 2014-10-15 18:50:15 +02:00
Christian d557fbac9c Some fixes for the type system, should be quite usable now. 2014-10-15 18:41:44 +02:00
Christian df142782bc Added meaningful exception types. 2014-10-15 18:41:29 +02:00
Christian 89b794f1dc Type system, not yet complete. 2014-10-15 18:40:19 +02:00
Christian bdac5c7b4b Added copyright blocks. 2014-10-13 17:13:48 +02:00
Christian 4f79117964 Name resolution. 2014-10-13 17:02:21 +02:00
Christian 98bdd74299 AST printer and command line tool, some fixes. 2014-10-10 16:47:21 +02:00
Christian 924f7c62bd Initial implementation of Solidity parser finished, not yet tested much. 2014-10-09 18:35:41 +02:00
Christian c3faa433ef Corrected indentation. 2014-10-09 12:36:17 +02:00
Christian 0a1ebe4f51 Parse everything up to function bodies and report parser errors with location. 2014-10-08 20:53:50 +02:00
Christian 56e9cc8db7 Solidity parser, can not parse much yet. 2014-10-08 13:49:34 +02:00
Christian ef59373871 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