private void ResetCh(SLock_t slock) { ch = slock.ch; chBytes = slock.chBytes; pos = slock.pos; line = slock.line; buffer.LockReset(); }
private SLock_t LockCh() { SLock_t slock = new SLock_t(); slock.ch = ch; slock.chBytes = chBytes; slock.pos = pos; slock.line = line; slock.col = col; buffer.Lock(); return(slock); }
private void UnlockCh(SLock_t slock) { buffer.Unlock(); }
private SLock_t LockCh() { SLock_t slock = new SLock_t(); slock.ch = ch; slock.chBytes = chBytes; slock.pos = pos; slock.line = line; slock.col = col; buffer.Lock(); return slock; }
private bool Comment(CcsComment_t c) { SLock_t slock = null; int level = 1, line0 = line; if (c.start[1] != 0) { slock = LockCh(); GetCh(); if (ch != c.start[1]) { ResetCh(slock); return(false); } UnlockCh(slock); } GetCh(); for (;;) { if (ch == c.end[0]) { if (c.end[1] == 0) { if (--level == 0) { break; } } else { slock = LockCh(); GetCh(); if (ch == c.end[1]) { UnlockCh(slock); if (--level == 0) { break; } } else { ResetCh(slock); } } } else if (c.nested && ch == c.start[0]) { if (c.start[1] == 0) { ++level; } else { slock = LockCh(); GetCh(); if (ch == c.start[1]) { UnlockCh(slock); ++level; } else { ResetCh(slock); } } } else if (ch == CcsBuffer_t.EoF) { return(true); } GetCh(); } oldEols = line - line0; GetCh(); return(true); }