// Sum -> Product ((+|-) Product)* Expression::Node *Expression::parseSum() { //printf("parsing sum\n"); Node *result = parseProduct(); for (;;) { if (consume("+")) { result = new Plus(result, parseProduct()); } else if (consume("-")) { result = new Minus(result, parseProduct()); } else { return result; } } //printf("done parsing sum\n"); }
Product getProduct(unsigned int id){ Product p; std::ifstream inputProducts("Products.txt"); char line[32]; memset(line, 0, 32); while (inputProducts){ inputProducts.getline(line, 32); parseProduct(line, p); if (p.id == id){ break; } } inputProducts.close(); return p; }