Αρχιτεκτονική σχεδίαση
-  Θέλουμε με κάποιο τρόπο να ξέρουμε τι στοιχείο επεξεργαζόμαστε (
κανονικό πρόγραμμα, συμβολοσειρά, σταθερά χαρακτήρα, σχόλιο, κλπ).
 -  Αυτό εκφράζεται από την κατάσταση (state)
του προγράμματος.
 -  Η επεξεργασία για κάθε κατάσταση θα γίνεται χωριστά.
 -  Ορίζουμε τις παρακάτω καταστάσεις:
	-  NORMAL,
	
 -  HASH,
	
 -  SLASH,
	
 -  COMMENT,
	
 -  STAR,
	
 -  STRING,
	
 -  BACKSLASH_STRING,
	
 -  CHARACTER,
	
 -  BACKSLASH_CHARACTER,
	
 -  NEWLINE,
 
και το αντίστοιχο
διάγραμμα μετάπτωσης κατάστασης (state transition diagram)
 -  Στην αρχή της γραμμής αγνοούμε τα κενά και τυπώνουμε τα
δικά μας κενά.
 -  Οι χαρακτήρες { } αλλάζουν το επίπεδο στοίχισης.
 -  Η στοίχιση γίνεται από ξεχωριστή συνάρτηση.