public void FormatSpecWithSpaceFlagsIsExtracted()
 {
     String input = "\"" + @"some % 8x value" + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(6, 4, StringPartType.FormatSpecifier), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void FormatSpecWithFlagsWidthAndPrecisionIsExtracted()
 {
     String input = "\"" + @"some %-8.2f value" + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(6, 6, StringPartType.FormatSpecifier), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void NonEscapeSequenceIsNotHighlighted()
 {
     // regexp non-escape-chars = '\' [^"\'ntbrafv]
       String input = "\"" +
       @"\h\l"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void NullCharReturnedAsEscapeSequence()
 {
     // \0
       String input = "\"" +
       @"\0||||\0"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(1, 2), parser.Next());
       Assert.Equal(new StringPart(7, 2), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void SimpleEscapeSequences()
 {
     // regexp escape-char = '\' ["\'ntbrafv]
       String input = "\"\\\"|" +
       @"\\|\'|\n|\t|\b|\r|\a|\f|\v"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(1,2), parser.Next());
       Assert.Equal(new StringPart(4,2), parser.Next());
       Assert.Equal(new StringPart(7,2), parser.Next());
       Assert.Equal(new StringPart(10,2), parser.Next());
       Assert.Equal(new StringPart(13,2), parser.Next());
       Assert.Equal(new StringPart(16,2), parser.Next());
       Assert.Equal(new StringPart(19,2), parser.Next());
       Assert.Equal(new StringPart(22,2), parser.Next());
       Assert.Equal(new StringPart(25,2), parser.Next());
       Assert.Equal(new StringPart(28,2), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void PercentAtEndOfStringIsIgnored()
 {
     String input = "\"" + @"some %" + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void UnicodeGraphShortIsEscapeSequence()
 {
     String input = "\"" +
       @"\u1234some other stuff"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(1, 6), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void DoublePercentIsIgnored()
 {
     String input = "\"" + @"some %% value" + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void UnicodeGraphShortIncompleteIsNotReturned()
 {
     String input = "\"" +
       @"\u12some other stuff"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void UnicodeGraphLongIsEscapeSequence()
 {
     String input = "\"" +
       @"\Uabcdef01some other stuff"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(1, 10), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void TwoDigitAfterBackslashNotConsideredTrigraph()
 {
     String input = "\"" +
       @"\02abcd"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void TripleQuoteMeansIgnoreSequences()
 {
     String input = "\"\"\"some string\\escape\"\"\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(null, parser.Next());
 }
 public void TrigraphReturnedAsEscapeSequence()
 {
     // regexp trigraph = '\' digit-char digit-char digit-char
       String input = "\"" +
       @"\023\124"
       + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(1, 4), parser.Next());
       Assert.Equal(new StringPart(5, 4), parser.Next());
       Assert.Equal(null, parser.Next());
 }
 public void SimpleFormatSpecIsExtracted()
 {
     String input = "\"" + @"some %d value" + "\"";
       var parser = new FSharpStringScanner(input);
       Assert.Equal(new StringPart(6, 2, StringPartType.FormatSpecifier), parser.Next());
       Assert.Equal(null, parser.Next());
 }