Commit Graph

175 Commits

Author SHA1 Message Date
Lefteris Karapetsas
fb4ff4af28 implement getType() for EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
52808f67fa EnumDeclaration -> EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
91943e7368 Enum Value member access should now work properly
- Also detection of duplicate enum values and tests for them have been
  added
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
Christian
1c3c1f1e5d Copying structs. 2015-02-12 20:19:49 +01:00
Christian
20b4c69009 Tests and some code for msg.data. 2015-02-12 11:33:09 +01:00
Christian
cf4144b702 Arbitrary parameters for call() and all hash functions. 2015-02-10 10:59:23 +01:00
chriseth
bb6f181d7d Merge pull request #986 from LefterisJP/sol_StyleFix
Solidity enum style fix
2015-02-10 10:54:28 +01:00
Lefteris Karapetsas
82c5fb3245 Addressing issues in Enum style fix 2015-02-10 09:52:19 +01:00
Lefteris Karapetsas
148a7cb3e1 ExpressionCompiler's enums to CamelCase 2015-02-09 14:35:31 +01:00
Lefteris Karapetsas
3ef75bae6b Camelcasing enums in Types.h 2015-02-09 14:08:48 +01:00
Lefteris Karapetsas
6f621f8486 Changing Solidity Code to use CamelCase enum values 2015-02-09 14:00:12 +01:00
chriseth
d84d9d3ecd Merge pull request #981 from chriseth/sol_cleanup
Small cleanup.
2015-02-09 12:02:17 +01:00
Liana Husikyan
bcccfa8805 - removed unnesessary braces but one in if statement is still there because of warrning about ambiguous "else"
- added marking of position in node factory to the function

Conflicts:
	libsolidity/Parser.cpp
2015-02-09 02:24:57 +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
Christian
106cda74f8 Small cleanup. 2015-02-09 00:49:35 +01:00
chriseth
a66db516fb Merge pull request #937 from LefterisJP/sol_MultiArgSHA3
Solidity multiple arg sha3
2015-02-09 00:14:13 +01:00
Lefteris Karapetsas
293344b473 SHA3 of string literals now should work 2015-02-06 16:27:41 +01:00
Christian
82edc1ca6d Some fixes for the ether units parser. 2015-02-06 13:38:29 +01:00
chriseth
16fc2d651e Merge pull request #963 from guanqun/disallow-void-var
Disallow implicit declaration of void type.
2015-02-06 12:08:24 +01:00
Lefteris Karapetsas
76c9f13626 appendArgumentsCopyToMemory() has more complicated logic now
- Plus other fixes.
2015-02-06 10:42:24 +01:00
Lefteris Karapetsas
337b952f53 Fixes after rebase 2015-02-06 09:38:04 +01:00
Lefteris Karapetsas
f09c6fffc9 Renaming a function for clarity 2015-02-06 09:38:04 +01:00
Lefteris Karapetsas
8c1d928c94 Solidity SHA3 can now take multiple arguments 2015-02-06 09:38:04 +01:00
Gav Wood
59a3909376 Merge pull request #953 from LefterisJP/sol_ethSubDenominations
Solidity ether subdenominations
2015-02-05 17:12:19 -08:00
Lu Guanqun
7267afff55 disallow declaration of void type
https://www.pivotaltracker.com/n/projects/1189488/stories/86318578
2015-02-06 07:49:05 +08: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
426f9a2860 Tests for ether subdenominations. Work in progress 2015-02-04 22:02:35 +01:00
Lu Guanqun
e86c4602c5 fix string comparision bug revealed by previous test case
This is due to refactoring of m_names using ASTPointer.
2015-02-05 01:13:28 +08: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
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
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
Lefteris Karapetsas
b5a786dda1 Various fixes pertaining to State Variable accessors 2015-01-28 21:46:17 +01:00
Lefteris Karapetsas
1b25f85a66 Explicitly specify insertion to exported functions 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
3ec6c0b1cb All interface functions are external. 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
95d8d7b1f0 Cleaner solution to provide standard sources. 2015-01-28 13:39:04 +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
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
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
Christian
a60d82d12c Remove const from make_shared to allow enable_shared_from_this to work on MacOS. 2015-01-09 15:16:09 +01:00
Christian
be623273f3 Arbitrary precision integer constants. 2015-01-09 15:16:09 +01:00
Christian
be1e89da42 Possibility for unary operators to change type. 2015-01-09 15:09:10 +01:00
Christian
dcda38cf38 Use shared_from_this instead of manually supplying a shared_ptr to this. 2015-01-09 15:09:10 +01:00
Lefteris Karapetsas
a36af5364c Fixing a solAssert in getInterfacefunctions() 2015-01-09 00:58:12 +01:00
Lefteris Karapetsas
9cf1c066fc Adjustments to Solidity compiler code for Function Hash 2015-01-09 00:27:26 +01:00
Lefteris Karapetsas
a7b661d3be merging develop 2015-01-08 17:43:38 +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
Gav Wood
53e38b3ac9 Merge pull request #738 from LefterisJP/sol_abiFunctionHash
Canonical Function signature creation in solidity
2015-01-07 16:32:13 +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
24d7bdd3a9 FunctionType also gets CanonicalSignature
- also using iterators in the signature creation function
2015-01-07 02:27:05 +01:00
Lefteris Karapetsas
b2aa3baded Test for the Canonical Signature of a function 2015-01-07 02:07:34 +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
7dc7827907 Possibility for binary operators to yield types different from their operands'. 2014-12-19 00:12:04 +01:00
Christian
5a1a83ff42 Assertions that throw InternalCompilerErrors. 2014-12-17 16:24:56 +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
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
Christian
e8b18e95ce Move implementations of ::accept out of AST.cpp. 2014-12-08 17:47:02 +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
41b8d7b7f1 Const functions for ASTVisitor and const ASTPrinter. 2014-12-08 12:49:03 +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
a2715c5f34 More general function types and references. 2014-11-26 15:35:25 +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
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
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
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
Christian
4b6c422315 More information for type expectation errors. 2014-11-06 02:22:24 +01:00