Compound noun searching.

neural network of words, so that all the words are connected by links
and each matching letter traverses the network eliminating all impossible words with each step
until the words are all used up or there is a match and no more letters match any longer words

memory saving ideas
 * unique endings to words can be stored as strings
 * common but unique endings to words can be reused
	if there are 2 base words with the same endings, they can share 
	whole ending trees of letters. 
	    very hard to find and get right. it might be easier to
	    find these after the whole structure is created.

it should try to removed all the words that can be broken down by this method.
to do that, the single word being tested will have to be removed from the list of words
and run through the algorithm to see if it can be built from this set of rules


all the possible letters in the words are represented in a contiguous fasion.
all letters are converted to the correct position by a table 256 characters long
This table will also be generated by the compiler 
	look through the list of words and find all of the letters that are used


The list of conjunction letters has to be provided to the algoritm.


sudo code for the compiler

create the list of all letters and their mapping to the internal code
save the list and the length of the list and write it to a file.

using the list of conjunction letters, create a table of possible entries.
	if it is possible for there to be no conjunction between the words,
	that has to be entered and will be stored in a variable

build the table of words and making every character in the input a node in a tree

search through the table for any endings that are unique
	a unique ending is one where there is only 1 letter in all the nodes from then until the null
		(I see recursion)
	as the unique entries are found, convert them to strings, and add the information 
	to a table (that is not needed after the compile) about the unique ending to be able to 
	reuse the unique endings in the fastest possible way. 
	(a simple search through the list of endings) (maybe binary and keep the list sorted??)

