--- /dev/null
+%{
+ my $count = 0;
+%}
+
+%start e
+
+%%
+
+Al : 'Al'
+ | Th F { shift->YYData->{count}++ }
+ | Th Rn F Ar { shift->YYData->{count}++ }
+ ;
+B : 'B'
+ | B Ca { shift->YYData->{count}++ }
+ | Ti B { shift->YYData->{count}++ }
+ | Ti Rn F Ar { shift->YYData->{count}++ }
+ ;
+Ca : 'Ca'
+ | Ca Ca { shift->YYData->{count}++ }
+ | P B { shift->YYData->{count}++ }
+ | P Rn F Ar { shift->YYData->{count}++ }
+ | Si Rn F Y F Ar { shift->YYData->{count}++ }
+ | Si Rn Mg Ar { shift->YYData->{count}++ }
+ | Si Th { shift->YYData->{count}++ }
+ ;
+F : 'F'
+ | Ca F { shift->YYData->{count}++ }
+ | P Mg { shift->YYData->{count}++ }
+ | Si Al { shift->YYData->{count}++ }
+ ;
+H : 'H'
+ | C Rn Al Ar { shift->YYData->{count}++ }
+ | C Rn F Y F Y F Ar { shift->YYData->{count}++ }
+ | C Rn F Y Mg Ar { shift->YYData->{count}++ }
+ | C Rn Mg Y F Ar { shift->YYData->{count}++ }
+ | H Ca { shift->YYData->{count}++ }
+ | N Rn F Y F Ar { shift->YYData->{count}++ }
+ | N Rn Mg Ar { shift->YYData->{count}++ }
+ | N Th { shift->YYData->{count}++ }
+ | O B { shift->YYData->{count}++ }
+ | O Rn F Ar { shift->YYData->{count}++ }
+ ;
+Mg : 'Mg'
+ | B F { shift->YYData->{count}++ }
+ | Ti Mg { shift->YYData->{count}++ }
+ ;
+N : 'N'
+ | C Rn F Ar { shift->YYData->{count}++ }
+ | H Si { shift->YYData->{count}++ }
+ ;
+O : 'O'
+ | C Rn F Y F Ar { shift->YYData->{count}++ }
+ | C Rn Mg Ar { shift->YYData->{count}++ }
+ | H P { shift->YYData->{count}++ }
+ | N Rn F Ar { shift->YYData->{count}++ }
+ | O Ti { shift->YYData->{count}++ }
+ ;
+P : 'P'
+ | Ca P { shift->YYData->{count}++ }
+ | P Ti { shift->YYData->{count}++ }
+ | Si Rn F Ar { shift->YYData->{count}++ }
+ ;
+Si : 'Si'
+ | Ca Si { shift->YYData->{count}++ }
+ ;
+Th : 'Th'
+ | Th Ca { shift->YYData->{count}++ }
+ ;
+Ti : 'Ti'
+ | B P { shift->YYData->{count}++ }
+ | Ti Ti { shift->YYData->{count}++ }
+ ;
+e:
+ H F { shift->YYData->{count}++ }
+ | N Al { shift->YYData->{count}++ }
+ | O Mg { shift->YYData->{count}++ }
+ ;
+%%