#include "semcheck.h" Ll1SetElement_Comma_list *Term_Bar_list::GET_FIRSTSETS(Adjacency_Nlist *adj_Nlist) { Ll1SetElement_Comma_list *result = new Ll1SetElement_Comma_list(); Term_list_iterator next_term(*this); Term_ each_term; while (each_term = next_term()) result = result->join(adj_Nlist->FIRSTSET(each_term->get_vertex())); return result; } Ll1SetElement_Comma_list *Any_vertex::get_firstset_for_second() { return NULL; } Ll1SetElement_Comma_list *Optional_term::get_firstset_for_second() { return opt->get_firstset_for_second(); } Ll1SetElement_Comma_list *Opt_labeled_term_Sandwich::get_firstset_for_second() { TEpsilon *iepsi = new TEpsilon(); Ll1SetElement *epsill1 = new Ll1SetElement(NULL, iepsi, NULL, NULL); if (second->FIRSTSET()->contain(epsill1)) return NULL; else return second->FIRSTSET(); }