Avoid initializing production vectors via initializer lists

This commit is contained in:
Max Brunsfeld 2017-07-27 16:57:56 -07:00
parent eb6becca89
commit bf31c19d03
2 changed files with 14 additions and 2 deletions

View file

@ -73,7 +73,16 @@ class ParseTableBuilder {
Symbol start_symbol = grammar.variables.empty() ?
Symbol::terminal(0) :
Symbol::non_terminal(0);
Production start_production{{{start_symbol, 0, rules::AssociativityNone, {"", false}}}, 0};
Production start_production{
vector<ProductionStep>(1, ProductionStep{
start_symbol,
0,
rules::AssociativityNone,
rules::Alias{}
}),
0
};
add_parse_state({}, ParseItemSet{{
{
ParseItem(rules::START(), start_production, 0),

View file

@ -208,7 +208,10 @@ const vector<Production> &ParseItemSetBuilder::inline_production(const ParseItem
auto end = item.production->steps.end();
auto step = begin + item.step_index;
Production production{{begin, step}, item.production->dynamic_precedence};
Production production{
vector<ProductionStep>(begin, step),
item.production->dynamic_precedence
};
for (auto &step : *production_to_insert) {
production.steps.push_back(step);
if (!inlined_step.alias.value.empty()) {