class P1Info_Supp { /* 1. For this assignment you may not use util.java from CS1502. You may consult this file, and borrow what's useful, but please write your own utility class. 2. Recommended class structure: If you are having difficulty designing p1, you might consider using some or all of these classes: a. IOHelper.java -- Handles basic stdin, file IO and sockets b. UI.java -- User interface; prints menu, takes in selections, and calls appropriate functions in other objects. c. Parser.java -- Parses HTML, returns formatted text, etc. d. Driver.java -- Instantiates an instance of the UI, starts things up. This would be a very short program. Abstracting the 'start up' into its own class would allow you to easily convert your program into an applet. 3. Parsing a. You might want to design a state machine to strip the HTML. This will allow you to return to your parser in P2, and support additional tags. b. Make sure you wrap text on white space only. This includes spaces, tabs, etc. In HTML there are several defined white spaces: ASCII space ( ) ASCII tab ( ) ASCII form feed ( ) Zero-width space (​) Carriage return ( ) Line feed ( ) Soft hyphens: ­ (­ or ­) -- but not hard hyphens For more information, consult: http://www.w3.org/TR/REC-html40/struct/text.html#line-breaks c. For p1, you can ignore most HTML tags, except for those that would affect your displayed output. In addition to those listed above, you will have to check for: This text is not visible
-- causes a line break

-- causes a line break, an optional "extra line" to start a new paragraph, and some kind of indentation (e.g., '\t')   -- treat this as a space For now, you don't have to worry about multiple spaces:     Just treat them as a single space. (This will simplify the task for formatting the lines to fit a given column size.) Keep in mind, however, that you will later have to support additional tags for P2. So, write your parser in a flexible manner. */ }