Commit Graph

140 Commits

Author SHA1 Message Date
Lefteris Karapetsas
04190798eb Minor fixes plus a rebase merge fix 2015-01-29 18:21:51 +01:00
Lefteris Karapetsas
dcd47be6ca Removing Function and Param Description
- Removing FunctionDescription and ParamDescription. All the data should
  now be in the FunctionType

- Plus using the FunctionTypePointer alias in a few places
2015-01-29 17:12:17 +01:00
Lefteris Karapetsas
005100c486 Contract Interface Functions now return FunctionType
- Enchanced Function Type by declaration so that it can provide all the
  required information at each place interface functions are consumed

- Changed all places where interface functions was used.

- Simplified Mix's FunctionDefinition code
2015-01-29 17:11:13 +01:00
Christian
11d068bbbb Common class that contains AST node documentations. 2015-01-29 12:27:31 +01:00
Lefteris Karapetsas
b5a786dda1 Various fixes pertaining to State Variable accessors 2015-01-28 21:46:17 +01:00
Lefteris Karapetsas
ff91ab96ea Fixes after rebasing on develop 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
53ef6900b7 Adding isStateVariable attribute to a VarDecl 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
3f5eb96584 Various small fixes for Sol Automatic Accessors 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
468f26b1cc Modifications to Mix to adapt to FunctionDescription 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
5c7359aa09 State variable accessors code is now more organized
- FunctionDescription is the abstraction of what should describe a
  function. It can either be a VariableDeclaration of a
  FunctionDefinition.

- ParamDescription is what FunctionDescription uses to describe its
  parameters for outside use purposes with a pair of (name, type)
  strings

- Modified code around Solidity and especially interface handler to
  adapt to this change
2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
3cc0492301 Work in progress for state variable accessors
- Changed the code so that a generic declaration with the combination of
  a function type can be used wherer a function definition was used
  before

- Since using an std::pair everywhere is really tiring with this commit
  I am in the process of abstracting it into a function
2015-01-28 21:46:16 +01:00
Christian
7ded95c776 Compilation of function modifiers. 2015-01-26 10:23:39 +01:00
Christian
941c77c8fa Type resolution for function modifiers. 2015-01-26 10:23:39 +01:00
Christian
19793dab09 Function modifier parsing. 2015-01-26 10:23:39 +01:00
Christian
96db6cf905 Style changes. 2015-01-20 17:41:09 +01:00
Christian
d854e56789 Include virtual function overrides in constructor context. 2015-01-20 15:58:04 +01:00
Christian
af92f98d86 Constructor arguments for base classes. 2015-01-19 23:35:04 +01:00
Christian
6e111d5d1d Explicit calls to base class function. 2015-01-19 23:35:04 +01:00
Christian
6633fbb603 Check overrides and provide inherited public interface. 2015-01-19 23:35:04 +01:00
Christian
914fcedd0e Import inherited members into the contract's scope. 2015-01-19 23:35:04 +01:00
Christian
4631e54e08 Inheritance parser. 2015-01-19 23:35:04 +01:00
chriseth
1a4280de35 Merge pull request #799 from chriseth/sol_gasAndValue
Specify gas and value for function calls and contract creation calls.
2015-01-14 18:22:16 +01:00
Christian
6e16107870 Check for hash collisions already before compiling. 2015-01-14 10:16:58 +01:00
Christian
b440d7e321 Specify value for contract creation. 2015-01-13 18:12:30 +01:00
arkpar
80eec8b308 fixed warnings for msvc build 2015-01-13 11:18:08 +01:00
Lefteris Karapetsas
c55608f94b Solidity getInterfaceFunctions is now a map of hash to Function
- Also introduced dependency between libsolidity and libdevcrypto

- Compler's appendFunctionSelector now has a first version of using
  function signature hash instead of index
