Commit Graph

466 Commits

Author SHA1 Message Date
Alex Beregszaszi
e8c2e87397 Use utf8::validate in StringLiteral::toString 2016-08-08 19:57:41 +01:00
Alex Beregszaszi
bf76321c9e Move LiteralString::toString from the header 2016-08-08 19:08:31 +01:00
chriseth
539afbeea3 Merge pull request #828 from axic/identity-gas-fix
Fix identity precompile gas calculation
2016-08-08 19:15:03 +02:00
chriseth
ac8e726970 Fix segfault in ast output. 2016-08-08 19:10:17 +02:00
chriseth
c3ed550eb6 Merge pull request #834 from chriseth/devcorecleanup
Some cleanup regarding libdevcore. Also rename to avoid conflicts.
2016-08-08 15:11:36 +02:00
chriseth
ccd78d05d6 Correct library usage. 2016-08-08 12:26:07 +02:00
Alex Beregszaszi
17f760e2a9 Fix identity precompile gas calculation 2016-08-06 00:18:21 +01:00
chriseth
7ea5770598 Do not install headers. 2016-08-05 16:35:24 +02:00
Alex Beregszaszi
6db12c4f88 Rename addUnicodeChar to addUnicodeAsUTF8 2016-08-04 17:28:48 +01:00
Alex Beregszaszi
aa4593cab3 Support Unicode escape characters in string literals ('\uUUUU')
Fixes #638
2016-08-04 17:28:48 +01:00
Nicolai
cc863b0a63 Split ElementaryTypeName into smaller rules 2016-08-02 17:18:59 +02:00
Nicolai
baaad627c4 Remove ambiguity from EventDefinition. Fix SourceUnit 2016-08-01 22:33:05 +02:00
Nicolai
9f772cb9a1 Remove 'reduce/reduce conflicts' with comma operator 2016-07-30 19:27:32 +02:00
Nicolai
b2de2a9d0f Fix reduce/reduce conflicts w/ multiple FunctionCall in Expression 2016-07-30 16:03:10 +02:00
Nicolai
35182c7305 Remove TypeParameterList 2016-07-30 15:34:46 +02:00
chriseth
58cc6cbb37 Bugfix: Allocate empty array. 2016-07-28 17:24:18 +02:00
Nicolai
97d7b8509c Fixes to expression 2016-07-27 16:42:33 +02:00
Nicolai
cde629d48d Added wildcard to UsingForDeclaration 2016-07-27 16:03:40 +02:00
Nicolai
ec0933bf9f Imports => ImportDirective 2016-07-27 16:01:30 +02:00
Nicolai
e584a8396a Remove assignment as expr. Add functionCall as primaryExpression 2016-07-26 15:44:22 +02:00
Nicolai
3009064533 Fix missing seperator from commit 8b450dd8 2016-07-26 15:13:26 +02:00
Nicolai
8b450dd808 Added PlaceholderStatement 2016-07-25 17:48:49 +02:00
Nicolai
3f5bff968f Add StorageLocation 2016-07-25 17:28:30 +02:00
Nicolai
1a661c562a Allow function to call modifiers 2016-07-25 16:53:15 +02:00
Nicolai
bd2562ffd3 Order expression according to PR 732 2016-07-23 16:15:01 +02:00
Nicolai
28c4a0a3ab New regex for StringLiteral 2016-07-23 02:35:20 +02:00
Nicolai
5512b85594 Begin fixing expression syntax 2016-07-23 01:45:10 +02:00
chriseth
6610add63e Merge pull request #731 from Denton-L/move-token
Move `in` as a keyword to reserved word section
2016-07-21 14:34:22 +02:00
Denton Liu
8fbe994075 Fix isCompareOp() 2016-07-20 17:05:24 -04:00
Denton Liu
827208d1d6 Move in as a keyword to reserved word section 2016-07-20 15:42:18 -04:00
chriseth
c55584d3e2 Source location as part of AST. 2016-07-20 19:45:43 +02:00
chriseth
980abfe52a Merge pull request #720 from chriseth/formalState
Formal Verification: Handle external effects.
2016-07-20 19:37:57 +02:00
Nicolai
1c341add59 Added UsingDeclaration 2016-07-20 19:31:05 +02:00
Nicolai
ad2784b333 Extend EventDefinition 2016-07-20 19:17:03 +02:00
Nicolai
e1c69b11f4 Fix missing 'ether' from NumberUnit. Extend StringLiteral syntax 2016-07-20 17:07:26 +02:00
Nicolai
9324393975 Added missing (u)fixed types 2016-07-20 16:49:14 +02:00
Nicolai
da8b768713 Extend NumberLiteral with units 2016-07-20 16:23:30 +02:00
Nicolai
5abb9b6e41 Added imports 2016-07-20 16:14:23 +02:00
Nicolai
f76616889a Add EventDefinition 2016-07-20 15:59:00 +02:00
Nicolai
68b72d8667 NumberLiteral: Allow 0x prefix 2016-07-20 02:42:02 +02:00
Nicolai
6f7d8fb65b Allow function returns to be unnamed 2016-07-20 02:26:33 +02:00
Nicolai
f003bdafa6 Fix StructDef. Add BoolLiteral. Def NumLiteral, StringLiteral and Identifier. 2016-07-20 02:18:09 +02:00
Nicolai
1e2f071a11 Fix missing quotes in ElementaryTypeName 2016-07-20 01:33:08 +02:00
Nicolai
8e6272b020 Added ElementaryTypeName, removed explicit recursion 2016-07-19 18:59:34 +02:00
Nicolai
447797ad9c Add forStmt to Stmt, removes BasicBinaryOperation, throw expr, explicit rec in ArrTypeName 2016-07-19 17:27:53 +02:00
Nicolai
dc3828ee37 Remove "in", extra semicolons, forced function param. Added "throw". Changes FunctionCall & IndexAccess 2016-07-19 01:26:39 +02:00
Nicolai
ce8a003611 grammar.txt: Fixes to EnumDef and ArrayTypeName 2016-07-19 01:03:41 +02:00
Nicolai
c396148fe6 grammer.txt: inheritable => internal 2016-07-19 00:49:00 +02:00
chriseth
9a9a815fc9 Provide formal version in json output. 2016-07-18 18:26:56 +02:00
Nicolai Søborg
80b01f6ebd Grammar: tab => spaces 2016-07-14 23:48:29 +02:00
Nicolai
ff9d6e05f2 Typos + added missing grammar rules 2016-07-14 23:41:32 +02:00
Nicolai
c800f8c97d Remove the remains of "expresison" 2016-07-14 22:56:45 +02:00
chriseth
26e5faa038 Handle external effects. 2016-07-13 11:16:00 +02:00
chriseth
25a64c7f8f Only warn about unused return in low-level functions. 2016-06-26 13:53:32 +02:00
chriseth
cc6314cd01 Warn about unused return values. 2016-06-26 13:53:32 +02:00
chriseth
31aa67f1ca Merge pull request #640 from chriseth/globalPaths
Allow remappings to change depending on the context.
2016-06-10 17:58:25 +02:00
chriseth
d593166d66 Merge pull request #641 from axic/patch/shift-parser
Trivial shift parser fixes
2016-06-09 00:21:51 +02:00
chriseth
3150ab2bcf Allow remappings to change depending on the context. 2016-06-08 18:16:46 +02:00
Alex Beregszaszi
0cb820cf98 Include SHR case in ExpressionCompiler::appendShiftOperatorCode 2016-06-07 19:39:14 +01:00
Alex Beregszaszi
f8ccf3eebf Fix Token::isBitOp to exclude shift operators 2016-06-07 19:39:05 +01:00
chriseth
ab7a22f4a0 Disallow implementation of abstract function by constructor of derived class. 2016-06-06 19:38:22 +02:00
chriseth
754a992500 Inaccessible dynamic types 2016-06-02 12:52:25 +02:00
chriseth
708129abd5 Fixes for invalid cleanups for small types. 2016-05-20 16:52:40 +02:00
chriseth
2f37356c58 Merge pull request #565 from VoR0220/fixedDataType
Fixed data typename fixes and documentation
2016-05-20 16:48:50 +02:00
chriseth
6b859a2bff Refactor compiler to avoid weird swap of contexts 2016-05-20 14:20:45 +02:00
VoR0220
9192357452 updated docs
types

