bufsize_t _scan_scheme()

in src/scanners.c [25:746]


bufsize_t _scan_scheme(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    yych = *p;
    if (yych <= '@')
      goto yy2;
    if (yych <= 'Z')
      goto yy4;
    if (yych <= '`')
      goto yy2;
    if (yych <= 'z')
      goto yy4;
  yy2:
    ++p;
  yy3 : { return 0; }
  yy4:
    yych = *(marker = ++p);
    if (yych <= '/') {
      if (yych <= '+') {
        if (yych <= '*')
          goto yy3;
      } else {
        if (yych <= ',')
          goto yy3;
        if (yych >= '/')
          goto yy3;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '9')
          goto yy5;
        if (yych <= '@')
          goto yy3;
      } else {
        if (yych <= '`')
          goto yy3;
        if (yych >= '{')
          goto yy3;
      }
    }
  yy5:
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych == '+')
          goto yy7;
      } else {
        if (yych != '/')
          goto yy7;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych >= 'A')
          goto yy7;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych <= 'z')
          goto yy7;
      }
    }
  yy6:
    p = marker;
    goto yy3;
  yy7:
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych == '+')
          goto yy10;
        goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
        goto yy10;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
        goto yy10;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych <= 'z')
          goto yy10;
        goto yy6;
      }
    }
  yy8:
    ++p;
    { return (bufsize_t)(p - start); }
  yy10:
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych <= ',') {
        if (yych != '+')
          goto yy6;
      } else {
        if (yych == '/')
          goto yy6;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= ':')
          goto yy8;
        if (yych <= '@')
          goto yy6;
      } else {
        if (yych <= '`')
          goto yy6;
        if (yych >= '{')
          goto yy6;
      }
    }
    ++p;
    if ((yych = *p) == ':')
      goto yy8;
    goto yy6;
  }
}