diff --git a/src/branch/mod.rs b/src/branch/mod.rs
index 20205f595..5c88df027 100644
--- a/src/branch/mod.rs
+++ b/src/branch/mod.rs
@@ -155,7 +155,7 @@ macro_rules! alt_trait_inner(
);
);
-alt_trait!(A B C D E F G H I J K L M N O P Q R S T U);
+alt_trait!(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD);
// Manually implement Alt for (A,), the 1-tuple type
impl, A: Parser>
@@ -369,4 +369,13 @@ permutation_trait!(
FnS S s
FnT T t
FnU U u
+ FnV V v
+ FnW W w
+ FnX X x
+ FnY Y y
+ FnZ Z z
+ FnAA AA aa
+ FnAB AB ab
+ FnAC AC ac
+ FnAD AD ad
);
diff --git a/src/macros.rs b/src/macros.rs
index 980d2d90e..6bf3b5cf2 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -20,4 +20,13 @@ macro_rules! succ (
(18, $submac:ident ! ($($rest:tt)*)) => ($submac!(19, $($rest)*));
(19, $submac:ident ! ($($rest:tt)*)) => ($submac!(20, $($rest)*));
(20, $submac:ident ! ($($rest:tt)*)) => ($submac!(21, $($rest)*));
+ (21, $submac:ident ! ($($rest:tt)*)) => ($submac!(22, $($rest)*));
+ (22, $submac:ident ! ($($rest:tt)*)) => ($submac!(23, $($rest)*));
+ (23, $submac:ident ! ($($rest:tt)*)) => ($submac!(24, $($rest)*));
+ (24, $submac:ident ! ($($rest:tt)*)) => ($submac!(25, $($rest)*));
+ (25, $submac:ident ! ($($rest:tt)*)) => ($submac!(26, $($rest)*));
+ (26, $submac:ident ! ($($rest:tt)*)) => ($submac!(27, $($rest)*));
+ (27, $submac:ident ! ($($rest:tt)*)) => ($submac!(28, $($rest)*));
+ (28, $submac:ident ! ($($rest:tt)*)) => ($submac!(29, $($rest)*));
+ (29, $submac:ident ! ($($rest:tt)*)) => ($submac!(30, $($rest)*));
);