got the CoffeeScript-in-CoffeeScript REPL running, and boy is she fast
This commit is contained in:
parent
b224d58a36
commit
c88b1f6a15
|
@ -26,8 +26,8 @@
|
|||
};
|
||||
exports.VERSION = '0.5.0';
|
||||
// Compile CoffeeScript to JavaScript, using the Coffee/Jison compiler.
|
||||
exports.compile = function compile(code) {
|
||||
return (parser.parse(lexer.tokenize(code))).compile();
|
||||
exports.compile = function compile(code, options) {
|
||||
return (parser.parse(lexer.tokenize(code))).compile(options);
|
||||
};
|
||||
// Just the tokens.
|
||||
exports.tokenize = function tokenize(code) {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
exports.run = function run() {
|
||||
parse_options();
|
||||
if (options.interactive) {
|
||||
launch_repl();
|
||||
return require('./repl');
|
||||
}
|
||||
if (!(sources.length)) {
|
||||
usage();
|
||||
|
|
|
@ -11,7 +11,10 @@
|
|||
};
|
||||
// The main REPL function. Called everytime a line of code is entered.
|
||||
readline = function readline(code) {
|
||||
return coffee.ruby_compile(code, run);
|
||||
return run(coffee.compile(code, {
|
||||
no_wrap: true,
|
||||
globals: true
|
||||
}));
|
||||
};
|
||||
// Attempt to evaluate the command. If there's an exception, print it.
|
||||
run = function run(js) {
|
||||
|
@ -27,7 +30,7 @@
|
|||
return print(prompt);
|
||||
};
|
||||
// Start up the REPL.
|
||||
process.stdio.open();
|
||||
process.stdio.addListener('data', readline);
|
||||
process.stdio.open();
|
||||
print(prompt);
|
||||
})();
|
|
@ -20,8 +20,8 @@ parser.lexer: {
|
|||
exports.VERSION: '0.5.0'
|
||||
|
||||
# Compile CoffeeScript to JavaScript, using the Coffee/Jison compiler.
|
||||
exports.compile: (code) ->
|
||||
(parser.parse lexer.tokenize code).compile()
|
||||
exports.compile: (code, options) ->
|
||||
(parser.parse lexer.tokenize code).compile(options)
|
||||
|
||||
# Just the tokens.
|
||||
exports.tokenize: (code) ->
|
||||
|
|
|
@ -35,7 +35,7 @@ option_parser: null
|
|||
# The CommandLine handles all of the functionality of the `coffee` utility.
|
||||
exports.run: ->
|
||||
parse_options()
|
||||
launch_repl() if options.interactive
|
||||
return require './repl' if options.interactive
|
||||
usage() unless sources.length
|
||||
compile_scripts()
|
||||
this
|
||||
|
|
|
@ -9,7 +9,7 @@ prompt: 'coffee> '
|
|||
quit: -> process.stdio.close()
|
||||
|
||||
# The main REPL function. Called everytime a line of code is entered.
|
||||
readline: (code) -> coffee.ruby_compile code, run
|
||||
readline: (code) -> run coffee.compile code, {no_wrap: true, globals: true}
|
||||
|
||||
# Attempt to evaluate the command. If there's an exception, print it.
|
||||
run: (js) ->
|
||||
|
@ -21,6 +21,6 @@ run: (js) ->
|
|||
print prompt
|
||||
|
||||
# Start up the REPL.
|
||||
process.stdio.open()
|
||||
process.stdio.addListener 'data', readline
|
||||
process.stdio.open()
|
||||
print prompt
|
Loading…
Reference in New Issue