Commit Graph

60 Commits

Author SHA1 Message Date
Alex Beregszaszi
8a32d7c3d7 Add helpers for isPush/isDup/isSwap 2017-10-02 10:34:54 +01:00
Alex Beregszaszi
3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
chriseth
692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Alex Beregszaszi
cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
Alex Beregszaszi
47925bc14e Parse for statement in assembly parser / printer 2017-06-16 10:56:21 +01:00
chriseth
1b1f35762e Enforce function arguments when parsing functional instructions. 2017-06-14 14:51:47 +02:00
chriseth
bf2b5c746a Use lowercase when reporting instruction error. 2017-06-09 15:17:29 +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
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
9337003d5e Use the new ParserBase API in AsmParser 2017-05-26 20:44:34 +01: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
Alex Beregszaszi
e410cec19a Better error message for elementary operations 2017-05-26 09:41:53 +01:00
Alex Beregszaszi
05fcf1989c Better error messages for invalid switch cases 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
c64bd33784 Disallow instructions as a switch expression 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
e48e84ca2b Check token within parseCase 2017-05-26 03:20:15 +01:00
Alex Beregszaszi
db3d9e0416 Switch cases are not followed by colon 2017-05-26 03:20:15 +01:00
Alex Beregszaszi
66eab1caf6 Change switch case string to Literal 2017-05-26 03:20:10 +01:00
Alex Beregszaszi
b5080860d5 Implement switch statement in the assembly parser/printer 2017-05-26 03:16:09 +01:00
Alex Beregszaszi
338202ea96 Uniform error messages 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
56fe3a6ab9 Better error messages during parsing functional instructions 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
b77b11781d Rename parseFunctionalInstruction to parseCall 2017-05-24 01:48:54 +01:00
Alex Beregszaszi
187fa50751 Rename FunctionalAssignment to Assignment 2017-05-24 01:48:53 +01:00
Alex Beregszaszi
f15d6ea45f Rename Assignment to StackAssignment 2017-05-24 01:07:07 +01:00
Alex Beregszaszi
cb4966046d Enable a single right hand item on let 2017-05-22 18:45:34 +01:00
Alex Beregszaszi
15b4d4def2 Support multiple variables in a variable declaration in inline assembly 2017-05-22 18:45:34 +01:00
Alex Beregszaszi
ebcb27e5c1 Accept bool as a type in Julia mode 2017-05-19 09:44:16 +01:00
Alex Beregszaszi
edd0afa3c3 Support true/false literals in inline assembly 2017-05-19 09:44:16 +01:00
Alex Beregszaszi
d6396ee85f Parse types in Julia mode 2017-05-05 22:31:22 +01:00
Alex Beregszaszi
804971973d Show better error message for Julia mode 2017-05-05 14:21:25 +01:00
Alex Beregszaszi
f1f209db40 Do not allow literal pushes in Julia 2017-05-05 14:21:25 +01:00
Alex Beregszaszi
d61f9c4d4e Disable labels in Julia 2017-05-05 14:21:25 +01:00
chriseth
f9bccab7b7 Merge pull request #2193 from ethereum/julia-assign-stack
Disallow assign from stack in Julia (=: var)
2017-04-27 22:00:33 +02:00
Alex Beregszaszi
20206a04dd Disallow assign from stack in Julia (=: var) 2017-04-27 19:20:53 +01:00
Alex Beregszaszi
8020144d06 Do not validate identifiers against EVM instructions in JULIA 2017-04-27 18:16:42 +01:00
Alex Beregszaszi
8b79517d47 Do not validate identifiers against EVM instructions in JULIA 2017-04-27 14:12:48 +01:00
Alex Beregszaszi
35f1cf92db Remove parentheses from around function return parameters 2017-04-27 10:08:02 +01:00
chriseth
49a919b3e0 Parsing function calls. 2017-02-16 10:15:22 +01:00
chriseth
5d584aded8 Parsing function definitions. 2017-02-16 10:15:22 +01:00
Alex Beregszaszi
693226b1ab Rename SUICIDE opcode to SELFDESTRUCT in libevmasm 2017-02-06 20:17:52 +00:00
chriseth
873f2dddd6 Update error message. 2017-01-26 13:52:02 +01:00
chriseth
525758a130 Disallow assignment to non-identifiers. 2017-01-26 13:40:40 +01:00
chriseth
f62e269115 Disallow instructions in assignment. 2017-01-25 17:29:06 +01:00
chriseth
a5696e1f0a Renamed function. 2017-01-25 17:26:11 +01:00
chriseth
27ba665694 Moved test. 2017-01-25 17:24:43 +01:00
Alex Beregszaszi
900c56d996 Do not allow shadowing inline assembly instructions with variables 2017-01-25 11:28:09 +00:00
VoR0220
3f9f725737 Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
Alex Beregszaszi
d0791fb365 Fix assignment after tags in inline assembly 2016-10-11 12:28:49 +01:00
Alex Beregszaszi
ae0477744c Support address in inline assembly 2016-10-06 22:05:01 +01:00