Implement semantics.c and parser.c