clang-format

This commit is contained in:
Max Brunsfeld 2015-12-04 20:56:33 -08:00
parent 27bce56ef2
commit 08d50c25ae
9 changed files with 90 additions and 85 deletions

View file

@ -55,7 +55,8 @@ class LexTableBuilder {
parse_state.lex_state_id = add_lex_state(item_set);
}
LexItemSet error_item_set = build_lex_item_set(parse_table->all_symbols(), true);
LexItemSet error_item_set =
build_lex_item_set(parse_table->all_symbols(), true);
populate_lex_state(error_item_set, LexTable::ERROR_STATE_ID);
return lex_table;
@ -86,13 +87,15 @@ class LexTableBuilder {
for (const rule_ptr &rule : rules)
for (const rule_ptr &separator_rule : separator_rules)
result.entries.insert(LexItem(
symbol, rules::Metadata::build(
symbol,
rules::Metadata::build(
rules::Seq::build({
rules::Metadata::build(separator_rule, {{rules::START_TOKEN, 1}}),
rules::Metadata::build(rule, {{rules::PRECEDENCE, 0}}),
}), {
{rules::PRECEDENCE, INT_MIN},
{rules::IS_ACTIVE, true},
rules::Metadata::build(separator_rule,
{ { rules::START_TOKEN, 1 } }),
rules::Metadata::build(rule, { { rules::PRECEDENCE, 0 } }),
}),
{
{ rules::PRECEDENCE, INT_MIN }, { rules::IS_ACTIVE, true },
})));
}
@ -136,8 +139,9 @@ class LexTableBuilder {
LexItem::CompletionStatus completion_status = item.completion_status();
if (completion_status.is_done) {
auto current_action = lex_table.state(state_id).default_action;
auto action = LexAction::Accept(item.lhs, completion_status.precedence.max,
completion_status.is_string);
auto action =
LexAction::Accept(item.lhs, completion_status.precedence.max,
completion_status.is_string);
if (conflict_manager.resolve(action, current_action))
lex_table.state(state_id).default_action = action;
}

View file

@ -73,7 +73,8 @@ class LexItemTransitions : public rules::RuleFn<void> {
{ new_char_set, { new_item_set, new_precedence_range } });
}
map<rules::MetadataKey, int> activate_precedence(map<rules::MetadataKey, int> metadata) {
map<rules::MetadataKey, int> activate_precedence(
map<rules::MetadataKey, int> metadata) {
if (metadata.find(rules::PRECEDENCE) != metadata.end())
metadata.insert({ rules::IS_ACTIVE, 1 });
return metadata;
@ -126,7 +127,8 @@ class LexItemTransitions : public rules::RuleFn<void> {
void apply_to(const rules::Metadata *rule) {
LexItemSet::TransitionMap content_transitions;
auto precedence = rule->value_for(rules::PRECEDENCE);
bool has_active_precedence = precedence.second && rule->value_for(rules::IS_ACTIVE).second;
bool has_active_precedence =
precedence.second && rule->value_for(rules::IS_ACTIVE).second;
if (has_active_precedence)
precedence_stack->push_back(precedence.first);
@ -135,7 +137,8 @@ class LexItemTransitions : public rules::RuleFn<void> {
merge_transition(
transitions, pair.first,
transform_item_set(pair.second.first, [this, &rule](rule_ptr item_rule) {
return rules::Metadata::build(item_rule, activate_precedence(rule->value));
return rules::Metadata::build(item_rule,
activate_precedence(rule->value));
}), pair.second.second);
if (has_active_precedence)

View file

@ -40,15 +40,16 @@ rule_ptr Metadata::copy() const {
pair<int, bool> Metadata::value_for(MetadataKey key) const {
auto entry = value.find(key);
if (entry == value.end())
return {0, false};
return { 0, false };
else
return {entry->second, true};
return { entry->second, true };
}
std::string Metadata::to_string() const {
auto precedence = value_for(rules::PRECEDENCE);
if (precedence.second && value_for(rules::IS_ACTIVE).second)
return "(metadata prec:" + std::to_string(precedence.first) + " " + rule->to_string() + ")";
return "(metadata prec:" + std::to_string(precedence.first) + " " +
rule->to_string() + ")";
else
return "(metadata " + rule->to_string() + ")";
}