2015-01-07 16:39:21 +01:00
Lefteris Karapetsas
df0dce584d Small issues with Canonical Function Signature
- Also added an extra test
2015-01-07 10:45:59 +01:00
Lefteris Karapetsas
5e875ee072 Creating the canonical signature of a function, for later use in the ABI 2015-01-06 17:42:38 +01:00
Christian
5a1a83ff42 Assertions that throw InternalCompilerErrors. 2014-12-17 16:24:56 +01:00
Lefteris Karapetsas
5c05b8d725 Solidity ForStatement Compiler part
- Work in progress
2014-12-17 00:03:30 +01:00
Lefteris Karapetsas
adbea47596 Minor issues, grammar update, new ForStatement test 2014-12-17 00:03:30 +01:00
Lefteris Karapetsas
062b51e7bd ForStatement typecheck and initExpression is a Statement 2014-12-17 00:03:30 +01:00
Lefteris Karapetsas
f7029726be Adding a ForStatement solidity AST Node.
- Adding ForStatement node
- Implemented Parsing for ForStatement
- A simple parsing test for the ForStatement
- Work in progress
2014-12-17 00:03:30 +01:00
Christian
5b802b685e Stylistic changes. 2014-12-16 16:15:34 +01:00
Christian
c40725c22a Check that constructor does not have "returns" directive. 2014-12-15 16:09:50 +01:00
Christian
2f64c56ef3 Create contracts. 2014-12-15 13:05:18 +01:00
chriseth
c7c189cac0 Merge pull request #586 from LefterisJP/natspec_contract_tags
Natspec title and author tag.
2014-12-10 19:23:57 +01:00
Lefteris Karapetsas
fbc35003ce Natspec title and author tag.
- Adding the title and author natspec documentation tags for contracts
- Also using the author tag for functions now
- Tests
2014-12-10 13:24:48 +01:00
Christian
f636ac6fc4 More const cleanup. 2014-12-08 13:15:43 +01:00
Christian
13640d7db8 Clear separation between ASTVisitor and ASTConstVisitor and more const specifiers. 2014-12-08 12:53:56 +01:00
Christian
c78c330634 Const AST visitor for the compiler. 2014-12-08 12:49:03 +01:00
Christian
41b8d7b7f1 Const functions for ASTVisitor and const ASTPrinter. 2014-12-08 12:49:03 +01:00
Christian
25273778dc Renamed url to identifier and added some comments. 2014-12-05 15:35:05 +01:00
Christian
d4a958e1fe 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
Lefteris Karapetsas
df4db1de07 Merge branch 'develop' into natspec_export_json 2014-12-04 17:28:46 +01:00
Christian
328387d6d0 Import directive. 2014-12-03 10:44:46 +01:00
Christian
a2ad47441e Disallow assignments to structs and mappings. 2014-12-01 17:33:21 +01:00
Christian
9e91596c8d Save the scope for every declaration. 2014-12-01 17:33:21 +01:00
Lefteris Karapetsas
43d6726dd7 Exporting Natspec documentation to a JSON interface
- Adding a getDocumentation() function to solidity compiler stack
  so that we can obtain the natspec interface for a contract

- Adding libjsoncpp as a dependency of libsolidity. This is done
  in a dirty way, using libjsonrpc-cpp s an intermediate dependency
  for the moment. Will fix soon.

- Start of a test file for Natspec exporting to JSON
2014-12-01 17:03:04 +01:00
Lefteris Karapetsas
e3e90c4e6b Solidity FunctionDefinition used ASTString shared ptr for docstrings 2014-11-28 01:26:37 +01:00
Lefteris Karapetsas
6ddfebafae Solidity function AST nodes get documentation attribute 2014-11-27 15:21:22 +01:00
Christian
c4a43c64c2 Global functions. 2014-11-26 15:42:54 +01:00
chriseth
5d75263ff1 Whitespace change. 2014-11-24 00:00:46 +01:00
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
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
64a4d77c8b State variables. 2014-11-07 20:02:57 +01:00
Christian
6c2e3ffd76 Merge remote-tracking branch 'ethereum/develop' into sol_typePromotion 2014-11-06 22:07:02 +01:00
Christian
29c9a7aed9 Allow implicit type conversions for comparisons. 2014-11-06 02:22:24 +01:00
Christian
0062cdb83c Minor cleanup. 2014-11-05 23:35:00 +01:00
Christian
c1f7a1665f Converted all asserts to exceptions. 2014-11-05 15:01:24 +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
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
9f53f18893 Corrected doxygen post comments. 2014-10-31 13:29:32 +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
5d287e7ea2 Further const placement changes. 2014-10-29 19:41:07 +01:00
Christian
b5a4d12fa3 Compiler for assignments. 2014-10-29 14:33:25 +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
9141725cf2 Documentation for AST, Parser, Scanner and other classes. 2014-10-24 19:38:48 +02:00
Christian
59b5e950f4 Expression compiler. 2014-10-24 19:38:13 +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
094ee44f72 Use boost errinfo. 2014-10-23 21:37:57 +02:00
Christian
fd046d7c90 Corrected spacing around colon. 2014-10-23 00:24:07 +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
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
89b794f1dc Type system, not yet complete. 2014-10-15 18:40:19 +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