At least until now. We have developed a method for analyzing a grammar and determining what parts of that grammar are skipabable. A grammar is composed of production rules, a start symbol, non terminals and terminals. By determining which non terminals are skipable, we can determine which parts of the grammar we do not need to parse. A non terminal is defined as skipable if the first k terminals that the non terminal derives are exactly equivilent to the cross product of the alphabet for k length.
B is skipable also.
S therefor, S is determined as 2 skipable, since it can derive all of the strings of length 2 from the alphabet 0 and 1. To determine the k that a non terminal is skipable by we used the classic first calculation. The problem with this calculation is that to determine first-1 sets we would need to calculate these sets, and then to determine the first 2 set we would need to calculate the first 1 set again and then the first 2 set, and so on. This is basicly the same as a standard first-k calculation, except now you save what has been computed as you recurse. Armed with an incremental first calculation we were able to determine what non terminals in a grammar were skipable, and by how much.