Tokenizing
----------

The tokenizing process is responsible for taking the VHDL text file and grouping characters into tokens.
This process is performed on a line by line basis.
Each line is processed a single character at a time.
Characters are combined to form tokens based on several rules.

* keywords and identifiers
* multiple character sequences (<=, :=, etc...)
* whitespace
* comments

The result will be a list of lists.
The outer list is the entire file and each inner list is a line in the file.

For example, the following code...

.. code-block:: vhdl

   architecture rtl of fifo is
   begin
    a <= b;     -- Assign output
   end architecture rtl;

would be tokenized into this:

.. code-block:: python

   tokens = [
       ['architecture', ' ', 'rtl', ' ', 'of', ' ', 'fifo', ' ', 'is'],
       ['begin'],
       [' ', 'a', ' ', '<=', ' ', 'b', ';', '     ', '-- Assign output'],
       ['end', ' ', 'architecture', ' ', 'rtl', ';']
   ]
