From 87821c53c3a73d3e35a0e50a7c159d9aa5d6b253 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Wed, 14 Nov 2018 14:59:30 +0100 Subject: Isolating files shared between Yul- and Solidity language frontend. --- libsolidity/parsing/Parser.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index b17dad9a..f070620d 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -22,11 +22,11 @@ #include #include -#include +#include #include -#include +#include #include -#include +#include using namespace std; -- cgit v1.2.3 From d67322a1861d60a88151f7c25d6c3478a9a39acf Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Wed, 14 Nov 2018 17:11:55 +0100 Subject: 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 --- libsolidity/parsing/Parser.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index f070620d..de5293b4 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -29,6 +29,7 @@ #include using namespace std; +using namespace langutil; namespace dev { -- cgit v1.2.3 From 0f4ed52a719af90b52a15eb6709f46f03d4108b9 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Fri, 23 Nov 2018 11:18:57 +0100 Subject: Rewrite header paths to adapt to recent `git mv` of libsolidity/inlineasm to libyul --- libsolidity/parsing/Parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index de5293b4..1ec10a72 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include using namespace std; -- cgit v1.2.3 From 713d94476ec5ba61901b538c622c8cca6873c2af Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Fri, 23 Nov 2018 11:31:45 +0100 Subject: Reorder some include files and group 's together (as much as possible) --- libsolidity/parsing/Parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 1ec10a72..560d8e8b 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -22,11 +22,11 @@ #include #include -#include #include -#include #include +#include #include +#include using namespace std; using namespace langutil; -- cgit v1.2.3 From ec47c8946ba5f78563b7eca2512b3cee68db45b4 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Wed, 21 Nov 2018 12:42:34 +0100 Subject: Isolating libyul library API into its own namespace `yul`. --- libsolidity/parsing/Parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 560d8e8b..ffe2be83 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -1012,8 +1012,8 @@ ASTPointer Parser::parseInlineAssembly(ASTPointer con m_scanner->next(); } - assembly::Parser asmParser(m_errorReporter); - shared_ptr block = asmParser.parse(m_scanner, true); + yul::Parser asmParser(m_errorReporter); + shared_ptr block = asmParser.parse(m_scanner, true); nodeFactory.markEndPosition(); return nodeFactory.createNode(_docString, block); } -- cgit v1.2.3 From e454737a3cf389ee400a9ef1d9f252c579a2ceea Mon Sep 17 00:00:00 2001 From: Lazaridis Date: Thu, 22 Nov 2018 18:37:19 +0200 Subject: adapt to latest code changes --- libsolidity/parsing/Parser.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index ffe2be83..b78c58c6 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -1558,6 +1558,30 @@ ASTPointer Parser::parsePrimaryExpression() case Token::IllegalHex: fatalParserError("Expected even number of hex-nibbles within double-quotes."); break; + case Token::IllegalCommentTerminator: + fatalParserError("Expected multi-line comment-terminator."); + break; + case Token::IllegalStringEscape: + fatalParserError("Invalid String Escape."); + break; + case Token::IllegalStringEndQuote: + fatalParserError("Expected String end-quote."); + break; + case Token::IllegalNumberSeparator: + fatalParserError("Invalid use of Number Separator '_'."); + break; + case Token::IllegalHexDigit: + fatalParserError("Hex Digit missing or invalid."); + break; + case Token::IllegalOctalNotAllowed: + fatalParserError("Octal Numbers not allowed."); + break; + case Token::IllegalExponent: + fatalParserError("Invalid Exponent."); + break; + case Token::IllegalNumberEnd: + fatalParserError("Digit or Identifier-Start not allowed at end of Number."); + break; default: if (TokenTraits::isElementaryTypeName(token)) { -- cgit v1.2.3 From e4106bd06eebce9e17d51858a37bf82566b7f640 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Fri, 23 Nov 2018 16:47:34 +0100 Subject: Change scanner error diagnostics to be non-intrusive to the token API. This also implicitly eliminates the magic-token Token::IllegalHex, and streamlines error diagnostics over a custom enum class. --- libsolidity/parsing/Parser.cpp | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index b78c58c6..3f4a015b 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -1555,32 +1555,8 @@ ASTPointer Parser::parsePrimaryExpression() expression = nodeFactory.createNode(components, isArray); break; } - case Token::IllegalHex: - fatalParserError("Expected even number of hex-nibbles within double-quotes."); - break; - case Token::IllegalCommentTerminator: - fatalParserError("Expected multi-line comment-terminator."); - break; - case Token::IllegalStringEscape: - fatalParserError("Invalid String Escape."); - break; - case Token::IllegalStringEndQuote: - fatalParserError("Expected String end-quote."); - break; - case Token::IllegalNumberSeparator: - fatalParserError("Invalid use of Number Separator '_'."); - break; - case Token::IllegalHexDigit: - fatalParserError("Hex Digit missing or invalid."); - break; - case Token::IllegalOctalNotAllowed: - fatalParserError("Octal Numbers not allowed."); - break; - case Token::IllegalExponent: - fatalParserError("Invalid Exponent."); - break; - case Token::IllegalNumberEnd: - fatalParserError("Digit or Identifier-Start not allowed at end of Number."); + case Token::Illegal: + fatalParserError(to_string(m_scanner->currentError())); break; default: if (TokenTraits::isElementaryTypeName(token)) -- cgit v1.2.3 From c48a5264be4221873fe02cac57f6a41a32010fea Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Wed, 28 Nov 2018 16:19:22 +0100 Subject: liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream source, eliminating sourceName Also, adapted affecting code to those changes. --- libsolidity/parsing/Parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libsolidity/parsing/Parser.cpp') diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 3f4a015b..6cab7be3 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -42,7 +42,7 @@ class Parser::ASTNodeFactory { public: explicit ASTNodeFactory(Parser const& _parser): - m_parser(_parser), m_location(_parser.position(), -1, _parser.sourceName()) {} + m_parser(_parser), m_location(_parser.position(), -1, _parser.source()) {} ASTNodeFactory(Parser const& _parser, ASTPointer const& _childNode): m_parser(_parser), m_location(_childNode->location()) {} @@ -55,7 +55,7 @@ public: template ASTPointer createNode(Args&& ... _args) { - solAssert(m_location.sourceName, ""); + solAssert(m_location.source, ""); if (m_location.end < 0) markEndPosition(); return make_shared(m_location, std::forward(_args)...); -- cgit v1.2.3