protected internal void WriteTo(LexicalUnit unit, ITextSink sink) { int run = unit.head; if (run != -1) { int runOffset = unit.headOffset; RunEntry runEntry = this.runList[run]; uint kind = runEntry.MajorKind; do { if (runEntry.Type == RunType.Normal) { sink.Write(this.buffer, runOffset, runEntry.Length); } else if (runEntry.Type == RunType.Literal) { sink.Write(runEntry.Value); } runOffset += runEntry.Length; runEntry = this.runList[++run]; }while (runEntry.MajorKindPlusStartFlag == kind && !sink.IsEnough); } }
protected internal void WriteTo(ref Fragment fragment, ITextSink sink) { int run = fragment.head; if (run != fragment.tail) { int runOffset = fragment.headOffset; do { RunEntry runEntry = this.runList[run]; if (runEntry.Type == RunType.Normal) { sink.Write(this.buffer, runOffset, runEntry.Length); } else if (runEntry.Type == RunType.Literal) { sink.Write(runEntry.Value); } runOffset += runEntry.Length; }while (++run != fragment.tail && !sink.IsEnough); } }
// Token: 0x06001245 RID: 4677 RVA: 0x000833E4 File Offset: 0x000815E4 protected internal void WriteEscapedOriginalTo(ref Token.Fragment fragment, ITextSink sink) { int num = fragment.Head; if (num != fragment.Tail) { int num2 = fragment.HeadOffset; do { Token.RunEntry runEntry = this.RunList[num]; if (runEntry.Type == (RunType)2147483648U || runEntry.Type == (RunType)3221225472U) { if (runEntry.Kind == 184549376U && this.Buffer[num2] == '/') { string text = "/**/"; for (int i = 0; i < text.Length; i++) { sink.Write((int)text[i]); } } else { this.EscapeAndWriteBuffer(this.Buffer, num2, runEntry.Length, sink); } } num2 += runEntry.Length; }while (++num != fragment.Tail && !sink.IsEnough); } }
private void EscapeAndWriteBuffer( char[] buffer, int offset, int length, ITextSink sink) { int lastIdx = offset; for (int idx = offset; idx < offset + length;) { char ch = buffer[idx]; if (ch == '>' || ch == '<') { if (idx - lastIdx > 0) { sink.Write(buffer, lastIdx, idx - lastIdx); } uint value = (uint)ch; char[] escapeSequenceBuffer = new char[4]; escapeSequenceBuffer[0] = '\\'; escapeSequenceBuffer[3] = ' '; for (int i = 2; i > 0; --i) { uint digit = value & 0xF; escapeSequenceBuffer[i] = (char)(digit + (digit < 10 ? '0' : 'A' - 10)); value >>= 4; } sink.Write(escapeSequenceBuffer, 0, 4); lastIdx = ++idx; } else { CssToken.AttemptUnescape(buffer, offset + length, ref ch, ref idx); ++idx; } } sink.Write(buffer, lastIdx, length - (lastIdx - offset)); }
protected internal void WriteTo(ref Fragment fragment, ITextSink sink) { int num = fragment.head; if (num != fragment.tail) { int num2 = fragment.headOffset; do { RunEntry runEntry = runList[num]; if (runEntry.Type == (RunType)2147483648u) { sink.Write(buffer, num2, runEntry.Length); } else if (runEntry.Type == (RunType)3221225472u) { sink.Write(runEntry.Value); } num2 += runEntry.Length; }while (++num != fragment.tail && !sink.IsEnough); } }
private int WriteTo(ITextSink sink) { int num = 0; while (this.charBufferCount != 0 || this.DecodeMore()) { sink.Write(this.charBuffer, this.charBufferOffet, this.charBufferCount); this.charBufferOffet = 0; this.charBufferCount = 0; num += this.charBufferCount; } return(num); }
// Token: 0x06001246 RID: 4678 RVA: 0x000834B8 File Offset: 0x000816B8 private void EscapeAndWriteBuffer(char[] buffer, int offset, int length, ITextSink sink) { int num = offset; int i = offset; while (i < offset + length) { char c = buffer[i]; if (c == '>' || c == '<') { if (i - num > 0) { sink.Write(buffer, num, i - num); } uint num2 = (uint)c; char[] array = new char[] { '\\', '\0', '\0', ' ' }; for (int j = 2; j > 0; j--) { uint num3 = num2 & 15U; array[j] = (char)((ulong)num3 + (ulong)((num3 < 10U) ? 48L : 55L)); num2 >>= 4; } sink.Write(array, 0, 4); i = (num = i + 1); } else { CssToken.AttemptUnescape(buffer, offset + length, ref c, ref i); i++; } } sink.Write(buffer, num, length - (num - offset)); }
protected internal void WriteTo(LexicalUnit unit, ITextSink sink) { int num = unit.head; if (num != -1) { int num2 = unit.headOffset; RunEntry runEntry = runList[num]; uint majorKind = runEntry.MajorKind; do { if (runEntry.Type == (RunType)2147483648u) { sink.Write(buffer, num2, runEntry.Length); } else if (runEntry.Type == (RunType)3221225472u) { sink.Write(runEntry.Value); } num2 += runEntry.Length; runEntry = runList[++num]; }while (runEntry.MajorKindPlusStartFlag == majorKind && !sink.IsEnough); } }
// Token: 0x0600193F RID: 6463 RVA: 0x000C89DE File Offset: 0x000C6BDE public void WriteTo(ITextSink sink) { sink.Write(this.token.CharBuffer, this.token.ElementOffset, this.token.ElementLength); }