Function opg::find_less [−][src]
pub(crate) fn find_less(
table: &mut OpTable,
productions: &Vec<Production>,
nts: &HashSet<String>,
firstvt: &HashMap<String, HashSet<String>>
)
Find the less 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()
.
firstvt
the FIRSTVT set generated from the function
gen_firstvt()
.
Example
let firstvt = gen_firstvt(&productions, &nts); find_less(&mut table, &productions, &nts, &firstvt);
Principles
Find ...T1U1..., where T2 is in FIRSTVT(U1) and make T1<T2. Notice that this doesn't indicate that T2>T1.