Function opg::find_greater [−][src]
pub(crate) fn find_greater(
table: &mut OpTable,
productions: &Vec<Production>,
nts: &HashSet<String>,
lastvt: &HashMap<String, HashSet<String>>
)
Find the greater relations
Input
table
the mutable OpTable
struct for output
productions
the vector of struct Production
nts
the non-terminal set, which could be generated
from the function get_non_terminals()
.
lastvt
the LASTVT set generated from the function
gen_lastvt()
.
Example
let lastvt = gen_firstvt(&productions, &nts); find_greater(&mut table, &productions, &nts, &lastvt);
Principles
Find ...U1T2..., where T1 is in LASTVT(U1) and make T1>T2. Notice that this doesn't indicate that T2<T1.