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 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 NonEscapeSequenceIsNotHighlighted() { // regexp non-escape-chars = '\' [^"\'ntbrafv] String input = "\"" + @"\h\l" + "\""; var parser = new FSharpStringScanner(input); 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()); }