Alex Beregszaszi
007ffe9430
Avoid including Scanner.h in ParserBase.h
2017-06-22 22:22:19 +01:00
chriseth
bffb8c404f
Merge pull request #2408 from federicobond/constant-parameters
...
Fix segmentation fault with constant function parameters
2017-06-22 18:46:15 +02:00
chriseth
83ea7793d9
Fix ABI encoding of empty string literal.
2017-06-22 17:55:06 +02:00
chriseth
f340ff8764
Fix strings interpreted as addresses.
2017-06-22 16:48:44 +02:00
Alex Beregszaszi
f823952d9f
Merge pull request #2404 from ethereum/methodidentifiers
...
Clean up method identifiers handling in CLI/CompilerStack
2017-06-22 13:00:19 +01:00
Alex Beregszaszi
d5f8ce90c7
Merge interface/Exceptions and interface/Utils
2017-06-22 11:25:07 +01:00
Alex Beregszaszi
ba7d698ee6
Make compiler.contractDefinition private
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b
Rework functionHashes into methodIdentifiers
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
63395b31af
Use compilerStack.functionHashes in StandardCompiler
2017-06-22 11:13:06 +01:00
Federico Bond
0f8ad1d68f
Fix segmentation fault with constant function parameters
2017-06-21 22:46:27 -03:00
chriseth
622703c0c0
Merge pull request #2409 from federicobond/trailing-commas-2
...
Improve error reporting of trailing commas
2017-06-19 12:01:19 +02:00
chriseth
b3a7b5a145
Merge pull request #2416 from federicobond/multiple-specifiers
...
Display error if payable or constant is specified multiple times
2017-06-19 12:00:04 +02:00
chriseth
0c75afb2c1
Merge pull request #2225 from ethereum/julia-for
...
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
Federico Bond
d170ceaf3d
Display error if payable or constant is specified multiple times
2017-06-17 12:21:46 -03:00
chriseth
868b5ad3aa
Split block code generation into main and finalize.
2017-06-16 10:56:21 +01:00
chriseth
78b49db779
Helper to count the number of variables in a scope.
2017-06-16 10:56:21 +01:00
chriseth
8e5c4bf21d
Add include file to forward-declare inline assembly structs.
2017-06-16 10:56:21 +01:00
chriseth
49b1112117
For loops analysis.
2017-06-16 10:56:21 +01:00
Alex Beregszaszi
47925bc14e
Parse for statement in assembly parser / printer
2017-06-16 10:56:21 +01:00
Federico Bond
0eaae03bbf
Try to recover from parser errors where possible
2017-06-15 21:14:05 -03:00
Federico Bond
60bfae75e5
Improve error reporting of trailing commas
2017-06-15 13:10:08 -03:00
chriseth
9084d48750
Merge pull request #2382 from ruchevits/combined-json-hashes
...
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
Alex Beregszaszi
c08c4b8b6f
Move subroutine helpers from CompilerContext to Assembly
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
398099f50e
Remove obsolete errorTag()
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
42b61171d9
Merge pull request #2192 from winsvega/develop
...
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
chriseth
f008ddf836
Merge pull request #2381 from ethereum/fixcrash
...
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101
Merge pull request #2384 from ethereum/parseFunctionalInstructions
...
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry
c20cdd0a05
add new opcode instructions to the parser
...
STATICCALL 0xfa 6 inputs (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
chriseth
29e7ad3d7b
Silence compiler warning.
2017-06-14 17:39:36 +02:00
Alex Beregszaszi
a921bd0ae4
Display user friendly instruction name
2017-06-14 16:00:39 +02:00
Alex Beregszaszi
494b9dbfaa
Issue warning for using CREATE2 in inline assembly
2017-06-14 16:00:39 +02:00
chriseth
1ae0e082b3
Merge pull request #2392 from federicobond/disallow-trailing-commas
...
Forbid trailing commas in named arguments
2017-06-14 15:31:40 +02:00
chriseth
1b1f35762e
Enforce function arguments when parsing functional instructions.
2017-06-14 14:51:47 +02:00
chriseth
21aafaa704
Merge pull request #2331 from ethereum/ASTDocumentationEntry
...
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
chriseth
e232a105f0
Merge pull request #2327 from ethereum/assembler-object
...
Return assembler object in AssemblyStack
2017-06-14 14:28:06 +02:00
chriseth
07cc84fade
Fix a crash about a non-callable expression.
2017-06-14 14:26:20 +02:00
chriseth
43cfab70d0
Merge pull request #2389 from ethereum/moveLabelIDs
...
Move LabelIDs to generation phase.
2017-06-14 14:12:33 +02:00
Federico Bond
fd8365df08
Forbid trailing commas in named arguments
2017-06-14 00:15:27 -03:00
chriseth
154002cda0
Move "active variable" to analysis phase.
2017-06-14 00:10:33 +02:00
chriseth
1bf717fd65
Remove struct constructor.
2017-06-14 00:03:08 +02:00
chriseth
c554145f4d
Move stack height to generation phase.
2017-06-14 00:01:06 +02:00
chriseth
45d96959f8
Move LabelIDs to generation phase.
2017-06-13 22:01:15 +02:00
Edward Ruchevits
5f7bca94e5
Reverted functionHashes output to use method signature as keys
2017-06-13 18:04:33 +01:00
Edward Ruchevits
2e816967d3
Allow including hashes of method signatures in --combined-json output
2017-06-13 17:03:17 +01:00
Yoichi Hirai
8775e77305
Add a warning about a varialbe of the name of an instruction
2017-06-13 16:57:08 +02:00
Alex Beregszaszi
05af6c9255
Warn if returndatasize/returndatacopy is used
2017-06-13 16:57:07 +02:00
Alex Beregszaszi
ca92bda886
Supply text representation of assembly
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5
Introduce MachineAssemblyObject
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
fe3b46554a
Merge pull request #2362 from ethereum/lowercase_instructions
...
Use lowercase when reporting instruction error.
2017-06-09 14:49:59 +01:00
chriseth
bf2b5c746a
Use lowercase when reporting instruction error.
2017-06-09 15:17:29 +02:00
Alex Beregszaszi
8768080a02
Remove excess includes
2017-06-09 12:47:05 +01:00
Alex Beregszaszi
1da3af161f
Simplify CodeGenerator by remove seldom used case
2017-06-09 12:45:56 +01:00
Alex Beregszaszi
114c157b04
Remove obsolete AsmStack
2017-06-09 11:43:41 +01:00
Alex Beregszaszi
ae6251effd
Use inline assembly directly and not via AsmStack
2017-06-09 11:43:40 +01:00
chriseth
6b3e7f79cf
Comments and consistent variable names.
2017-06-09 10:45:36 +01:00
chriseth
308a726ad1
Fix: Copy resolver.
2017-06-08 15:52:45 +02:00
chriseth
b32d5e4cc0
Visitor bugfix.
2017-06-08 15:52:45 +02:00
chriseth
ef3d5874fe
Remove error reporter from code generation phase.
2017-06-08 15:52:45 +02:00
chriseth
19f707aeaa
Some more comments.
2017-06-08 15:52:45 +02:00
chriseth
0185f3cbf6
Correct stack height adjustment after returnsub.
2017-06-08 15:52:45 +02:00
chriseth
ba5ee71b7f
Generate only single error in inline assembly.
2017-06-08 15:52:45 +02:00
chriseth
fefd3b866d
Introduce machine-dependent stack adjustment.
2017-06-08 15:52:45 +02:00
chriseth
97cc968a13
Initial EVM1.5 assembly implementation.
2017-06-08 15:52:44 +02:00
Alex Beregszaszi
aa310f9fec
Refactor AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
502304f30b
Add analyze(block) to AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
937c208320
Reset error list in parseAndAnalyze
2017-06-07 14:41:44 +01:00
chriseth
1fba984966
Merge pull request #2332 from ethereum/fixLiteralPrint
...
fix Literalprint
2017-06-06 15:09:48 +02:00
djudjuu
62eafdd010
adjusted testcase and renaming
2017-06-06 13:26:23 +02:00
chriseth
b4ae188a0f
Merge pull request #2336 from ethereum/expectExpression
...
Refactor to use expectExpression in analyzer.
2017-06-01 15:57:28 +02:00
chriseth
d5408f78ad
Add comma.
2017-06-01 15:56:49 +02:00
chriseth
40f3e4413b
Improved error message.
2017-06-01 15:31:07 +02:00
Alex Beregszaszi
998ca552b8
Fix state after CompilerStack.reset()
2017-06-01 13:44:08 +01:00
chriseth
05004253ba
Refactor to use expectExpression in analyzer.
2017-06-01 14:28:39 +02:00
Alex Beregszaszi
c212d7c2e6
Remove unused functions from CompilerStack
2017-06-01 13:28:05 +01:00
djudjuu
597bf8a43d
fix Literalprint
2017-05-30 19:53:32 +02:00
chriseth
d4a57d81ba
Merge pull request #2317 from ethereum/keccak256
...
Use keccak256 in tests and replace the SHA3 instruction in assembly
2017-05-30 19:34:28 +02:00
djudjuu
2e7190534b
documentation field added to ContractDefinition-Node
2017-05-30 18:52:43 +02:00
Rhett Aultman
89b60ffbd4
Refactor error reporting
...
This commit introduces ErrorReporter, a utility class which consolidates
all of the error logging functionality into a common set of functions.
It also replaces all direct interactions with an ErrorList with calls to
an ErrorReporter.
This commit resolves issue #2209
2017-05-30 07:28:31 -07:00
Alex Beregszaszi
75e4a2be1b
Alias sha3 to keccak256 in inline assembly
2017-05-30 10:54:29 +01:00
Alex Beregszaszi
0c8beac357
Rename the SHA3 assembly instruction to KECCAK256
2017-05-30 10:54:29 +01:00
chriseth
8b29cc5535
Merge pull request #2319 from ethereum/virtualBlocks
...
Introduce virtual blocks for function arguments.
2017-05-29 16:52:51 +02:00
chriseth
4af55c78eb
Introduce virtual blocks for function arguments.
2017-05-29 16:18:16 +02:00
chriseth
9adff68ecc
Introduce LabelID typedef.
2017-05-29 15:40:32 +02:00
chriseth
2c4a107f43
Merge pull request #2311 from ethereum/julia-types
...
Validate types for Julia (part 1)
2017-05-29 14:12:38 +02:00
Alex Beregszaszi
751c97ca19
Pull out common code to a helper
2017-05-26 21:40:14 +01:00
Alex Beregszaszi
48f58aa3f9
Remove duplicate code
2017-05-26 21:02:31 +01:00
Alex Beregszaszi
9337003d5e
Use the new ParserBase API in AsmParser
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
3459052ae8
Add scanner helpers to ParserBase
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
2fefe3b549
Move Solidity specific methods from ParserBase to the Solidity Parser
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
2a50e869d0
Move builtin type list to the top
2017-05-26 20:43:28 +01:00
Alex Beregszaszi
efadf7e41f
Change error message for invalid type
2017-05-26 20:42:17 +01:00
Alex Beregszaszi
8fe79fe706
Introduce Julia mode in AsmAnalyzer
2017-05-26 20:39:30 +01:00
Alex Beregszaszi
3b75c5b45f
Validate that only basic types are used in Julia
2017-05-26 20:39:10 +01:00
Alex Beregszaszi
dda497ca02
Move constructor to AsmAnalyzer header
2017-05-26 20:39:10 +01:00
chriseth
fe32531a16
More comments for assembly
2017-05-26 15:08:27 +02:00
chriseth
261731f7ee
Adapt EVM codegen to new namespace.
2017-05-26 15:08:27 +02:00
chriseth
71b923cc36
Move EVM codegen to libjulia.
2017-05-26 15:03:30 +02:00
chriseth
eaa13d42a0
Support multiple assembly front and backends.
2017-05-26 15:03:29 +02:00
chriseth
68e1e464be
Merge pull request #2316 from ethereum/inlineasm-cleanup
...
Better error message for elementary operations
2017-05-26 11:29:51 +02:00
chriseth
ec676ba9f2
Merge pull request #2224 from ethereum/julia-switch
...
Implement switch statement in the assembly parser/printer
2017-05-26 11:24:38 +02:00