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"));
 }
Exemple #4
0
 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"));
 }