public final void makeCCLs()

in jflex/src/main/java/jflex/core/RegExp.java [690:734]


  public final void makeCCLs(CharClasses c, boolean caseless) {
    RegExp1 unary;
    RegExp2 binary;
    RegExp content;

    switch (type) {
      case sym.BAR:
      case sym.CONCAT:
        binary = (RegExp2) this;
        binary.r1.makeCCLs(c, caseless);
        binary.r2.makeCCLs(c, caseless);
        return;

      case sym.STAR:
      case sym.PLUS:
      case sym.QUESTION:
      case sym.BANG:
      case sym.TILDE:
        unary = (RegExp1) this;
        content = (RegExp) unary.content;
        content.makeCCLs(c, caseless);
        return;

      case sym.CHAR:
      case sym.CHAR_I:
        Integer ch = (Integer) ((RegExp1) this).content;
        c.makeClass(ch, caseless);
        return;

      case sym.STRING:
      case sym.STRING_I:
        String str = (String) ((RegExp1) this).content;
        c.makeClass(str, caseless);
        return;

      case sym.PRIMCLASS:
        unary = (RegExp1) this;
        IntCharSet set = (IntCharSet) unary.content;
        c.makeClass(set, Options.jlex && caseless);
        return;

      default:
        throw new CharClassException("makeCCLs: unexpected regexp " + this);
    }
  }