ensured to have all characters read treated as lowercase
moved predefined procedures into its own function
added support for float and check for variable initialization
fixed a few bugs for procedures