Fix troubles with clang
This commit is contained in:
parent
27e95a427c
commit
5f723f1774
|
@ -131,15 +131,15 @@ Parser::Value Parser::reduce_opt_arguments(std::deque<Token> subparts) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser::Value Parser::reduce_arguments(std::deque<Token> subparts) {
|
Parser::Value Parser::reduce_arguments(std::deque<Token> subparts) {
|
||||||
std::unique_ptr<FunctionArguments> args;
|
FunctionArguments* args;
|
||||||
if (subparts.size() > 1) {
|
if (subparts.size() > 1) {
|
||||||
args = std::unique_ptr<FunctionArguments>(dynamic_cast<FunctionArguments*>(subparts[0].value.get()));
|
args = dynamic_cast<FunctionArguments*>(subparts[0].value.get());
|
||||||
subparts[0].value.release();
|
subparts[0].value.release();
|
||||||
} else {
|
} else {
|
||||||
args = std::make_unique<FunctionArguments>();
|
args = new FunctionArguments();
|
||||||
}
|
}
|
||||||
args->push_back(std::move(subparts[subparts.size() - 1].value));
|
args->push_back(std::move(subparts[subparts.size() - 1].value));
|
||||||
return args;
|
return std::unique_ptr<AST>(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser::Value Parser::reduce_functiondef(std::deque<Token> subparts) {
|
Parser::Value Parser::reduce_functiondef(std::deque<Token> subparts) {
|
||||||
|
@ -164,15 +164,15 @@ Parser::Value Parser::reduce_opt_idents(std::deque<Token> subparts) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser::Value Parser::reduce_idents(std::deque<Token> subparts) {
|
Parser::Value Parser::reduce_idents(std::deque<Token> subparts) {
|
||||||
std::unique_ptr<FormalParameters> args;
|
FormalParameters* args;
|
||||||
if (subparts.size() > 1) {
|
if (subparts.size() > 1) {
|
||||||
args = std::unique_ptr<FormalParameters>(dynamic_cast<FormalParameters*>(subparts[0].value.get()));
|
args = dynamic_cast<FormalParameters*>(subparts[0].value.get());
|
||||||
subparts[0].value.release();
|
subparts[0].value.release();
|
||||||
} else {
|
} else {
|
||||||
args = std::make_unique<FormalParameters>();
|
args = new FormalParameters();
|
||||||
}
|
}
|
||||||
args->push_back(std::move(subparts[subparts.size() - 1].value));
|
args->push_back(std::move(subparts[subparts.size() - 1].value));
|
||||||
return args;
|
return std::unique_ptr<AST>(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser::Value Parser::reduce_assign(std::deque<Token> subparts) {
|
Parser::Value Parser::reduce_assign(std::deque<Token> subparts) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ TEST(lr1, only) {
|
||||||
grammar.variables = {"s","a","b"};
|
grammar.variables = {"s","a","b"};
|
||||||
grammar.terminals = {"A", "B"};
|
grammar.terminals = {"A", "B"};
|
||||||
|
|
||||||
for (const std::pair<std::string, std::vector<std::string>>& p : std::initializer_list<std::pair<std::string, std::vector<std::string>>>({
|
for (const std::pair<std::string, std::vector<std::string>>& p : std::vector<std::pair<std::string, std::vector<std::string>>>({
|
||||||
{"s", {"B", "a", "A"}},
|
{"s", {"B", "a", "A"}},
|
||||||
{"s", {"b", "A"}},
|
{"s", {"b", "A"}},
|
||||||
{"s", {"a"}},
|
{"s", {"a"}},
|
||||||
|
|
Loading…
Reference in New Issue