Lines Matching refs:Rule
348 RuleID Rule; member
358 return Rule > Other.Rule; in operator <()
365 using Sequence = llvm::SmallVector<const ForestNode *, Rule::MaxElements>;
423 bool canReduce(const Rule &R, RuleID RID, in canReduce()
436 void pop(const GSS::Node *Head, RuleID RID, const Rule &Rule) { in pop() argument
438 Family F{/*Start=*/0, /*Symbol=*/Rule.Target, /*Rule=*/RID}; in pop()
439 TempSequence.resize_for_overwrite(Rule.Size); in pop()
441 TempSequence[Rule.Size - 1 - I] = N->Payload; in pop()
442 if (I + 1 == Rule.Size) { in pop()
448 if (!canReduce(Rule, RID, TempSequence)) in pop()
473 const auto &Rule = Lang.G.lookupRule(RID); in popPending() local
474 if (Lang.Table.canFollow(Rule.Target, Lookahead)) in popPending()
475 pop((*Heads)[NextPopHead], RID, Rule); in popPending()
503 FamilySequences.emplace_back(Sequences.top().first.Rule, *Push.Seq); in pushNext()
568 const auto &Rule = Lang.G.lookupRule(*RID); in popAndPushTrivial() local
569 if (!Lang.Table.canFollow(Rule.Target, Lookahead)) in popAndPushTrivial()
572 TempSequence.resize_for_overwrite(Rule.Size); in popAndPushTrivial()
573 for (unsigned I = 0; I < Rule.Size; ++I) { in popAndPushTrivial()
576 TempSequence[Rule.Size - 1 - I] = Base->Payload; in popAndPushTrivial()
579 if (!canReduce(Rule, *RID, TempSequence)) in popAndPushTrivial()
582 &Params.Forest.createSequence(Rule.Target, *RID, TempSequence); in popAndPushTrivial()
583 auto NextState = Lang.Table.getGoToState(Base->State, Rule.Target); in popAndPushTrivial()