LEXICAL UPDATE AND SYNTAX STUB
Important points: 4,12

1) PROJECT output folder is not "bin" and not "release" or "debug"
2) PROJECT adds "test" source folder directory
3) DOCUMENTATION adds doxygen file: you can generate documentation by
running the doxygen command. Moreover .gitignore now ignore docs/html,
so the repository is much smaller. Adds the dot folder where to store
all the dot files used inside the documentation. Please add here only
dot-files
4) MAKEFILE makefile deeply changed: adds YACC_FILES macro which list
the *.o files coming from *.y files by using bison. Adds color string in
makefile output. Adds APPLICATION macro which let's you decide what
executable (int main() ) you want to build. You have to encircle every
main() function in the project with a #ifdef <MACRO_NAME>. Then, when
you want to build that particular application you do "make
APPLICATION=<MACRO_NAME>. The commit also adds "check-prerequisites":
this rule check whether or not a command is installed on the system.
"optional-check-requisites" check optional commands instead: no error
will come out if an optional command is not installed on the system.
Rearrenge the target calling to be able to execute "make all" multiple
times without showing an error after the first "make all": this was done
by using $(sort ) on CC_FILES. Adds some TODO in "make install" and
"make uninstall"
5) CONCEPTS Adds ideas in syntax tree, telling some overall ideas on how
the abstract syntax tree should be built. Adds makefile explained
explaining in detail how the makefile works (you should know the
makefile basics though)
6) PROJECT: Adds run configuration folder with some default
configurations.
7) LexVal.h: adds some documentation
8) lex.definitions.h: adds some documentation. The #defines value are
changed:  this because in this way in yacc we can write '(' instead of
TK_OPENPARENTHESIS (though TK_OPENPARENTHESIS should work too): this was
done to increase yacc readability file.
9) Lexical.lex: solve a bug on the recognitions of charconst
10) Node.h/.h: include to handle abstract syntax tree Nodes
11) NodeType.c/.h: include to handle absract syntax tree nodes types
(terminal/non terminal)
12) syntax.y: adds a yacc files stub. MAY contains some errors!!!!
13) TEST adds KoldarCTester to better handle tase scenarios. Adds
lexical.test.c, some lexical test stub. Adds some test SOL source files.