aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing
Commit message (Collapse)AuthorAgeFilesLines
* liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream ↵Christian Parpart2018-12-011-2/+2
| | | | | | source, eliminating sourceName Also, adapted affecting code to those changes.
* Change scanner error diagnostics to be non-intrusive to the token API.Christian Parpart2018-11-241-26/+2
| | | | | This also implicitly eliminates the magic-token Token::IllegalHex, and streamlines error diagnostics over a custom enum class.
* adapt to latest code changesLazaridis2018-11-241-0/+24
|
* Isolating libyul library API into its own namespace `yul`.Christian Parpart2018-11-231-2/+2
|
* Reorder some include files and group <libyul/>'s together (as much as possible)Christian Parpart2018-11-231-2/+2
|
* Rewrite header paths to adapt to recent `git mv` of libsolidity/inlineasm to ↵Christian Parpart2018-11-231-1/+1
| | | | libyul
* Introduce namespace `langutil` in liblangutil directory.Christian Parpart2018-11-225-10/+54
| | | | | | | 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
* Isolating files shared between Yul- and Solidity language frontend.Christian Parpart2018-11-2210-2014/+6
|
* Add Scanner function that prints source based on SourceLocationLeonardo Alt2018-11-131-0/+7
|
* Remove trailing whitespace.chriseth2018-11-121-1/+1
|
* Refactor `solidity::Token` into an `enum class` with `TokenTraits` helper ↵Christian Parpart2018-10-227-210/+203
| | | | namespace
* Merge pull request #5180 from ethereum/cpp-cleanupchriseth2018-10-101-2/+2
|\ | | | | Some C++ cleanup
| * Do not require ctype/stdio if not neededAlex Beregszaszi2018-10-101-1/+1
| |
| * Use empty() instead of size() == 0Alex Beregszaszi2018-10-091-1/+1
| |
* | provide general hex-literal error message, fixes #1802Lazaridis2018-10-093-3/+8
|/ | | | dummy
* Fix typos.chriseth2018-10-041-1/+1
|
* Disallow uppercase X in hex number literalshydai2018-09-191-2/+2
|
* Accept ``address payable`` during parsing.Daniel Kirchner2018-09-112-5/+32
|
* This fixes several bugs with regards to line breaks and comments:chriseth2018-09-062-28/+58
| | | | | | | | | | | - 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 '/'
* Refactor handling of whitespace.chriseth2018-09-061-5/+0
|
* More consistently use parse*() functions without argument in the parser.Daniel Kirchner2018-09-062-46/+64
|
* Merge pull request #4866 from bakaoh/issue4743chriseth2018-09-051-4/+5
|\ | | | | Fix#4743: Incorrect source location for nameless parameters
| * Fix#4743: Incorrect source location for nameless parametersbakaoh2018-08-281-4/+5
| |
* | Remove trailing whitespace for all files in the repository.Daniel Kirchner2018-09-041-2/+2
| |
* | Rename Location::Default to Location::Unspecified.Chase McDermott2018-08-181-2/+2
|/
* Cleanup & polish numbers-with-underscores parsing, also improving tests.Christian Parpart2018-08-081-29/+31
|
* Add stricter hex underscore rulesBalajiganapathi S2018-08-081-16/+19
|
* Allow underscores in numbers.Balajiganapathi S2018-08-081-2/+26
|
* Disallows old constructor syntax.Erik Kundt2018-07-183-22/+17
|
* Code, Changelog, ReleaseChecklist: Fix typos.Cryptomental2018-07-111-1/+1
| | | | Refs: #4442
* Remove constant keyword from parser.Daniel Kirchner2018-07-031-2/+9
|
* Add new reserved keywords.Daniel Kirchner2018-06-121-1/+20
|
* Introduces emit token and removes identifier workaround.Erik Kundt2018-06-122-3/+7
|
* Disallow trailing dots that are not followed by a numberLeonardo Alt2018-05-301-1/+7
|
* Allow using `calldata` keyword to specify data locationmingchuan2018-05-302-7/+19
|
* Add assert about source location.chriseth2018-05-161-0/+1
|
* Parse multi variable declaration statement.chriseth2018-05-161-8/+75
|
* Merge pull request #4047 from ethereum/refactorToMultiAlex Beregszaszi2018-05-092-38/+74
|\ | | | | Refactor to allow implementing multi variable declarations.
| * Assert integrity of empty IndexAccessPath structure.chriseth2018-05-092-1/+11
| |
| * Further refactor.chriseth2018-05-092-17/+43
| |
| * Refactor expression parser.chriseth2018-05-092-21/+21
| |
* | Use the entire token as source location for parser errors.Daniel Kirchner2018-05-091-2/+2
|/
* Have more uniform parser errorsAlex Beregszaszi2018-05-041-1/+1
|
* More user friendly output in case of Identifier and Token keywordsAlex Beregszaszi2018-05-041-16/+17
|
* Remove code duplication in expectTokenAlex Beregszaszi2018-05-041-23/+11
|
* Introduce Token::friendlyName() helperAlex Beregszaszi2018-05-042-5/+16
|
* Display nicer error messages in the parser (display tokens and not internal ↵Alex Beregszaszi2018-05-041-11/+11
| | | | names)
* Simplify expectIdentifierToken by using expectTokenAlex Beregszaszi2018-05-044-23/+6
|
* Remove useless helper expectAssignmentOperator in parserAlex Beregszaszi2018-05-042-15/+2
|
* Refactor parser.chriseth2018-04-262-66/+73
|
* docstring: add missing spaceLeo Arias2018-04-241-1/+1
|
* Fix internal compiler error when parsing ``var`` declaration without identifier.Daniel Kirchner2018-04-121-2/+4
|
* Properly cope with constructor headers.chriseth2018-04-121-3/+6
|
* Warn if modifiers are applied to functions without implementation.chriseth2018-04-121-4/+4
|
* Fix state variable parsing.chriseth2018-04-121-0/+8
|
* Error when using no parentheses in modifier-style constructor calls.Daniel Kirchner2018-04-101-3/+3
|
* Allow ``memory`` suffix for internal elementary type parsing.chriseth2018-04-051-1/+1
|
* Error when using empty parenthesis for base class constructors that require ↵Daniel Kirchner2018-04-051-3/+3
| | | | arguments.
* Set isConstructor to false unconditionally and update to true later for ↵Daniel Kirchner2018-04-041-6/+4
| | | | constructors.
* Set header.isConstructor for old style constructors in parseFunctionHeader ↵Daniel Kirchner2018-04-042-6/+16
| | | | as well.
* Constructors are defined using the ``constructor`` keyword.Daniel Kirchner2018-04-042-6/+21
|
* DocStringParser: Fix error message for empty parameter description.Daniel Kirchner2018-03-141-7/+3
|
* Introduce emit statement.chriseth2018-02-222-1/+36
|
* Expect end of string at end of top-level block for assembly parser.chriseth2018-02-211-1/+1
|
* Fix event parsing. Refs #3175Federico Bond2017-11-231-9/+5
|
* Fix source location of VariableDeclarationStatement.chriseth2017-09-281-0/+1
|
* Better error message for unexpected trailing comma in parameter listswadeAlexC2017-09-251-0/+2
|
* Limit parser recursion depth further (needed by increased assembly data ↵Alex Beregszaszi2017-09-201-1/+1
| | | | structure size)
* Crash fix, parseTypeName can return null.chriseth2017-08-281-1/+4
|
* Move the break in switch for readabilityAlex Beregszaszi2017-08-251-3/+3
|
* Remove two other fall-through cases in ParserAlex Beregszaszi2017-08-252-3/+5
|
* Remove fallthrough from literal parsingAlex Beregszaszi2017-08-251-6/+9
|
* Introduce pure specifier on functionsAlex Beregszaszi2017-08-242-2/+4
|
* Merge pull request #2770 from ethereum/recursionInAsmchriseth2017-08-244-39/+33
|\ | | | | Also prevent too much recursion in the assembly parser.
| * Reduce max recursion depth.chriseth2017-08-221-1/+1
| |
| * Check recursion depth in assembly parser.chriseth2017-08-224-39/+33
| |
* | Introduce view (and keep constant as an alias)Alex Beregszaszi2017-08-232-3/+4
|/
* Mark appropriate constructors explicitAlex Beregszaszi2017-08-223-4/+4
|
* Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-221-5/+5
|
* Prevent too deep recursion in parser.chriseth2017-08-152-0/+82
|
* Replace constant/payable with StateMutability in ASTAlex Beregszaszi2017-08-143-26/+34
|
* Enforce commas in tuple syntaxFederico Bond2017-08-121-2/+3
|
* Make toString(visibility) a helperAlex Beregszaszi2017-08-091-20/+2
|
* Show previous visibility specifier in parser errorAlex Beregszaszi2017-08-092-2/+29
|
* Add test for multiple visibilites on functionsAlex Beregszaszi2017-08-091-1/+1
|
* Rename Token::Const to Token::ConstantAlex Beregszaszi2017-08-092-3/+3
|
* Cleanup fixed point type changeschriseth2017-07-201-1/+1
|
* Change fixed point types to have digit countVoR02202017-07-201-7/+3
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Update parser error for pragma/import/contractAlex Beregszaszi2017-07-191-1/+1
|
* Move UndefMacros from libdevcore to libsolidity/parsingAlex Beregszaszi2017-07-022-1/+47
|
* Avoid including Scanner.h in ParserBase.hAlex Beregszaszi2017-06-232-5/+24
|
* Merge interface/Exceptions and interface/UtilsAlex Beregszaszi2017-06-223-3/+2
|
* Merge pull request #2409 from federicobond/trailing-commas-2chriseth2017-06-191-3/+9
|\ | | | | Improve error reporting of trailing commas
| * Improve error reporting of trailing commasFederico Bond2017-06-161-3/+9
| |
* | Display error if payable or constant is specified multiple timesFederico Bond2017-06-171-0/+6
| |
* | Try to recover from parser errors where possibleFederico Bond2017-06-161-13/+22
|/
* Forbid trailing commas in named argumentsFederico Bond2017-06-141-4/+9
|
* Refactor error reportingRhett Aultman2017-05-306-23/+18
| | | | | | | | | 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
* Pull out common code to a helperAlex Beregszaszi2017-05-272-24/+15
|
* Remove duplicate codeAlex Beregszaszi2017-05-271-20/+18
|
* Add scanner helpers to ParserBaseAlex Beregszaszi2017-05-271-1/+5
|
* Move Solidity specific methods from ParserBase to the Solidity ParserAlex Beregszaszi2017-05-274-60/+60
|
* Rename InterfaceHandler to NatspecAlex Beregszaszi2017-05-191-1/+0
|
* Factor out tokenToContractKindAlex Beregszaszi2017-03-182-15/+18
|
* Support interface (contract) keyword in the parserAlex Beregszaszi2017-03-183-6/+22
|
* Add ContractKind to ContractDefinitionAlex Beregszaszi2017-03-181-1/+1
|
* Disallow octal literals.chriseth2017-03-071-0/+3
|
* Minor changes.chriseth2017-01-271-19/+17
|
* More verbose function namingLefteris Karapetsas2017-01-271-2/+2
|
* Doc tags followed by newline are now parsed properlyLefteris Karapetsas2017-01-271-1/+1
|
* Fix and better output for testsLefteris Karapetsas2017-01-251-0/+6
|
* Accept any kind of whitespace after natspec tagsLefteris Karapetsas2017-01-251-13/+47
|
* Rename contractName to typeName when parsing new expressionFederico Bond2017-01-051-3/+3
|
* parsing: `default` and `null` are reserved keywordsYoichi Hirai2016-12-021-2/+2
|
* Metadata stamp.chriseth2016-12-011-0/+4
|
* parser: recognize an end of comment of the form `**/` at the end of a ↵Yoichi Hirai2016-12-011-1/+6
| | | | | | multi-line doc comment This fixes #1433
* Fix licensing headersVoR02202016-11-239-36/+36
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Fix parser for function type disambiguity.chriseth2016-11-161-1/+12
|
* Function type state variables.chriseth2016-11-162-31/+68
|
* Function types.chriseth2016-11-162-33/+64
|
* parsing: ban empty enum definition.Yoichi Hirai2016-11-121-0/+2
|
* Add support for do/while loopsRhett Aultman2016-11-102-1/+19
| | | | | | | 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.
* Merge pull request #1016 from ethereum/reservedchriseth2016-09-062-1/+12
|\ | | | | Report the usage of reserved keywords more nicely
| * Raise proper error on reserved keywordsAlex Beregszaszi2016-09-061-1/+11
| |
| * Introduce isReservedKeyword()Alex Beregszaszi2016-09-061-0/+1
| |
* | Reserve view and pure as keywordsAlex Beregszaszi2016-09-061-0/+2
|/
* Merged in changes from chriseth/payableAlex Beregszaszi2016-09-061-6/+6
|
* Support payable keyword for functionsAlex Beregszaszi2016-09-062-1/+8
|
* Require ";" after "_"chriseth2016-09-051-1/+1
|
* Version pragma.chriseth2016-09-013-0/+35
|
* Introduce hex literals (#832)Alex Beregszaszi2016-08-163-0/+37
| | | | | | | | | | * Introduce hex keyword token * Support hex literals * Include tests for hex literals * Document hex literals
* Reserved keywords update (#833)Alex Beregszaszi2016-08-161-2/+6
| | | | | | | | * Reserve abstract, interface and payable keywords * Keywords as and using aren't reserved anymore - they're used * Reserve the static keyword
* Revert "Change After to a deprecated token"Denton Liu2016-08-111-5/+1
| | | | This reverts commit 91c97f73b50fc87662b5490b2fe6de1c6ef376c7.
* Change After to a deprecated tokenDenton Liu2016-08-111-1/+5
|
* Remove after from Token.hDenton Liu2016-08-111-2/+2
|
* Rename addUnicodeChar to addUnicodeAsUTF8Alex Beregszaszi2016-08-052-3/+3
|
* Support Unicode escape characters in string literals ('\uUUUU')Alex Beregszaszi2016-08-052-0/+45
| | | | Fixes #638
* Fix isCompareOp()Denton Liu2016-07-211-1/+1
|
* Move `in` as a keyword to reserved word sectionDenton Liu2016-07-211-1/+1
|
* Fix Token::isBitOp to exclude shift operatorsAlex Beregszaszi2016-06-081-1/+1
|
* updated algorithm for bit finding...now to figure out literal valueVoR02202016-05-101-1/+1
| | | | | | | | | | | | 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
* got exponents up and working with their inverse, changed a few of the ↵RJ Catalano2016-05-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* fixed problem with var...probably a conversion problem for fixed in size ↵RJ Catalano2016-05-101-2/+2
| | | | | | | | capabilities adding fixed type tests Removing bitshift and regrouping fixed type tests together
* fix for token bug, also quick fix for the wei and secondsRJ Catalano2016-05-101-1/+1
|
* initial work for fixed types...potentially needing a constant literal type ↵RJ Catalano2016-05-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove log.h from solidity.chriseth2016-04-123-3/+0
|
* readding conditionals but with slight changesVoR02202016-04-011-3/+2
|
* solAsserts added and some changes rolled back.VoR02202016-03-312-2/+3
|
* helper function in scanner and corresponding edits to parserBaseVoR02202016-03-313-12/+13
|
* Got it working exactly like you wanted ;)VoR02202016-03-312-25/+76
|
* change lexical cast to unsigned intVoR02202016-03-311-1/+1
|
* Fix for Token::name and token::toStringVoR02202016-03-311-4/+3
|
* Code generation (missing external access and source locations).chriseth2016-03-301-8/+9
|
* Parsing for inline assembly.chriseth2016-03-302-0/+21
|
* Remove timestamp again and some fixes for ufixed parsing.chriseth2016-03-122-15/+18
|
* added keyword type and some tests, changes in lexical castRJ Catalano2016-03-122-11/+12
|
* stylistic change, and got lexical cast to work with an iterator rangeRJ Catalano2016-03-122-5/+6
|
* - inline and assembly keywords addedLianaHus2016-03-123-8/+10
| | | | - some style fixes
* changed documentation and using lexical castRJ Catalano2016-03-122-11/+3
|
* changed extractUnsigned to handle iterators rather than a stringRJ Catalano2016-03-122-5/+5
|
* changed 1 to 0 in invalid argument catch blockRJ Catalano2016-03-122-2/+2
|
* needed this one string of notationRJ Catalano2016-03-121-0/+1
|
* added from identifier or keyword handling of fixed typesRJ Catalano2016-03-122-6/+37
|
* fixed keyword added in for token typeRJ Catalano2016-03-121-2/+4
|
* Buildfix.chriseth2016-02-231-3/+1
|
* Move reusable parser components into base class.chriseth2016-02-234-100/+183
|
* further optimization, splitting function into piecesRJ Catalano2016-02-192-14/+18
| | | | generating strings on the fly, changed name, and added two tests
* added const correctness to extract functions in TokenRJ Catalano2016-02-193-107/+44
| | | | | | | | | | optimizations added in more elegant solution created for m declaration ubuntu wants to get rid of 0 <= first statement...so I will change returnToken to token
* added two functions in Token to handle long identifiers, redid ↵RJ Catalano2016-02-195-55/+138
| | | | fromIdentifierOrKeyword, and made complementary changes in scanner and parser
* tests added and changes madeRJ Catalano2016-02-194-67/+79
| | | | | | fixed some silly problems in Token.cpp windows error fix
* changes to redefine the token list, the scanner, and the parser and how they ↵RJ Catalano2016-02-195-125/+114
| | | | | | | | pass around variable types of different sizes not ready for change to FixedPoint just yet made this more const correct and added a switch statement for easier reading
* Fix uint178 problem.chriseth2016-01-261-2/+2
|
* [cond-expr] fixup according to code reviewLu Guanqun2016-01-231-1/+1
|
* [cond-expr] parse _ ? _ : _ into conditional AST nodeLu Guanqun2016-01-231-6/+19
|
* Remove unnecesary std::movePaweł Bylica2016-01-151-1/+1
|
* Use paths instead of simple identifiers wherever possible.chriseth2015-12-222-15/+18
|
* Merge pull request #311 from guanqun/correct-boolean-literal-positionchriseth2015-12-191-0/+1
|\ | | | | correct true/false literal's source
| * correct true/false literal's sourceLu Guanqun2015-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: Literal, token: true value: true Type: bool Source: "true;" After: Literal, token: true value: true Type: bool Source: "true" Extra token is removed.
* | Simple aliasing during import.chriseth2015-12-181-1/+1
| |
* | Parse complex import directives.chriseth2015-12-181-19/+68
| |
* | changed error messageRJ Catalano2015-12-171-1/+1
| |
* | updated tests and much simpler algorithm for parsing errorsRJ Catalano2015-12-171-7/+6
| |
* | added one more test and realized that there was one last change before the ↵RJ Catalano2015-12-171-1/+1
| | | | | | | | parser is perfect
* | Parsing is completeRJ Catalano2015-12-171-3/+3
| |
* | changed a couple of small nuances, made an attempt at fixing the parsing in ↵RJ Catalano2015-12-171-3/+6
| | | | | | | | the inline arrays case (fails), and added test for inline arrays per Chriseth request
* | now is compiling and passing soltest...but I think there may be a few more ↵RJ Catalano2015-12-161-4/+6
| | | | | | | | things to do
* | fixed case statementsRJ Catalano2015-12-161-1/+2
| |
* | updated attempt...still a bit more work to do but here's what's currentRJ Catalano2015-12-161-0/+1
|\ \
| * | Inline array declarations completeRJ Catalano2015-12-151-0/+22
| |/
* / updated attempt, a couple of more things to sort through and changeRJ Catalano2015-12-161-4/+6
|/
* Added the `using x for y` directive.chriseth2015-11-272-0/+21
|
* Do not store elements of a contract by AST node type.chriseth2015-11-261-18/+8
|
* Fix MSVC errors and warnings.chriseth2015-11-261-1/+1
|
* Allow "new expressions" also for general type names.chriseth2015-11-261-1/+1
| | | | | | | Breaking change: If you want to send value with a contract creation, you have to use parentheses now: `(new ContractName).value(2 ether)(arg1, arg2)`
* Allow docstrings for statements.chriseth2015-10-272-35/+45
|
* Store docstrings in AST annotations.chriseth2015-10-262-0/+211
|
* more correctionsLianaHus2015-10-231-4/+14
|
* modified error msgLianaHus2015-10-231-1/+7
|
* File reorganisation.chriseth2015-10-216-0/+2900