def GenerateSamples(grammar_dir, outfiles): """Generates a set of samples and writes them to the output files. Args: grammar_dir: directory to load grammar files from. outfiles: A list of output filenames. """ f = open(os.path.join(grammar_dir, 'template.html')) template = f.read() f.close() htmlgrammar = Grammar() err = htmlgrammar.ParseFromFile(os.path.join(grammar_dir, 'html.txt')) #CheckGrammar(htmlgrammar) if err > 0: print 'There were errors parsing grammar' return cssgrammar = Grammar() err = cssgrammar.ParseFromFile(os.path.join(grammar_dir, 'css.txt')) #CheckGrammar(cssgrammar) if err > 0: print 'There were errors parsing grammar' return jsgrammar = Grammar() err = jsgrammar.ParseFromFile(os.path.join(grammar_dir, 'js.txt')) #CheckGrammar(jsgrammar) if err > 0: print 'There were errors parsing grammar' return # JS and HTML grammar need acces to CSS grammar. # Add it as import htmlgrammar.AddImport('cssgrammar', cssgrammar) jsgrammar.AddImport('cssgrammar', cssgrammar) for outfile in outfiles: result = GenerateNewSample(template, htmlgrammar, cssgrammar, jsgrammar) if result is not None: print 'Writing a sample to ' + outfile try: f = open(outfile, 'w') f.write(result) f.close() except IOError: print 'Error writing to output'