aboutsummaryrefslogtreecommitdiffstats
path: root/AST.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Distinction between storage pointer and storage ref and type checking for ↵chriseth2015-06-151-18/+20
| | | | conversion between storage and memory.
* Merge pull request #2122 from chriseth/sol_memoryArrays2chriseth2015-06-101-3/+0
|\ | | | | Use dynamic memory.
| * Dynamic memory.chriseth2015-06-091-3/+0
| |
* | Improved type conversion error messages.chriseth2015-06-091-6/+36
|/
* Ability to specify the storage location of a reference type.chriseth2015-06-051-4/+15
|
* - style fixesLiana Husikyan2015-06-041-8/+7
| | | | - added test for uint8 = -1 which doesn't fail; todo: fix that
* - conversion of positive literals to signed intLiana Husikyan2015-06-041-3/+9
| | | | - tests
* Re-introduce string type.chriseth2015-05-281-0/+2
|
* Move non-cryptopp dependent stuff into devcore.Gav Wood2015-05-201-1/+1
|
* Fixed error message about explicit type conversion.chriseth2015-05-181-1/+1
|
* style changesLiana Husikyan2015-05-081-3/+0
|
* implemented cleanup of duplication in resolverLiana Husikyan2015-05-081-0/+3
|
* Update AST.cppLiana Husikyan2015-05-041-4/+3
|
* Update AST.cppLiana Husikyan2015-05-041-1/+1
|
* some more style fixesLiana Husikyan2015-05-041-6/+7
|
* small fixLiana Husikyan2015-05-041-3/+3
|
* created secondarySoureLocation error typeLiana Husikyan2015-05-041-3/+15
| | | | added additional information to error msgs
* saved returnParameterNames in FunctionType constructorLiana Husikyan2015-04-271-0/+1
|
* changed the test so constructor will have input parametersLiana Husikyan2015-04-271-2/+5
|
* removed an unnecessary functionLiana Husikyan2015-04-271-5/+0
|
* style fixLiana Husikyan2015-04-271-1/+0
|
* fixed the output of the testLiana Husikyan2015-04-271-0/+6
|
* bytes parameters for events and sha3.chriseth2015-04-221-7/+4
|
* Merge remote-tracking branch 'ethereum/develop' into sol_overloadingFunctionschriseth2015-04-201-8/+48
|\ | | | | | | | | | | Conflicts: libsolidity/AST.cpp libsolidity/AST.h
| * Fixing detection of abstract contractLefteris Karapetsas2015-04-171-23/+18
| |
| * Add "this" contract's ctor to provided ctors setLefteris Karapetsas2015-04-171-5/+8
| | | | | | | | - Also properly naming the 2 sets in checkAbstractConstructors() function
| * Fixing new abstract contract error location reportingLefteris Karapetsas2015-04-171-1/+1
| |
| * size()!=0 -> !empty()Lefteris Karapetsas2015-04-171-1/+1
| |
| * Check all constructors in inheritance chain get argsLefteris Karapetsas2015-04-171-0/+42
| | | | | | | | - Also add a missing override in a function of EnumValue
| * Allowing abstract contracts constructor to have no argsLefteris Karapetsas2015-04-171-7/+7
| | | | | | | | | | | | | | | | - If a constructor is part of an abstract contract we can omit its arguments - IF a contract is abstract make sure to not create and/or request Assembly code about it since it's not compiled
* | Merge remote-tracking branch 'ethereum/develop' into sol_overloadingFunctionschriseth2015-04-171-9/+7
|\|
| * Bugfixes concerning variable declarations.chriseth2015-04-161-9/+7
| | | | | | | | Fixes #1637
* | Fixed function overloads.chriseth2015-04-151-149/+181
| | | | | | | | | | Added tests, disallowed non-calling usage of non-unique function references.
* | Merge remote-tracking branch 'ethereum/develop' into sol_overloadingFunctionschriseth2015-04-071-12/+69
|\|
| * VariableDeclaration::checkTypeRequirements() refactoringLiana Husikyan2015-04-011-5/+2
| |
| * Update AST.cppLiana Husikyan2015-04-011-2/+2
| |
| * miner changes in the implementation of the externalTypes function of ↵Liana Husikyan2015-04-011-10/+8
| | | | | | | | | | | | | | FunctionType. better error messages for exeptions style fixes after review
| * changed checking for external type in ↵Liana Husikyan2015-04-011-1/+16
| | | | | | | | | | | | VariableDeclaration::checkTypeRequirements() changed error msg
| * style fixesLiana Husikyan2015-04-011-1/+1
| |
| * Merge pull request #1414 from LefterisJP/sol_notImplementedFuncschriseth2015-03-311-2/+32
| |\ | | | | | | Interface contracts
| | * Fix some styling issues and remove commentsLefteris Karapetsas2015-03-301-16/+2
| | |
| | * Abstract contract and inheritanceLefteris Karapetsas2015-03-271-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Checking the linearized base contracts for abstract functions and handle their existence appropriately - If a contract is abstract it can't be created with new - An abstract contract is not compiled (no backend code is generated) - Of course tests
| | * Moving contract fullyImplemented check to TypeRequirementsLefteris Karapetsas2015-03-271-0/+4
| | |
| | * Parsing of not fully implemented functionsLefteris Karapetsas2015-03-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | - Adding the possibility of omitting a function body by simply ending a function definition with a semicolon - Such a function is marked as not fully implemented and any contract that contains such a function is considered a not fully implemented contract
| * | added externalTypes function to functionTypeLiana Husikyan2015-03-271-4/+4
| | | | | | | | | | | | removed flag for externalSigniture
| * | two more testsLiana Husikyan2015-03-261-1/+1
| | | | | | | | | | | | style fixes
| * | tests for external typesLiana Husikyan2015-03-251-9/+5
| | |
| * | renamed externalTypes to externalSignatureLiana Husikyan2015-03-251-6/+6
| | |
| * | renamed getCanonicalSignatureLiana Husikyan2015-03-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | added externalTypes instead of types for interface functions added simple test todo testing
| * | added check for events and stat variablesLiana Husikyan2015-03-251-4/+9
| | |
| * | - added externalType to BooleanType.Liana Husikyan2015-03-251-3/+3
| | | | | | | | | | | | - fixed the error message
| * | added check for valid externalType to checkTypeRequirements for functionLiana Husikyan2015-03-251-0/+8
| |/
| * - added more tests to check constant specifier implementationLiana Husikyan2015-03-161-0/+7
| | | | | | | | | | | | - deny use of const for local variables - deny unitialized const variables - only int, fixed strings, and enums can be declaired as const
| * - added isPartOfExternalInterface to DeclarationLiana Husikyan2015-03-161-2/+2
| | | | | | | | | | - changed position for the constant specifier. now it goes after type: <type> <constant> <name> = <value> - removed tests for constant functions, checkings for constant function doesn't belong to this story
| * added parsing for constant variablesLiana Husikyan2015-03-161-3/+3
| |
| * Fixes after rebasing on top of developLefteris Karapetsas2015-03-121-1/+1
| |
* | fix rebase errorsLu Guanqun2015-03-091-33/+6
| |
* | add the location of a duplicated functionLu Guanqun2015-03-081-1/+2
| |
* | make it work for var x = f;Lu Guanqun2015-03-081-11/+18
| |
* | remove debug stuffLu Guanqun2015-03-081-13/+1
| |
* | implement overload resolutionLu Guanqun2015-03-081-6/+153
|/
* Fix type checks for storage variable initializer.chriseth2015-03-061-26/+25
|
* Index access for calldata arrays.Christian2015-03-051-2/+5
|
* removed unused memberLiana Husikyan2015-03-021-4/+4
| | | | | added some comments for ModifierInvocation::checkTypeRequirements cleanup
* Implemented passing arguments to the base constructor.Liana Husikyan2015-03-021-7/+24
|
* Using normal pointer in getInheritableMembers()Lefteris Karapetsas2015-03-021-6/+6
|
* getInheritableMembers() does not look at BaseContractsLefteris Karapetsas2015-03-021-15/+12
| | | | - Also adding tests for improper accessing members of other contracts.
* Use lambda to avoid code duplication in inheritableMembersLefteris Karapetsas2015-03-021-14/+11
|
* VisibleInDerivedContracts() is now virtual()Lefteris Karapetsas2015-03-021-4/+3
| | | | - Plus an extra test for internal visibility in a base class variable
* Add structs to inheritable membersLefteris Karapetsas2015-03-021-0/+7
|
* Adding inheritable members to a contractLefteris Karapetsas2015-03-021-0/+27
|
* Index and length access for dynamic arrays.Christian2015-02-241-1/+11
|
* Allow conversion to dynamic arrays and update grammar.Christian2015-02-221-1/+21
|
* Index access.Christian2015-02-211-7/+22
|
* Inline member initialisationLiana Husikyan2015-02-211-7/+15
| | | | | renamed VariableDefinition class to VariableDeclarationStatement added tests
* Bugfix for functions overrideLefteris Karapetsas2015-02-201-15/+4
| | | | | | | - Functions with byte array type parameters can now be safely overriden. Parameter location is now set at the right place. - Also made a test for the fix
* Calldata byte arrays stored on the stack.Christian2015-02-171-0/+9
|
* No write access to parameters of external functions.Christian2015-02-171-9/+19
|
* Some changes to enums.Christian2015-02-141-13/+0
|
* Moving getMemberValue from EnumDefinition to EnumTypeLefteris Karapetsas2015-02-141-13/+0
|
* Addressing issues with Enums in SolidityLefteris Karapetsas2015-02-141-1/+2
|
* Typo in EnumValueLefteris Karapetsas2015-02-141-4/+4
|
* implement getType() for EnumValueLefteris Karapetsas2015-02-141-2/+2
|
* EnumDeclaration -> EnumValueLefteris Karapetsas2015-02-141-4/+4
|
* Enum Value member access should now work properlyLefteris Karapetsas2015-02-141-6/+8
| | | | | - Also detection of duplicate enum values and tests for them have been added
* Enum type conversion and member value access.Lefteris Karapetsas2015-02-141-0/+13
| | | | | | - Added tests for the type conversion part. - Enum member value access still needs some work
* Introducing EnumType and some Parser testsLefteris Karapetsas2015-02-141-4/+2
|
* Parsing an enum AST nodeLefteris Karapetsas2015-02-141-1/+9
|
* Parsing enums for Solidity - WIPLefteris Karapetsas2015-02-141-0/+16
|
* Copying structs.Christian2015-02-131-4/+2
|
* Tests and some code for msg.data.Christian2015-02-121-1/+2
|
* Arbitrary parameters for call() and all hash functions.Christian2015-02-101-4/+5
|
* Merge pull request #986 from LefterisJP/sol_StyleFixchriseth2015-02-101-14/+14
|\ | | | | Solidity enum style fix
| * Addressing issues in Enum style fixLefteris Karapetsas2015-02-101-2/+2
| |
| * ExpressionCompiler's enums to CamelCaseLefteris Karapetsas2015-02-091-4/+4
| |
| * Camelcasing enums in Types.hLefteris Karapetsas2015-02-091-1/+1
| |
| * Changing Solidity Code to use CamelCase enum valuesLefteris Karapetsas2015-02-091-10/+10
| |
* | Merge pull request #981 from chriseth/sol_cleanupchriseth2015-02-091-11/+9
|\ \ | |/ |/| Small cleanup.
| * Small cleanup.Christian2015-02-091-11/+9
| |
* | - removed unnesessary braces but one in if statement is still there because ↵Liana Husikyan2015-02-091-3/+0
| | | | | | | | | | | | | | | | | | of warrning about ambiguous "else" - added marking of position in node factory to the function Conflicts: libsolidity/Parser.cpp
* | - implemented Empty parameter name story. Now the name of input/return ↵Liana Husikyan2015-02-091-4/+15
|/ | | | | | | | | | parameters of function can be not specified. - added appropriate tests Conflicts: test/SolidityEndToEndTest.cpp test/SolidityNameAndTypeResolution.cpp
* Merge pull request #937 from LefterisJP/sol_MultiArgSHA3chriseth2015-02-091-2/+5
|\ | | | | Solidity multiple arg sha3
| * SHA3 of string literals now should workLefteris Karapetsas2015-02-061-12/+2
| |
| * appendArgumentsCopyToMemory() has more complicated logic nowLefteris Karapetsas2015-02-061-4/+4
| | | | | | | | - Plus other fixes.
| * Fixes after rebaseLefteris Karapetsas2015-02-061-1/+1
| |
| * Renaming a function for clarityLefteris Karapetsas2015-02-061-1/+1
| |
| * Solidity SHA3 can now take multiple argumentsLefteris Karapetsas2015-02-061-3/+16
| |
* | Some fixes for the ether units parser.Christian2015-02-061-11/+0
| |
* | Merge pull request #963 from guanqun/disallow-void-varchriseth2015-02-061-0/+2
|\ \ | |/ |/| Disallow implicit declaration of void type.
| * disallow declaration of void typeLu Guanqun2015-02-061-0/+2
| | | | | | | | https://www.pivotaltracker.com/n/projects/1189488/stories/86318578
* | Merge pull request #953 from LefterisJP/sol_ethSubDenominationsGav Wood2015-02-061-0/+11
|\ \ | |/ |/| Solidity ether subdenominations
| * More style changes in enumsLefteris Karapetsas2015-02-061-1/+1
| |
| * Minor Style fixesLefteris Karapetsas2015-02-061-3/+3
| |
| * Tests for ether subdenominations. Work in progressLefteris Karapetsas2015-02-051-4/+4
| |
| * Adding ether subdenominations after constan literalsLefteris Karapetsas2015-02-051-0/+11
| |
* | fix string comparision bug revealed by previous test caseLu Guanqun2015-02-051-1/+1
|/ | | | This is due to refactoring of m_names using ASTPointer.
* Fixes for named-args.Gav Wood2015-02-041-1/+1
|
* Merge branch 'named-args' of https://github.com/guanqun/cpp-ethereum into ↵Gav Wood2015-02-041-3/+40
|\ | | | | | | guanqun-named-args
| * implement named argumentsLu Guanqun2015-01-301-3/+40
| |
* | Visibility specifiers.Christian2015-02-031-1/+1
| |
* | json and solidity ABI generted for eventsarkpar2015-01-311-0/+17
| |
* | Merge branch 'develop' of github.com:ethereum/cpp-ethereum into developGav Wood2015-01-301-0/+14
|\ \ | | | | | | | | | | | | | | | | | | Conflicts: test/SolidityEndToEndTest.cpp test/SolidityNameAndTypeResolution.cpp test/SolidityParser.cpp
| * | Parsing of events.Christian2015-01-301-0/+14
| | |
* | | Fallback functions.Christian2015-01-301-2/+16
|/ /
* | Minor fixes plus a rebase merge fixLefteris Karapetsas2015-01-301-3/+2
| |
* | Removing Function and Param DescriptionLefteris Karapetsas2015-01-301-100/+2
| | | | | | | | | | | | | | - Removing FunctionDescription and ParamDescription. All the data should now be in the FunctionType - Plus using the FunctionTypePointer alias in a few places
* | Contract Interface Functions now return FunctionTypeLefteris Karapetsas2015-01-301-10/+11
|/ | | | | | | | | - 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
* Various fixes pertaining to State Variable accessorsLefteris Karapetsas2015-01-291-3/+3
|
* Explicitly specify insertion to exported functionsLefteris Karapetsas2015-01-291-1/+1
|
* Fixes after rebasing on developLefteris Karapetsas2015-01-291-2/+2
|
* All interface functions are external.Lefteris Karapetsas2015-01-291-1/+1
|
* Various small fixes for Sol Automatic AccessorsLefteris Karapetsas2015-01-291-13/+1
|
* Modifications to Mix to adapt to FunctionDescriptionLefteris Karapetsas2015-01-291-0/+10
|
* State variable accessors code is now more organizedLefteris Karapetsas2015-01-291-13/+102
| | | | | | | | | | | | | - 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
* Work in progress for state variable accessorsLefteris Karapetsas2015-01-291-11/+37
| | | | | | | | | - 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
* Cleaner solution to provide standard sources.Christian2015-01-281-2/+1
|
* Compilation of function modifiers.Christian2015-01-261-2/+3
|
* Type resolution for function modifiers.Christian2015-01-261-45/+78
|
* Function modifier parsing.Christian2015-01-261-0/+5
|
* Include virtual function overrides in constructor context.Christian2015-01-201-4/+3
|
* Constructor arguments for base classes.Christian2015-01-201-0/+19
|
* Explicit calls to base class function.Christian2015-01-201-2/+3
|
* Check overrides and provide inherited public interface.Christian2015-01-201-8/+35
|
* Merge pull request #799 from chriseth/sol_gasAndValuechriseth2015-01-151-11/+4
|\ | | | | Specify gas and value for function calls and contract creation calls.
| * Specify value for contract creation.Christian2015-01-141-11/+4
| |
* | Check for hash collisions already before compiling.Christian2015-01-141-8/+30
|/
* Remove const from make_shared to allow enable_shared_from_this to work on MacOS.Christian2015-01-091-5/+5
|
* Arbitrary precision integer constants.Christian2015-01-091-3/+17
|
* Possibility for unary operators to change type.Christian2015-01-091-2/+2
|
* Use shared_from_this instead of manually supplying a shared_ptr to this.Christian2015-01-091-3/+3
|
* Fixing a solAssert in getInterfacefunctions()Lefteris Karapetsas2015-01-091-2/+1
|
* Adjustments to Solidity compiler code for Function HashLefteris Karapetsas2015-01-091-1/+3
|
* merging developLefteris Karapetsas2015-01-091-20/+15
|\
| * Merge pull request #738 from LefterisJP/sol_abiFunctionHashGav Wood2015-01-071-0/+5
| |\ | | | | | | Canonical Function signature creation in solidity
| * | Possibility for binary operators to yield types different from their operands'.Christian2014-12-191-20/+15
| | |
* | | Solidity getInterfaceFunctions is now a map of hash to FunctionLefteris Karapetsas2015-01-071-8/+8
| |/ |/| | | | | | | | | | | - Also introduced dependency between libsolidity and libdevcrypto - Compler's appendFunctionSelector now has a first version of using function signature hash instead of index
* | Small issues with Canonical Function SignatureLefteris Karapetsas2015-01-071-7/+2
| | | | | | | | - Also added an extra test
* | FunctionType also gets CanonicalSignatureLefteris Karapetsas2015-01-071-11/+3
| | | | | | | | - also using iterators in the signature creation function
* | Test for the Canonical Signature of a functionLefteris Karapetsas2015-01-071-0/+1
| |
* | Creating the canonical signature of a function, for later use in the ABILefteris Karapetsas2015-01-071-0/+17
|/
* Assertions that throw InternalCompilerErrors.Christian2014-12-171-5/+3
|
* ForStatement typecheck and initExpression is a StatementLefteris Karapetsas2014-12-171-2/+6
|
* Adding a ForStatement solidity AST Node.Lefteris Karapetsas2014-12-171-0/+7
| | | | | | | - Adding ForStatement node - Implemented Parsing for ForStatement - A simple parsing test for the ForStatement - Work in progress
* Check that constructor does not have "returns" directive.Christian2014-12-151-0/+11
|
* Create contracts.Christian2014-12-151-5/+33
|
* Move implementations of ::accept out of AST.cpp.Christian2014-12-091-458/+1
|
* More const cleanup.Christian2014-12-081-9/+9
|
* Clear separation between ASTVisitor and ASTConstVisitor and more const ↵Christian2014-12-081-30/+43
| | | | specifiers.
* Const functions for ASTVisitor and const ASTPrinter.Christian2014-12-081-4/+205
|
* Import directive.Christian2014-12-031-28/+41
|
* Disallow assignments to structs and mappings.Christian2014-12-021-4/+8
|
* More general function types and references.Christian2014-11-261-6/+6
|
* Magic variables.Christian2014-11-241-9/+8
|
* Contracts as types and framework for special global variables.Christian2014-11-241-1/+35
|
* Convenience class for type members.Christian2014-11-241-7/+3
|
* We only care about member types.Christian2014-11-241-1/+1
|
* Struct types.Christian2014-11-141-2/+11
|
* Mapping types.Christian2014-11-141-7/+33
|
* Provide interface for calls in JSON and some other formatting changes.Christian2014-11-121-0/+15
|
* Merge remote-tracking branch 'ethereum/develop' into sol_typePromotionChristian2014-11-071-19/+1
|\
| * Minor cleanup.Christian2014-11-061-19/+1
| |
* | Re-added some changes lost in merges.Christian2014-11-071-1/+1
| |
* | More information for type expectation errors.Christian2014-11-061-5/+11
| |
* | Detect integer length from literals and remove "std::".Christian2014-11-061-0/+2
|/
* Stylistic corrections.Christian2014-11-051-1/+1
|
* Converted all asserts to exceptions.Christian2014-11-051-13/+12
|
* Stylistic changes.chriseth2014-11-041-4/+0
|
* Contract compiler and also add ExpressionStatement to AST.Christian2014-10-301-15/+28
| | | | | | | | 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.
* Bugfix: Allow empty return statements without type checking.Christian2014-10-301-0/+2
|
* Compiler for assignments.Christian2014-10-291-3/+10
|
* Removed std:: where it made sense.Christian2014-10-251-9/+11
|
* Replace BOOST_ASSERT by assert.Christian2014-10-251-8/+8
|
* Expression compiler.Christian2014-10-251-10/+13
|
* Remove nullptr comparisons.Christian2014-10-241-8/+8
|
* Use createTypeError everywhere and stream out Location.Christian2014-10-241-4/+1
|
* Use boost errinfo.Christian2014-10-241-15/+19
|
* Improved exceptions and reporting exceptions for command-line compiler.Christian2014-10-231-20/+17
|
* Pointer type cleanup: Use ASTPointer only for AST nodes and shared_ptr for typeChristian2014-10-201-48/+38
| | | | pointer.
* Coding style cleanup: const and vecptr.Christian2014-10-201-1/+1
|
* Coding style and cleanupChristian2014-10-171-25/+4
|
* Corrected coding style.Christian2014-10-161-55/+88
|
* Some fixes for the type system, should be quite usable now.Christian2014-10-161-1/+1
|
* Added meaningful exception types.Christian2014-10-161-13/+23
|
* Type system, not yet complete.Christian2014-10-161-14/+230
|
* AST printer and command line tool, some fixes.Christian2014-10-101-0/+232
|
* Corrected indentation.Christian2014-10-091-11/+11
|
* Solidity parser, can not parse much yet.Christian2014-10-081-0/+23