chriseth
c0d9b492a2
This fixes several bugs with regards to line breaks and comments:
...
- any unicode line break (line feed, vertical tab, form feed, carriage
return, NEL, LS and PS) is considered to terminate a single-line
comment. The line break itself is considered to be the next token
after the comment, leading to a parser error if it is not an
ascii character (i.e. for NEL, LS and PS).
- unterminated multiline comments are considered illegal tokens
- '/** /' is considered an unterminated multiline comment
(previously, whitespace was allowed before the last '/'
2018-09-10 12:28:34 +02:00
chriseth
65a439b0fb
Refactor handling of whitespace.
2018-09-10 12:28:34 +02:00
chriseth
3ca6738114
Add assert about source location.
2018-05-16 03:52:24 +02:00
chriseth
67d208d144
Parse multi variable declaration statement.
2018-05-16 03:22:45 +02:00
Alex Beregszaszi
868d449c38
Merge pull request #4047 from ethereum/refactorToMulti
...
Refactor to allow implementing multi variable declarations.
2018-05-09 15:37:19 +01:00
chriseth
fe8f38a7a4
Assert integrity of empty IndexAccessPath structure.
2018-05-09 14:55:36 +02:00
Daniel Kirchner
02380113d4
Use the entire token as source location for parser errors.
2018-05-09 14:08:22 +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
cc10839073
Have more uniform parser errors
2018-05-04 13:27:05 +01:00
Alex Beregszaszi
c7ee649d80
More user friendly output in case of Identifier and Token keywords
2018-05-04 13:27:05 +01:00
Alex Beregszaszi
882248ce75
Remove code duplication in expectToken
2018-05-04 13:27:05 +01:00
Alex Beregszaszi
252bde8542
Introduce Token::friendlyName() helper
2018-05-04 13:11:23 +01:00
Alex Beregszaszi
e3279d8af8
Display nicer error messages in the parser (display tokens and not internal names)
2018-05-04 12:39:37 +01: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
Leo Arias
b74566e4ea
docstring: add missing space
2018-04-23 21:47:53 +00:00
Daniel Kirchner
6862f22943
Fix internal compiler error when parsing `var
` declaration without identifier.
2018-04-12 14:57:14 +02:00
chriseth
b5a696ad48
Properly cope with constructor headers.
2018-04-11 22:00:21 +02:00
chriseth
2ad1acaf72
Warn if modifiers are applied to functions without implementation.
2018-04-11 22:00:21 +02:00
chriseth
6d289783b4
Fix state variable parsing.
2018-04-11 22:00:04 +02:00
Daniel Kirchner
3eedbc6a9c
Error when using no parentheses in modifier-style constructor calls.
2018-04-10 12:09:34 +02:00
chriseth
5b1c0506fa
Allow `memory
` suffix for internal elementary type parsing.
2018-04-05 16:06:04 +02:00
Daniel Kirchner
96eff0ff6a
Error when using empty parenthesis for base class constructors that require arguments.
2018-04-05 11:52:22 +02:00
Daniel Kirchner
8f66390f56
Set isConstructor to false unconditionally and update to true later for constructors.
2018-04-03 18:21:55 +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
Daniel Kirchner
0d0c9b8688
DocStringParser: Fix error message for empty parameter description.
2018-03-14 10:14:35 +01:00
chriseth
388718b59f
Introduce emit statement.
2018-02-22 15:17:30 +01:00
chriseth
e2bf5de8a2
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:39 +01:00
Federico Bond
14fd647b85
Fix event parsing. Refs #3175
2017-11-22 23:08:12 -03:00
chriseth
639b85f498
Fix source location of VariableDeclarationStatement.
2017-09-27 19:27:36 +02:00
wadeAlexC
0099911ace
Better error message for unexpected trailing comma in parameter lists
2017-09-25 10:42:01 +01:00
Alex Beregszaszi
6948758156
Limit parser recursion depth further (needed by increased assembly data structure size)
2017-09-20 11:16:23 +02:00
chriseth
122e65f8f4
Crash fix, parseTypeName can return null.
2017-08-28 15:13:02 +02:00
Alex Beregszaszi
da56bde58f
Move the break in switch for readability
2017-08-25 16:02:05 +01:00
Alex Beregszaszi
f2317670fa
Remove two other fall-through cases in Parser
2017-08-25 14:24:07 +01:00
Alex Beregszaszi
ef8355da7f
Remove fallthrough from literal parsing
2017-08-25 14:22:59 +01:00
Alex Beregszaszi
5668377c72
Introduce pure specifier on functions
2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc
Merge pull request #2770 from ethereum/recursionInAsm
...
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
Alex Beregszaszi
efe4d68a7b
Introduce view (and keep constant as an alias)
2017-08-22 18:24:22 +01:00
chriseth
628b54ce35
Reduce max recursion depth.
2017-08-22 12:44:23 +02: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
Alex Beregszaszi
e2cfc9ee92
Mark a lot of functions const (where possible)
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
Federico Bond
a8c047f48d
Enforce commas in tuple syntax
2017-08-11 17:28:48 +01:00
Alex Beregszaszi
b210db8058
Make toString(visibility) a helper
2017-08-09 14:58:59 +01:00