public void TestUnmatchedSpecificSurrogatePairByCodePoint()
        {
            var sample = char.ConvertFromUtf32(0x17DF6);

            var grammar = new Grammar();
            var parser  = new SingleSurrogatePairTerminal(0x87FFF);

            grammar.Inner = parser.Named("char");

            var match = grammar.Match(sample);

            Assert.False(match.Success, match.ErrorMessage);
        }
        public void TestMatchingSpecificSurrogatePairByCodePoint()
        {
            var sample = char.ConvertFromUtf32(0x87FFF);

            var grammar = new Grammar();
            var parser  = new SingleSurrogatePairTerminal(0x87FFF);

            grammar.Inner = parser.Named("char");

            var match = grammar.Match(sample);

            Assert.True(match.Success, match.ErrorMessage);
            Assert.Equal(0x87FFF, parser.GetValue(match.Find("char").Single()));
        }
 private SingleSurrogatePairTerminal(SingleSurrogatePairTerminal other, ParserCloneArgs args)
     : base(other, args)
 {
 }
 private SingleSurrogatePairTerminal(SingleSurrogatePairTerminal other, ParserCloneArgs args) 
     : base(other, args)
 {
 }