Update 39: Tidying up.

Added typedef char* string to ast.h and replaced occurrences of
char* with string in all files except gpparser.y. I also added
const to some function arguments in pretty and seman.

Moved function description comments to header files in all modules.

pretty.h/c
- Removed global variables dot_file and next_node_id.
  Now they are created in printDotAST and printDotHostGraph.
  These functions pass the variables to the other pretty printing
  functions.

seman.h
- The last two arguments in the prototype of atomicExpScan were
  int_check and string_check. In seman.c they are int_exp and
  string_exp. I changed the variable names in the function
  prototype.i
Update 40: Debugging.

I modified the List syntax so that Bison can perform error recovery
from an atomic expression. Now lists are required to end in a ':'
so that the "error ':'" rule acts properly even if a syntax error
is encountered in the final element of a list. This necessitated
a change to the List productions in the grammar.

gpparser.y
- Changed names of host graph symbols e.g. CExp -> HostExp

gplexer.lex
- Added rules to handle new lines within string and characters.
  If this happens then the parsing terminates.
- Added yyterminate() calls after every regexp matching <<EOF>>.