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.