Lines Matching refs:RegexNode
12 RegexNode RegexParser::parse(std::string source) {
37 RegexNode RegexParser::pop() {
38 RegexNode result = fStack.top();
55 case '*': fStack.push(RegexNode(RegexNode::kStar_Kind, this->pop())); ++fIndex; break;
56 case '+': fStack.push(RegexNode(RegexNode::kPlus_Kind, this->pop())); ++fIndex; break;
57 case '?': fStack.push(RegexNode(RegexNode::kQuestion_Kind, this->pop())); ++fIndex; break;
71 RegexNode right = this->pop();
72 RegexNode left = this->pop();
73 fStack.emplace(RegexNode::kConcat_Kind, std::move(left), std::move(right));
79 RegexNode RegexParser::escapeSequence(char c) {
81 case 'n': return RegexNode(RegexNode::kChar_Kind, '\n');
82 case 'r': return RegexNode(RegexNode::kChar_Kind, '\r');
83 case 't': return RegexNode(RegexNode::kChar_Kind, '\t');
84 case 's': return RegexNode(RegexNode::kCharset_Kind, " \t\n\r");
85 default: return RegexNode(RegexNode::kChar_Kind, c);
97 fStack.push(RegexNode(RegexNode::kChar_Kind, c));
104 fStack.push(RegexNode(RegexNode::kDot_Kind));
118 fStack.push(RegexNode(RegexNode::kChar_Kind, '-'));
122 RegexNode end = this->pop();
123 SkASSERT(end.fKind == RegexNode::kChar_Kind);
124 RegexNode start = this->pop();
125 SkASSERT(start.fKind == RegexNode::kChar_Kind);
126 fStack.push(RegexNode(RegexNode::kRange_Kind, std::move(start), std::move(end)));
134 RegexNode set(RegexNode::kCharset_Kind);
167 RegexNode right = this->pop();
168 RegexNode left = this->pop();
169 fStack.push(RegexNode(RegexNode::kOr_Kind, left, right));