public void BasicSubstitutionKeywordText() { Assert.AreEqual(@"${var}", ImpressionToRegex.ConvertNoOptions(@"${var}")); Assert.AreEqual(@"$&", ImpressionToRegex.ConvertNoOptions(@"match")); Assert.AreEqual(@"$`", ImpressionToRegex.ConvertNoOptions(@"before-match")); Assert.AreEqual(@"$'", ImpressionToRegex.ConvertNoOptions(@"after-match")); Assert.AreEqual(@"$_", ImpressionToRegex.ConvertNoOptions(@"input")); }
public void BasicGrouping() { Assert.AreEqual(@"(?i:a)", ImpressionToRegex.ConvertNoOptions(@"i: 'a'")); Assert.AreEqual(@"(?=a)", ImpressionToRegex.ConvertNoOptions(@"before: 'a'")); Assert.AreEqual(@"(?!a)", ImpressionToRegex.ConvertNoOptions(@"! before: 'a'")); Assert.AreEqual(@"(?<=a)", ImpressionToRegex.ConvertNoOptions(@"after: 'a'")); Assert.AreEqual(@"(?<!a)", ImpressionToRegex.ConvertNoOptions(@"!after: 'a'")); Assert.AreEqual(@"(?>a)", ImpressionToRegex.ConvertNoOptions(@"atomic: 'a'")); }
public void Additions1Tests() { Assert.AreEqual(@"\r?\n", ImpressionToRegex.ConvertNoOptions(@"nl")); Assert.AreEqual(@"\w+", ImpressionToRegex.ConvertNoOptions(@"word")); Assert.AreEqual(@"\d+", ImpressionToRegex.ConvertNoOptions(@"int")); Assert.AreEqual(@"\s+", ImpressionToRegex.ConvertNoOptions(@"space")); Assert.AreEqual(@"[^\r\n]", ImpressionToRegex.ConvertNoOptions(@"c")); Assert.AreEqual(@".", ImpressionToRegex.ConvertNoOptions(@"a")); Assert.AreEqual(@"((?<=\W)(?=\w)|^(?=\w))", ImpressionToRegex.ConvertNoOptions(@"wb")); Assert.AreEqual(@"((?<=\w)(?=\W)|(?=\w)$)", ImpressionToRegex.ConvertNoOptions(@"we")); }
static int Do(string input, bool full) { try { if (full) { Console.WriteLine(ImpressionToRegex.Convert(input)); } else { Console.WriteLine(ImpressionToRegex.ConvertNoOptions(input)); } return(0); } catch (Exception ex) { Console.WriteLine(ex.Message); return(1); } }
public void BasicQuantifiers() { Assert.AreEqual(@"(ab)*", ImpressionToRegex.ConvertNoOptions(@"'ab' x 0..")); Assert.AreEqual(@"(ab)+", ImpressionToRegex.ConvertNoOptions(@"'ab' x 1..")); Assert.AreEqual(@"(ab)?", ImpressionToRegex.ConvertNoOptions(@"'ab' x 0..1")); Assert.AreEqual(@"(ab){3}", ImpressionToRegex.ConvertNoOptions(@"'ab' x 3")); Assert.AreEqual(@"(ab){3,}", ImpressionToRegex.ConvertNoOptions(@"'ab' x 3..")); Assert.AreEqual(@"(ab){3,5}", ImpressionToRegex.ConvertNoOptions(@"'ab' x 3..5")); Assert.AreEqual(@"(ab){0,5}", ImpressionToRegex.ConvertNoOptions(@"'ab' x ..5")); Assert.AreEqual(@"(ab)*?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 0..")); Assert.AreEqual(@"(ab)+?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 1..")); Assert.AreEqual(@"(ab)??", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 0..1")); Assert.AreEqual(@"(ab){3}?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 3")); Assert.AreEqual(@"(ab){3,}?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 3..")); Assert.AreEqual(@"(ab){3,5}?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x 3..5")); Assert.AreEqual(@"(ab){0,5}?", ImpressionToRegex.ConvertNoOptions(@"'ab' .x ..5")); }
public void Additions2Tests() { Assert.AreEqual(@"(a)*", ImpressionToRegex.ConvertNoOptions(@"'a' :any")); Assert.AreEqual(@"(a)*", ImpressionToRegex.ConvertNoOptions(@"'a'*")); Assert.AreEqual(@"([1-2])*?", ImpressionToRegex.ConvertNoOptions(@"(1..2) :any-lazy")); Assert.AreEqual(@"([1-2])*?", ImpressionToRegex.ConvertNoOptions(@"(1..2).*")); Assert.AreEqual(@"(a)+", ImpressionToRegex.ConvertNoOptions(@"'a' :all")); Assert.AreEqual(@"(a)+", ImpressionToRegex.ConvertNoOptions(@"'a'+")); Assert.AreEqual(@"(a)+?", ImpressionToRegex.ConvertNoOptions(@"'a' :all-lazy")); Assert.AreEqual(@"(a)+?", ImpressionToRegex.ConvertNoOptions(@"'a'.+")); Assert.AreEqual(@"(a)?", ImpressionToRegex.ConvertNoOptions(@"'a' :maybe")); Assert.AreEqual(@"(a)?", ImpressionToRegex.ConvertNoOptions(@"'a'?")); Assert.AreEqual(@"(a)??", ImpressionToRegex.ConvertNoOptions(@"'a' :maybe-lazy")); Assert.AreEqual(@"(a)??", ImpressionToRegex.ConvertNoOptions(@"'a'.?")); }
public void AdvancedSet() { Assert.AreEqual(@"[a-zA-Z123]", ImpressionToRegex.ConvertNoOptions(@"a..z u A..Z u [123]")); Assert.AreEqual(@"[a-zA-Z123]", ImpressionToRegex.ConvertNoOptions(@"a..zuA..Zu[123]")); }
public void BasicSubtractionSet() { Assert.AreEqual(@"[a-z-[p]]", ImpressionToRegex.ConvertNoOptions(@"a..z - [p]")); }
public void BasicCombinationSet() { Assert.AreEqual(@"[az]", ImpressionToRegex.ConvertNoOptions(@"[a] u [z]")); }
public void BasicRangeSet() { Assert.AreEqual(@"[a-z]", ImpressionToRegex.ConvertNoOptions(@"a..z")); }
public void BasicNegativeSets() { Assert.AreEqual(@"[^ab*]", ImpressionToRegex.ConvertNoOptions(@"![ab*]")); }
public void EnclosedAlternationTest() { Assert.AreEqual(@"th(e|is|at)", ImpressionToRegex.ConvertNoOptions(@"'th'('e'|'is'|'at')")); }
public void BasicNotType() { Assert.AreEqual(@"\P{Lu}", ImpressionToRegex.ConvertNoOptions(@"!type: Lu")); }
public void NotShortsTests() { Assert.AreEqual(@"\W\S\D\B", ImpressionToRegex.ConvertNoOptions(@"!w ! ws ! d !,")); }
public void AdvancedLiteralsAndComments() { Assert.AreEqual(@"abc /\u002A /\u002A \u002A/\u0007", ImpressionToRegex.ConvertNoOptions(@"'abc' ' /*' /* comment */ ' /* */' '\u0007'")); }
public void EscapedLiteral() { Assert.AreEqual(@"ab\u0027c\u005C", ImpressionToRegex.ConvertNoOptions(@"'ab\'c\\'")); }
public void ConditionTest2() { Assert.AreEqual(@"(?(var)ab|bc)", ImpressionToRegex.ConvertNoOptions(@"if $var 'ab' else 'bc'")); }
public void ConditionTest1() { Assert.AreEqual(@"(?(a)ab|bc)", ImpressionToRegex.ConvertNoOptions(@"if ('a') 'ab' else 'bc'")); }
public void AdvancedSubtraction() { Assert.AreEqual(@"[a-z0-9-[p23]]", ImpressionToRegex.ConvertNoOptions(@"a..z u 0..9 - [p] u [23]")); }
public void BasicLiteralsAndComments() { Assert.AreEqual(@"abc ", ImpressionToRegex.ConvertNoOptions(@"'abc' /* comment */ ' ' ")); }
public void BasicParenExpr() { Assert.AreEqual(@"[a-z]", ImpressionToRegex.ConvertNoOptions(@"(a..z)")); }
public void ShortsTests() { Assert.AreEqual(@"\w\s\d\b", ImpressionToRegex.ConvertNoOptions(@"w ws d ,")); }
public void BasicParenReNaming() { Assert.AreEqual(@"(?<var1-var2>[a-z])", ImpressionToRegex.ConvertNoOptions(@"(a..z) as var1:var2")); }
public void AnchorsTests() { Assert.AreEqual(@"^$\A(?=\s*\z)\z\G", ImpressionToRegex.ConvertNoOptions(@"<><<>>_>>last-match-end")); }
public void BasicNamedBackreference() { Assert.AreEqual(@"(?<a>.)\k<a>", ImpressionToRegex.ConvertNoOptions(@"a as a $a")); }
public void SeparationBySemicolon() { Assert.AreEqual(@"ab", ImpressionToRegex.ConvertNoOptions(@"'a';'b'")); }
public void BasicNaming() { Assert.AreEqual(@"(?<var>[a-z])", ImpressionToRegex.ConvertNoOptions(@"a..z as var")); }