Commit Graph

170 Commits

Author SHA1 Message Date
Christian
c944976d00 Some changes to enums. 2015-02-14 13:35:57 +01:00
Lefteris Karapetsas
fbd39323af Moving getMemberValue from EnumDefinition to EnumType 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b2575b4bcb Addressing issues with Enums in Solidity 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b20ce4451b Typo in EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
52808f67fa EnumDeclaration -> EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
012e32942d Enum type conversion and member value access.
- Added tests for the type conversion part.

- Enum member value access still needs some work
2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
c3a9ae0b06 Introducing EnumType and some Parser tests 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
86e1d671cc Parsing an enum AST node 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
a295417f34 Parsing enums for Solidity - WIP 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
148a7cb3e1 ExpressionCompiler's enums to CamelCase 2015-02-09 14:35:31 +01:00
Lefteris Karapetsas
6f621f8486 Changing Solidity Code to use CamelCase enum values 2015-02-09 14:00:12 +01:00
Liana Husikyan
2a5c2578bd - implemented Empty parameter name story. Now the name of input/return parameters of function can be not specified.
- added appropriate tests

Conflicts:
	test/SolidityEndToEndTest.cpp
	test/SolidityNameAndTypeResolution.cpp
2015-02-09 02:06:30 +01:00
guanqun
ca6456e7da remove AST.h Utils.h's x permission 2015-02-07 23:10:22 +08:00
Christian
82edc1ca6d Some fixes for the ether units parser. 2015-02-06 13:38:29 +01:00
Lefteris Karapetsas
c966ff246f More style changes in enums 2015-02-05 23:03:24 +01:00
Lefteris Karapetsas
305f54b23f Minor Style fixes 2015-02-05 22:38:07 +01:00
Lefteris Karapetsas
dca5f7b57b Adding ether subdenominations after constan literals 2015-02-04 17:52:28 +01:00
Gav Wood
2ff4a80b62 Fixes for named-args. 2015-02-03 12:25:08 -08:00
Gav Wood
04164b612c Merge branch 'named-args' of https://github.com/guanqun/cpp-ethereum into guanqun-named-args 2015-02-03 11:57:36 -08:00
Christian
e157364fe8 Visibility specifiers. 2015-02-02 17:24:09 +01:00
Christian
adce36ff58 Make tests resistant to changes in order of declaration. 2015-02-01 00:47:54 +01:00
Gav Wood
bd66ebd7ee Merge pull request #913 from arkpar/sol_abi_fix
Fixed json ABI generation for events
2015-01-31 08:29:50 -08:00
Christian
4e440b6e5d Fix scoping of event arguments. 2015-01-31 16:50:33 +01:00
arkpar
d6d7c9219b json and solidity ABI generted for events 2015-01-31 14:41:11 +01:00
Gav Wood
8e84dc27a7 Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop
Conflicts:
	test/SolidityEndToEndTest.cpp
	test/SolidityNameAndTypeResolution.cpp
	test/SolidityParser.cpp
2015-01-29 16:05:17 -08:00
Christian
cfb55901cc Fallback functions. 2015-01-29 22:50:20 +01:00
Christian
9f8c2620da Whitespace and error messages. 2015-01-29 21:33:46 +01:00
Christian
4e72a77546 Code generation for events. 2015-01-29 21:33:46 +01:00
Christian
4a6ed84386 Parsing of events. 2015-01-29 21:26:11 +01:00
Lu Guanqun
5c828dc8b2 implement named arguments 2015-01-30 01:32:55 +08:00
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