Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: src/regexp/regexp-parser.h

Issue 2780173002: [regexp] Add support for dotAll flag (Closed)
Patch Set: Address comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parsing/scanner.cc ('k') | src/regexp/regexp-parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_REGEXP_REGEXP_PARSER_H_ 5 #ifndef V8_REGEXP_REGEXP_PARSER_H_
6 #define V8_REGEXP_REGEXP_PARSER_H_ 6 #define V8_REGEXP_REGEXP_PARSER_H_
7 7
8 #include "src/objects.h" 8 #include "src/objects.h"
9 #include "src/regexp/regexp-ast.h" 9 #include "src/regexp/regexp-ast.h"
10 #include "src/zone/zone.h" 10 #include "src/zone/zone.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 void Reset(int pos); 192 void Reset(int pos);
193 193
194 // Reports whether the pattern might be used as a literal search string. 194 // Reports whether the pattern might be used as a literal search string.
195 // Only use if the result of the parse is a single atom node. 195 // Only use if the result of the parse is a single atom node.
196 bool simple(); 196 bool simple();
197 bool contains_anchor() { return contains_anchor_; } 197 bool contains_anchor() { return contains_anchor_; }
198 void set_contains_anchor() { contains_anchor_ = true; } 198 void set_contains_anchor() { contains_anchor_ = true; }
199 int captures_started() { return captures_started_; } 199 int captures_started() { return captures_started_; }
200 int position() { return next_pos_ - 1; } 200 int position() { return next_pos_ - 1; }
201 bool failed() { return failed_; } 201 bool failed() { return failed_; }
202 bool dotall() const { return dotall_; }
202 bool ignore_case() const { return ignore_case_; } 203 bool ignore_case() const { return ignore_case_; }
203 bool multiline() const { return multiline_; } 204 bool multiline() const { return multiline_; }
204 bool unicode() const { return unicode_; } 205 bool unicode() const { return unicode_; }
205 206
206 static bool IsSyntaxCharacterOrSlash(uc32 c); 207 static bool IsSyntaxCharacterOrSlash(uc32 c);
207 208
208 static const int kMaxCaptures = 1 << 16; 209 static const int kMaxCaptures = 1 << 16;
209 static const uc32 kEndMarker = (1 << 21); 210 static const uc32 kEndMarker = (1 << 21);
210 211
211 private: 212 private:
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 void ScanForCaptures(); 306 void ScanForCaptures();
306 307
307 Isolate* isolate_; 308 Isolate* isolate_;
308 Zone* zone_; 309 Zone* zone_;
309 Handle<String>* error_; 310 Handle<String>* error_;
310 ZoneList<RegExpCapture*>* captures_; 311 ZoneList<RegExpCapture*>* captures_;
311 ZoneList<RegExpCapture*>* named_captures_; 312 ZoneList<RegExpCapture*>* named_captures_;
312 ZoneList<RegExpBackReference*>* named_back_references_; 313 ZoneList<RegExpBackReference*>* named_back_references_;
313 FlatStringReader* in_; 314 FlatStringReader* in_;
314 uc32 current_; 315 uc32 current_;
316 bool dotall_;
315 bool ignore_case_; 317 bool ignore_case_;
316 bool multiline_; 318 bool multiline_;
317 bool unicode_; 319 bool unicode_;
318 int next_pos_; 320 int next_pos_;
319 int captures_started_; 321 int captures_started_;
320 // The capture count is only valid after we have scanned for captures. 322 // The capture count is only valid after we have scanned for captures.
321 int capture_count_; 323 int capture_count_;
322 bool has_more_; 324 bool has_more_;
323 bool simple_; 325 bool simple_;
324 bool contains_anchor_; 326 bool contains_anchor_;
325 bool is_scanned_for_captures_; 327 bool is_scanned_for_captures_;
326 bool failed_; 328 bool failed_;
327 }; 329 };
328 330
329 } // namespace internal 331 } // namespace internal
330 } // namespace v8 332 } // namespace v8
331 333
332 #endif // V8_REGEXP_REGEXP_PARSER_H_ 334 #endif // V8_REGEXP_REGEXP_PARSER_H_
OLDNEW
« no previous file with comments | « src/parsing/scanner.cc ('k') | src/regexp/regexp-parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698