<spanclass="nv">CoffeeScript: </span><spanclass="nx">require</span><spanclass="s1">'./coffee-script'</span></pre></div></td></tr><trid="section-3"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-3">#</a></div><p>The help banner that is printed when <code>coffee</code> is called without arguments.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">BANNER: </span><spanclass="s1">'''</span>
<spanclass="s1">'''</span></pre></div></td></tr><trid="section-4"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-4">#</a></div><p>The list of all the valid option flags that <code>coffee</code> knows how to handle.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">SWITCHES: </span><spanclass="p">[</span>
<spanclass="p">[</span><spanclass="s1">'-c'</span><spanclass="p">,</span><spanclass="s1">'--compile'</span><spanclass="p">,</span><spanclass="s1">'compile to JavaScript and save as .js files'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-i'</span><spanclass="p">,</span><spanclass="s1">'--interactive'</span><spanclass="p">,</span><spanclass="s1">'run an interactive CoffeeScript REPL'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-o'</span><spanclass="p">,</span><spanclass="s1">'--output [DIR]'</span><spanclass="p">,</span><spanclass="s1">'set the directory for compiled JavaScript'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-w'</span><spanclass="p">,</span><spanclass="s1">'--watch'</span><spanclass="p">,</span><spanclass="s1">'watch scripts for changes, and recompile'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-p'</span><spanclass="p">,</span><spanclass="s1">'--print'</span><spanclass="p">,</span><spanclass="s1">'print the compiled JavaScript to stdout'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-l'</span><spanclass="p">,</span><spanclass="s1">'--lint'</span><spanclass="p">,</span><spanclass="s1">'pipe the compiled JavaScript through JSLint'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-s'</span><spanclass="p">,</span><spanclass="s1">'--stdio'</span><spanclass="p">,</span><spanclass="s1">'listen for and compile scripts over stdio'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-e'</span><spanclass="p">,</span><spanclass="s1">'--eval'</span><spanclass="p">,</span><spanclass="s1">'compile a string from the command line'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'--no-wrap'</span><spanclass="p">,</span><spanclass="s1">'compile without the top-level function wrapper'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-t'</span><spanclass="p">,</span><spanclass="s1">'--tokens'</span><spanclass="p">,</span><spanclass="s1">'print the tokens that the lexer produces'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-n'</span><spanclass="p">,</span><spanclass="s1">'--nodes'</span><spanclass="p">,</span><spanclass="s1">'print the parse tree that Jison produces'</span><spanclass="p">]</span>
<spanclass="p">[</span><spanclass="s1">'-h'</span><spanclass="p">,</span><spanclass="s1">'--help'</span><spanclass="p">,</span><spanclass="s1">'display this help message'</span><spanclass="p">]</span>
<spanclass="p">]</span></pre></div></td></tr><trid="section-5"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-5">#</a></div><p>Top-level objects shared by all the functions.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">options: </span><spanclass="p">{}</span>
<spanclass="nv">option_parser: </span><spanclass="kc">null</span></pre></div></td></tr><trid="section-6"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-6">#</a></div><p>Run <code>coffee</code> by parsing passed options and determining what action to take.
Many flags cause us to divert before compiling anything. Flags passed after
<code>--</code> will be passed verbatim to your script as arguments in <code>process.argv</code></p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">exports.run: </span><spanclass="o">-></span>
<spanclass="nx">compile_scripts</span><spanclass="p">()</span></pre></div></td></tr><trid="section-7"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-7">#</a></div><p>Asynchronously read in each CoffeeScript in a list of source files and
<spanclass="k">throw</span><spanclass="k">new</span><spanclass="nb">Error</span><spanclass="s2">"File not found: $source"</span><spanclass="nx">unless</span><spanclass="nx">exists</span>
<spanclass="nx">compile</span><spanclass="p">(</span><spanclass="nx">source</span><spanclass="p">)</span><spanclass="k">for</span><spanclass="nx">source</span><spanclass="k">in</span><spanclass="nx">sources</span></pre></div></td></tr><trid="section-8"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-8">#</a></div><p>Compile a single source script, containing the given code, according to the
requested options. Both compile_scripts and watch_scripts share this method
in common. If evaluating the script directly sets <code>__filename</code>, <code>__dirname</code>
and <code>module.filename</code> to be correct relative to the script's path.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">compile_script: </span><spanclass="p">(</span><spanclass="nx">source</span><spanclass="p">,</span><spanclass="nx">code</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="k">if</span><spanclass="nx">o</span><spanclass="p">.</span><spanclass="nx">watch</span><spanclass="k">then</span><spanclass="nx">puts</span><spanclass="nx">err</span><spanclass="p">.</span><spanclass="nx">message</span><spanclass="k">else</span><spanclass="k">throw</span><spanclass="nx">err</span></pre></div></td></tr><trid="section-9"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-9">#</a></div><p>Attach the appropriate listeners to compile scripts incoming over <strong>stdin</strong>,
and write them back to <strong>stdout</strong>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">compile_stdio: </span><spanclass="o">-></span>
<spanclass="nx">compile_script</span><spanclass="s1">'stdio'</span><spanclass="p">,</span><spanclass="nx">code</span></pre></div></td></tr><trid="section-10"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-10">#</a></div><p>Watch a list of source CoffeeScript files using <code>fs.watchFile</code>, recompiling
them every time the files are updated. May be used in combination with other
options, such as <code>--lint</code> or <code>--print</code>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">watch_scripts: </span><spanclass="o">-></span>
<spanclass="nx">watch</span><spanclass="p">(</span><spanclass="nx">source</span><spanclass="p">)</span><spanclass="k">for</span><spanclass="nx">source</span><spanclass="k">in</span><spanclass="nx">sources</span></pre></div></td></tr><trid="section-11"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-11">#</a></div><p>Write out a JavaScript source file with the compiled code. By default, files
are written out in <code>cwd</code> as <code>.js</code> files with the same name, but the output
directory can be customized with <code>--output</code>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">write_js: </span><spanclass="p">(</span><spanclass="nx">source</span><spanclass="p">,</span><spanclass="nx">js</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">fs</span><spanclass="p">.</span><spanclass="nx">writeFile</span><spanclass="nx">js_path</span><spanclass="p">,</span><spanclass="nx">js</span></pre></div></td></tr><trid="section-12"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-12">#</a></div><p>Pipe compiled JS through JSLint (requires a working <code>jsl</code> command), printing
any errors or warnings that arise.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">lint: </span><spanclass="p">(</span><spanclass="nx">js</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">jsl</span><spanclass="p">.</span><spanclass="nx">close</span><spanclass="p">()</span></pre></div></td></tr><trid="section-13"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-13">#</a></div><p>Pretty-print a stream of tokens.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">print_tokens: </span><spanclass="p">(</span><spanclass="nx">tokens</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">puts</span><spanclass="nx">strings</span><spanclass="p">.</span><spanclass="nx">join</span><spanclass="p">(</span><spanclass="s1">''</span><spanclass="p">)</span></pre></div></td></tr><trid="section-14"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-14">#</a></div><p>Use the <ahref="optparse.html">OptionParser module</a> to extract all options from
<code>process.argv</code> that are specified in <code>SWITCHES</code>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">parse_options: </span><spanclass="o">-></span>
<spanclass="nv">sources: </span><spanclass="nx">options</span><spanclass="p">.</span><spanclass="nx">arguments</span><spanclass="p">[</span><spanclass="mi">2</span><spanclass="p">...</span><spanclass="nx">options</span><spanclass="p">.</span><spanclass="nx">arguments</span><spanclass="p">.</span><spanclass="nx">length</span><spanclass="p">]</span></pre></div></td></tr><trid="section-15"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-15">#</a></div><p>The compile-time options to pass to the CoffeeScript compiler.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">compile_options: </span><spanclass="p">(</span><spanclass="nx">source</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">o</span></pre></div></td></tr><trid="section-16"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-16">#</a></div><p>Print the <code>--help</code> usage message and exit.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">usage: </span><spanclass="o">-></span>
<spanclass="nx">process</span><spanclass="p">.</span><spanclass="nx">exit</span><spanclass="mi">0</span></pre></div></td></tr><trid="section-17"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-17">#</a></div><p>Print the <code>--version</code> message and exit.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">version: </span><spanclass="o">-></span>
<spanclass="nx">puts</span><spanclass="s2">"CoffeeScript version ${CoffeeScript.VERSION}"</span>