Code Review 3

This round of code reviews will be structured like previous code reviews:

Schedule

PresentersReview&PresentReview
Fraser/JiangTollman, MuPlattner, Guo, Alexandari
Mogan/OrttungTorres da Silva, AlexandariFraser, Hong, Mu
Plattner/SpiegelGuo, MalleryJiang, Torres da Silva, Spradling, McKinnon
Aboukhadijeh/McKinnonHong, ZangSpiegel, Zheng, Mogan
Mallery/ZangSpradling, ZhengTollman, Aboukhadijeh, Orttung

Review Topics

Here are the particular topic(s) to review for each project, along with a few suggested questions to consider. In addition to these questions, feel free to discuss other design issues, either good or bad, that you notice in reviewing the code.

Fraser/Jiang (proj3-1)

Review the supporting classes used by the main shell engine, including VariableManager TokenList, PathCache, and Command. Are these classes deep? How much do they simplify the development of the main shell engine?

Mogan/Orttung (proj3-2)

Review CommandProcessor, ClashMain, and the interactions between these classes. Is the parsing of shell commands decomposed cleanly within CommandProcessor? Does it properly implement the shell syntax? What do you think of the decomposition between CommandProcessor and ClashMain?

Plattner/Spiegel (proj3-7)

Review ClashPipeline, clash.cc, and the interactions between these classes. Is the parsing of shell commands decomposed cleanly within ClashPipeline? Does it properly implement the shell syntax? What do you think of the decomposition between ClashPipeline and clash.cc?

Aboukhadijeh/McKinnon (proj3-5)

Review the mechanism for parsing commands, including JobParser and related classes. Is the parsing of shell commands decomposed cleanly? Does this approach handle all of the shell syntax features?

Mallery/Zang (proj3-9)

Review the token mechanism, starting with the Token class and working through the other classes that uses Tokens to parse commands. Are tokens cleanly encapsulated, with deep interfaces? How general-purpose are they? How effectively do they support the rest of command parsing?