Random code generation using Markov chains and CouchDB, based on AST instead of tokens