reference
2016-05-18 16:36:05 -05:00
VoR0220
6289410152 explicit conversion and loosening of binary operations on integer and fixed point types...still other problems
fixed some spaces and deleted lines from failing test
2016-05-18 15:52:09 -05:00
VoR0220
3ba308fb2e current debugging info 2016-05-18 15:52:09 -05:00
chriseth
775b757d0e Merge pull request #545 from chriseth/accessFunLabels
Allow access to functions in inline assembly.
2016-05-17 23:59:13 +02:00
moneroexample
9d237fbfdc fix: error: call of overloaded ‘list(int, <brace-enclosed initializer list>)’
Issue: https://github.com/ethereum/solidity/issues/574

Compilation of webthree-umbrella on Arch with gcc 6.1 results in the following
error:

/home/mwo/webthree-umbrella/solidity/libsolidity/analysis/NameAndTypeResolver.cpp:299:51: error: call of overloaded ‘list(int, <brace-enclosed initializer list>)’ is ambiguous
  list<list<ContractDefinition const*>> input(1, {});

This can be overcome by explicitly specifying initial value, for example:

  list<list<ContractDefinition const*>> input(1, list<ContractDefinition const*>{})
2016-05-17 13:27:39 +08:00
chriseth
67ca3bb4b9 Allow access to functions in inline assembly. 2016-05-12 12:30:48 +02:00
chriseth
d4206b7cd0 Remove unused tests and add asserts for not implemented parts in code generation.
quick fix on christian's rational

