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

    // Alternative 1.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("long")) {

      yyValue = GNode.create("Long", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 2.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("int")) {

      yyValue = GNode.create("Int", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 3.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("short")) {

      yyValue = GNode.create("Short", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 4.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("char")) {

      yyValue = GNode.create("Char", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 5.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("_Bool")) {

      yyValue = GNode.create("Bool", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 6.

    yyResult = pKeyword(yyStart);
    if (yyResult.hasValue("unsigned")) {

      yyValue = GNode.create("Unsigned", false);
      yyValue.setLocation(location(yyStart));

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 7.

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

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

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 8.

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

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

      return yyResult.createValue(yyValue, yyError);
    }

    // Alternative 9.

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

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

      return yyResult.createValue(yyValue, yyError);
    }

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