title: Implementation of SOP Java
body: <p>Unsure how to approach this.</p>
  
  <p>SOP expressions are sums of products of doubles:</p>
  
  <pre><code>Expression ::= Sum | Product
  Sum ::= Product~("+"~Product)*
  Product ::= Double~("*"~Double)*
  </code></pre>
  
  <p>The SOP console reads a string from the keyboard and breaks it into a list of sub-strings separated by + signs. These sub-strings are broken into a list of sub-sub-strings separated by * signs. The sub-sub-strings should be parsable as doubles. (Otherwise and exception should be thrown.)</p>
  
  <p>The lists of sub-sub-strings should be converted into instances of a Product class. Lists of products should be converted into lists of expressions</p>
  
  <p>[<a href="https://i.stack.imgur.com/xxkUG.png][1]" rel="nofollow noreferrer">https://i.stack.imgur.com/xxkUG.png][1]</a></p>