change so that ubuntu will stop yelling

be more specific with rational declaration for Windows sake

rational in namespace correction for windows
2016-05-10 16:03:33 -05:00
chriseth
656405240e Simplify interface of RationalNumber. 2016-05-10 19:40:37 +02:00
chriseth
cf226f0607 Special case for moving sign bit to fractional part. 2016-05-10 19:40:37 +02:00
chriseth
02e1c9be0d Cleanup. 2016-05-10 19:40:37 +02:00
chriseth
4dfe9a216c Disallow explicit fixed->enum, but allow bytes->fixed. 2016-05-10 19:40:37 +02:00
chriseth
ef7049f9a6 Some cleanup. 2016-05-10 19:40:37 +02:00
chriseth
22318c0c1a Replace "unsigned int" by "unsigned". 2016-05-10 19:40:37 +02:00
chriseth
80c368dac1 Prefer mobileType() to check rational range. 2016-05-10 19:40:35 +02:00
VoR0220
a6fc3c8f30 reorganized tests and fixed mobile types and implicit conversions of rationals and fixed point types
one final tweak

check for null types
2016-05-09 11:41:03 -05:00
VoR0220
bfc238c8d1 updated algorithm for bit finding...now to figure out literal value
tiny fixups

changed location of the check

got rid of extra space and fixed a couple of things

added binary results bits

change back literal value
2016-05-09 11:41:03 -05:00
VoR0220
5bddb2d6ff changed algorithm for finding bits 2016-05-09 11:41:03 -05:00
VoR0220
4b3e1f140c much better way of doing modulus 2016-05-09 11:41:03 -05:00
VoR0220
82039b732e added bytes conversion tests, resolved that, converted to binary scaling, refactored the find algo to prevent large numbers and take into account integer bytes
think we're good on solidity type name resolution now

removed couts

updates to documentation and more removed couts along with literal value implementation

forgot semicolons
2016-05-09 11:41:03 -05:00
VoR0220
f0ea817580 fixing modulus and Solidity Name and Type Resolution
minor fixes

current attempts at binary fixup
2016-05-09 11:41:03 -05:00
VoR0220
f67bfd24a3 rational renaming 2016-05-09 11:41:03 -05:00
VoR0220
4b749fc333 changed names for Rational Constants and categories 2016-05-09 11:41:02 -05:00
VoR0220
4d283b2b30 currently what we have 2016-05-09 11:41:02 -05:00
RJ Catalano
93295ae8f8 got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be
slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

infinite loop still happening but it's somewhere in the fixedPoint methodd

fractional bits needed algo improved! Eliminated 2 errors

Corrected problems with the previous commit. No infinite loops. Actually appear to have corrected an error
2016-05-09 11:41:02 -05:00
RJ Catalano
a1a2eac5fd size capabilities functioning properly for fixed types 2016-05-09 11:41:02 -05:00
RJ Catalano
91fda50922 fixed problem with var...probably a conversion problem for fixed in size capabilities
adding fixed type tests

Removing bitshift and regrouping fixed type tests together
2016-05-09 11:41:02 -05:00
RJ Catalano
dff1a26f55 fix for token bug, also quick fix for the wei and seconds 2016-05-09 11:41:02 -05:00
RJ Catalano
6fa5e0fac9 Rational implemented...trying to figure out exponential 2016-05-09 11:41:02 -05:00
RJ Catalano
9a075458ad initial work for fixed types...potentially needing a constant literal type for this
notation

Rational implemented...trying to figure out exponential

fix for token bug, also quick fix for the wei and seconds

fixed problem with var...probably a conversion problem for fixed in size capabilities

adding fixed type tests

Removing bitshift and regrouping fixed type tests together

size capabilities functioning properly for fixed types

got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be

slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

initial work for fixed types...potentially needing a constant literal type for this
2016-05-09 11:41:02 -05:00
chriseth
7ea3d950d7 Allow calling internal functions of libraries.
Internal functions of libraries can be called as if the library were a
base contract of the calling contract. As the calling convention for
internal functions is to not create a new call context, the code of
these functions will be pulled into the context of the caller,
duplicating their code. This might pull in code of further internal or
even private functions.

The use case for such functions is to allow libraries which can operate
on memory types such that these types can also be modified in place.
2016-05-03 22:41:18 +02:00
chriseth
652bc583c0 Remove non-determinism in missing code queue. 2016-05-03 01:14:26 +02:00
chriseth
8704dd0f7f Windows fix. 2016-04-21 16:13:39 +02:00
chriseth
ed9da5171b Source location for inline assembly. 2016-04-19 18:35:21 +02:00
chriseth
b125090208 Bugfix: static arrays in constructor arguments 2016-04-15 18:42:44 +02:00
chriseth
35ffcac35b Fix for bug about deleting dynamic array of structs. 2016-04-15 16:49:59 +02:00