17026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//===----------------------------------------------------------------------===// 27026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// 37026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// The LLVM Compiler Infrastructure 47026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 77026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// 87026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//===----------------------------------------------------------------------===// 97026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 107026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// <regex> 117026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 127026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// template <class charT, class traits = regex_traits<charT>> class basic_regex; 137026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 147026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// template <class InputIterator> 157026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// basic_regex& 167026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// assign(InputIterator first, InputIterator last, 177026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant// flag_type f = regex_constants::ECMAScript); 187026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 197026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#include <regex> 207026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#include <cassert> 217026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 22ee226c05af9e0187098f43fb71465a581487af9bDan Austin#include "test_macros.h" 2383e2c4d877fe2d7793868b1c6a5d9525a7c4d431Marshall Clow#include "test_iterators.h" 247026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 257026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnantint main() 267026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant{ 277026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant typedef input_iterator<std::string::const_iterator> I; 287026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant typedef forward_iterator<std::string::const_iterator> F; 297026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant std::string s4("(a([bc]))"); 307026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant std::regex r2; 317026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 327026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant r2.assign(I(s4.begin()), I(s4.end())); 337026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.flags() == std::regex::ECMAScript); 347026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.mark_count() == 2); 357026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 367026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant r2.assign(I(s4.begin()), I(s4.end()), std::regex::extended); 377026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.flags() == std::regex::extended); 387026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.mark_count() == 2); 397026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 407026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant r2.assign(F(s4.begin()), F(s4.end())); 417026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.flags() == std::regex::ECMAScript); 427026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.mark_count() == 2); 437026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant 447026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant r2.assign(F(s4.begin()), F(s4.end()), std::regex::extended); 457026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.flags() == std::regex::extended); 467026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant assert(r2.mark_count() == 2); 477026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant} 48