Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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);
    }