Exemple #1
0
void writeBase36(OutBuffer *buf, unsigned i)
{
    if (i >= 36)
    {
        writeBase36(buf, i / 36);
        i %= 36;
    }
    if (i < 10)
        buf->writeByte(i + '0');
    else if (i < 36)
        buf->writeByte(i - 10 + 'A');
    else
        assert(0);
}
Exemple #2
0
 void writeBase36(size_t i)
 {
     if (i >= 36)
     {
         writeBase36(i / 36);
         i %= 36;
     }
     if (i < 10)
         buf.writeByte((char)(i + '0'));
     else if (i < 36)
         buf.writeByte((char)(i - 10 + 'A'));
     else
         assert(0);
 }
Exemple #3
0
 int substitute(RootObject *p)
 {
     for (size_t i = 0; i < components.dim; i++)
     {
         if (p == components[i])
         {
             /* Sequence is S_, S0_, .., S9_, SA_, ..., SZ_, S10_, ...
              */
             buf.writeByte('S');
             if (i)
                 writeBase36(i - 1);
             buf.writeByte('_');
             return 1;
         }
     }
     return 0;
 }
Exemple #4
0
int CppMangleState::substitute(OutBuffer *buf, void *p)
{
    for (size_t i = 0; i < components.dim; i++)
    {
        if (p == components.tdata()[i])
        {
            /* Sequence is S_, S0_, .., S9_, SA_, ..., SZ_, S10_, ...
             */
            buf->writeByte('S');
            if (i)
                writeBase36(buf, i - 1);
            buf->writeByte('_');
            return 1;
        }
    }
    components.push(p);
    return 0;
}