Lines Matching refs:Item
45 base::Optional<ParseResult> Rule::RunAction(const Item* completed_item,
48 for (const Item* child : completed_item->Children()) {
71 std::vector<const Item*> Item::Children() const {
72 std::vector<const Item*> children;
73 for (const Item* current = this; current->prev_; current = current->prev_) {
82 std::string Item::SplitByChildren(const LexerResult& tokens) const {
84 if (const Item* child = Children()[0])
89 for (const Item* item : Children()) {
98 void Item::CheckAmbiguity(const Item& other, const LexerResult& tokens) const {
187 const Item* RunEarleyAlgorithm(
189 std::unordered_set<Item, base::hash<Item>>* processed) {
191 std::vector<Item> worklist;
193 std::vector<Item> future_items;
197 std::vector<const Item*> completed_items;
198 std::unordered_map<std::pair<size_t, Symbol*>, std::set<const Item*>,
202 std::vector<const Item*> debug_trace;
209 worklist.push_back(Item{top_level.rule(0), 0, 0, 0});
216 const Item& item = *insert_result.first;
229 for (const Item* parent : waiting[{item.start(), item.left()}]) {
248 processed->find(Item{rule, rule->right().size(), pos, pos});
260 worklist.push_back(Item{rule, 0, pos, pos});
269 processed->find(Item{top_level.rule(0), 1, 0, input_length});
275 const Item& last_item = *debug_trace.back();