build: fixed check for dirty files
sped up lexer and parser a little

made use of macros and inlined some frequently called functions
restored support for embedded js, #60