Lines Matching refs:that
2 // Use of this source code is governed by a BSD-style license that can be
24 #define DECLARE_VISIT(Type) virtual void Visit##Type(Type##Node* that);
88 void DotPrinterImpl::PrintAttributes(RegExpNode* that) {
89 os_ << " a" << that << " [shape=Mrecord, color=grey, fontcolor=grey, "
92 NodeInfo* info = that->info();
96 Label* label = that->label();
99 << " a" << that << " -> n" << that
103 void DotPrinterImpl::VisitChoice(ChoiceNode* that) {
104 os_ << " n" << that << " [shape=Mrecord, label=\"?\"];\n";
105 for (int i = 0; i < that->alternatives()->length(); i++) {
106 GuardedAlternative alt = that->alternatives()->at(i);
107 os_ << " n" << that << " -> n" << alt.node();
109 for (int i = 0; i < that->alternatives()->length(); i++) {
110 GuardedAlternative alt = that->alternatives()->at(i);
115 void DotPrinterImpl::VisitLoopChoice(LoopChoiceNode* that) {
116 VisitChoice(that);
120 NegativeLookaroundChoiceNode* that) {
121 VisitChoice(that);
124 void DotPrinterImpl::VisitText(TextNode* that) {
125 Zone* zone = that->zone();
126 os_ << " n" << that << " [label=\"";
127 for (int i = 0; i < that->elements()->length(); i++) {
129 TextElement elm = that->elements()->at(i);
154 PrintAttributes(that);
155 os_ << " n" << that << " -> n" << that->on_success() << ";\n";
156 Visit(that->on_success());
159 void DotPrinterImpl::VisitBackReference(BackReferenceNode* that) {
160 os_ << " n" << that << " [label=\"$" << that->start_register() << "..$"
161 << that->end_register() << "\", shape=doubleoctagon];\n";
162 PrintAttributes(that);
163 os_ << " n" << that << " -> n" << that->on_success() << ";\n";
164 Visit(that->on_success());
167 void DotPrinterImpl::VisitEnd(EndNode* that) {
168 os_ << " n" << that << " [style=bold, shape=point];\n";
169 PrintAttributes(that);
172 void DotPrinterImpl::VisitAssertion(AssertionNode* that) {
173 os_ << " n" << that << " [";
174 switch (that->assertion_type()) {
192 PrintAttributes(that);
193 RegExpNode* successor = that->on_success();
194 os_ << " n" << that << " -> n" << successor << ";\n";
198 void DotPrinterImpl::VisitAction(ActionNode* that) {
199 os_ << " n" << that << " [";
200 switch (that->action_type_) {
202 os_ << "label=\"$" << that->data_.u_store_register.reg
203 << ":=" << that->data_.u_store_register.value << "\", shape=octagon";
206 os_ << "label=\"$" << that->data_.u_increment_register.reg
210 os_ << "label=\"$" << that->data_.u_position_register.reg
214 os_ << "label=\"$" << that->data_.u_submatch.current_position_register
218 os_ << "label=\"$" << that->data_.u_submatch.current_position_register
225 os_ << "label=\"$" << that->data_.u_empty_match_check.start_register
226 << "=$pos?,$" << that->data_.u_empty_match_check.repetition_register
227 << "<" << that->data_.u_empty_match_check.repetition_limit
231 os_ << "label=\"clear $" << that->data_.u_clear_captures.range_from
232 << " to $" << that->data_.u_clear_captures.range_to
238 PrintAttributes(that);
239 RegExpNode* successor = that->on_success();
240 os_ << " n" << that << " -> n" << successor << ";\n";