Daniel Kirchner
3321fc56ea
Split fallback function and introduce "fallback()" and "receive()" syntax.
2019-11-04 17:17:58 +01:00
Alexander Arlt
62950a9234
Support for abstract contracts.
2019-11-01 14:54:47 -05:00
chriseth
6d6914f98f
Parser for try/catch.
2019-09-23 17:22:42 +02:00
Daniel Kirchner
4782c800ec
Initial introduction of array slices with partial implementation for dynamic calldata arrays.
2019-09-13 10:57:53 +02:00
Mathias Baumann
24716404f8
Parse override keyword
2019-08-26 17:34:21 +02:00
rocky
ca3afea1d7
Add Steve Johnson-style parser recovery rules:
...
SourceUnit = Error $
Block = '{' Error '}'
ContractDefinition = '{' Error '}'
Statement = Error ';'
Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
chriseth
4ee703e6e5
Revert "Add Steve Johnson-style parser recovery rules:"
...
This reverts commit 97f8ee0d1b
.
2019-05-28 18:09:24 +02:00
rocky
97f8ee0d1b
Add Steve Johnson-style parser recovery rules:
...
SourceUnit = Error $
Block = '{' Error '}'
ContractDefinition = '{' Error '}'
Statement = Error ';'
Co-Authored-By: chriseth <chris@ethereum.org>
2019-05-28 15:06:34 +02:00
chriseth
9a00729ce7
Provide dialect to Parser and InlineAssembly AST nodes.
2019-05-23 00:24:58 +02:00
Christian Parpart
bb28c8a877
Fixes wrong source location when reporting pragma solidity version conflicts.
2019-03-20 11:42:25 +01:00
chriseth
1a823f0bf8
Fix tabs/spaces.
2019-02-13 17:05:48 +01:00
Christian Parpart
62fe57479e
make use of C++ = default
constructor declarations as well as more non-static member initialization syntax.
2018-12-19 11:26:42 +01:00
Alex Beregszaszi
c2ec6d71b4
Add version pragma parsing to Parser
2018-12-18 15:02:35 +00:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
Daniel Kirchner
f020f96b6c
More consistently use parse*() functions without argument in the parser.
2018-09-06 14:55:07 +02:00
Erik Kundt
182a0a9551
Disallows old constructor syntax.
2018-07-18 14:29:01 +02:00
chriseth
fe8f38a7a4
Assert integrity of empty IndexAccessPath structure.
2018-05-09 14:55:36 +02:00
chriseth
be54f48197
Further refactor.
2018-05-09 11:48:21 +02:00
chriseth
86b7adc18f
Refactor expression parser.
2018-05-09 11:48:21 +02:00
Alex Beregszaszi
ed9f80690b
Simplify expectIdentifierToken by using expectToken
2018-05-03 22:10:51 +01:00
Alex Beregszaszi
73c99d15cd
Remove useless helper expectAssignmentOperator in parser
2018-05-03 21:35:38 +01:00
chriseth
d44fb03322
Refactor parser.
2018-04-26 10:59:02 +02:00
Daniel Kirchner
e2dac9ed39
Set header.isConstructor for old style constructors in parseFunctionHeader as well.
2018-04-03 18:21:55 +02:00
Daniel Kirchner
d664a599e6
Constructors are defined using the `constructor
` keyword.
2018-04-03 18:21:55 +02:00
chriseth
388718b59f
Introduce emit statement.
2018-02-22 15:17:30 +01:00
chriseth
692e4c57e8
Check recursion depth in assembly parser.
2017-08-22 12:44:22 +02:00
Alex Beregszaszi
2a5772cff7
Mark appropriate constructors explicit
2017-08-22 10:51:46 +01:00
chriseth
32e43477c3
Prevent too deep recursion in parser.
2017-08-14 22:19:15 +02:00
Alex Beregszaszi
2a9ba937ba
Replace constant/payable with StateMutability in AST
2017-08-14 14:21:47 +01:00
Alex Beregszaszi
efd45f64a5
Show previous visibility specifier in parser error
2017-08-09 14:30:17 +01: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
751c97ca19
Pull out common code to a helper
2017-05-26 21:40:14 +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
f8da9a8fd5
Factor out tokenToContractKind
2017-03-17 17:06:52 +00:00
Alex Beregszaszi
54230d2d5d
Support interface (contract) keyword in the parser
2017-03-17 16:27:04 +00:00
VoR0220
3f9f725737
Fix licensing headers
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
chriseth
97a3588701
Function type state variables.
2016-11-16 14:37:17 +01:00
chriseth
cc8583ec7d
Function types.
2016-11-16 14:37:17 +01:00
Rhett Aultman
4524ad0870
Add support for do/while loops
...
This commit adds support for a standard do <statement> while <expr>;
form of statement. While loops were already being supported; supporting
a do/while loop mostly involves reusing code from while loops but putting
the conditional checking last.
2016-11-10 07:07:25 -08:00
chriseth
3c412ed2f6
Version pragma.
2016-09-01 00:02:51 +02:00
chriseth
949b00ed59
Parsing for inline assembly.
2016-03-30 02:37:00 +02:00
LianaHus
58e07151e3
- inline and assembly keywords added
...
- some style fixes
2016-03-11 17:49:32 +01:00
chriseth
968934c05d
Move reusable parser components into base class.
2016-02-22 18:02:29 +01:00
chriseth
0e2fa39fad
Use paths instead of simple identifiers wherever possible.
2015-12-21 18:44:21 +01:00
chriseth
d71cd3aa2b
Added the using x for y
directive.
2015-11-26 17:49:39 +01:00
chriseth
8fb49d85f9
Allow docstrings for statements.
2015-10-26 19:47:25 +01:00
chriseth
e3dffb611f
File reorganisation.
2015-10-21 00:46:01 +02:00