private Result pTypeQualifier(final int yyStart) throws IOException {
    Result     yyResult;
    Node       yyValue;
    ParseError yyError = ParseError.DUMMY;

    // Alternative 1.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("volatile")) {
      final String v$g$1 = "volatile";

      yyValue = GNode.create("VolatileQualifier", v$g$1);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 2.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__volatile")) {
      final String v$g$2 = "__volatile";

      yyValue = GNode.create("VolatileQualifier", v$g$2);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 3.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__volatile__")) {
      final String v$g$3 = "__volatile__";

      yyValue = GNode.create("VolatileQualifier", v$g$3);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 4.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("const")) {
      final String v$g$1 = "const";

      yyValue = GNode.create("ConstantQualifier", v$g$1);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 5.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__const")) {
      final String v$g$2 = "__const";

      yyValue = GNode.create("ConstantQualifier", v$g$2);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 6.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__const__")) {
      final String v$g$3 = "__const__";

      yyValue = GNode.create("ConstantQualifier", v$g$3);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 7.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("restrict")) {
      final String v$g$1 = "restrict";

      yyValue = GNode.create("RestrictQualifier", v$g$1);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 8.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__restrict")) {
      final String v$g$2 = "__restrict";

      yyValue = GNode.create("RestrictQualifier", v$g$2);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 9.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("__restrict__")) {
      final String v$g$3 = "__restrict__";

      yyValue = GNode.create("RestrictQualifier", v$g$3);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Done.
    yyError = yyError.select("type qualifier expected", yyStart);
    return yyError;
  }