if (typeof parseRegExp === 'undefined')
    quit();

load(libdir + "regexp_parse.js");

test_mix("(?=abc)", all_flags,
         Lookahead(Atom("abc")));

test_mix("(?!abc)", all_flags,
         NegativeLookahead(Atom("abc")));

test_mix("(?=abc)+", no_unicode_flags,
         Lookahead(Atom("abc")));

// Lookahead becomes Empty because max_match of Lookahead is 0 and the min vaue
// of Quantifier is also 0.
test("(?=abc)*", no_unicode_flags,
     Empty());
test("X(?=abc)*Y", no_unicode_flags,
     Alternative([
         Atom("X"),
         Atom("Y"),
     ]));

test("(?=abc)?", no_unicode_flags,
     Empty());
test("X(?=abc)?Y", no_unicode_flags,
     Alternative([
         Atom("X"),
         Atom("Y"),
     ]));