made reserved words available as CoffeeScript.RESERVED

This commit is contained in:
Michael Ficarra 2010-12-03 18:07:36 -05:00
parent 574f9afa3d
commit fb7498a8ec
4 changed files with 13 additions and 6 deletions

View File

@ -1,8 +1,8 @@
(function() {
var Lexer, compile, fs, lexer, parser, path;
var Lexer, RESERVED, compile, fs, lexer, parser, path, _ref;
fs = require('fs');
path = require('path');
Lexer = require('./lexer').Lexer;
_ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED;
parser = require('./parser').parser;
if (require.extensions) {
require.extensions['.coffee'] = function(module, filename) {
@ -16,6 +16,7 @@
});
}
exports.VERSION = '0.9.5';
exports.RESERVED = RESERVED;
exports.helpers = require('./helpers');
exports.compile = compile = function(code, options) {
if (options == null) {

View File

@ -598,6 +598,7 @@
}
RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'do', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice'];
JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED);
exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS);
IDENTIFIER = /^([$A-Za-z_][$\w]*)([^\n\S]*:(?!:))?/;
NUMBER = /^0x[\da-f]+|^(?:\d+(\.\d+)?|\.\d+)(?:e[+-]?\d+)?/i;
HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/;

View File

@ -6,10 +6,10 @@
# If included on a webpage, it will automatically sniff out, compile, and
# execute all scripts present in `text/coffeescript` tags.
fs = require 'fs'
path = require 'path'
{Lexer} = require './lexer'
{parser} = require './parser'
fs = require 'fs'
path = require 'path'
{Lexer,RESERVED} = require './lexer'
{parser} = require './parser'
# TODO: Remove registerExtension when fully deprecated.
if require.extensions
@ -22,6 +22,9 @@ else if require.registerExtension
# The current CoffeeScript version number.
exports.VERSION = '0.9.5'
# Words that cannot be used as identifiers in CoffeeScript code
exports.RESERVED = RESERVED
# Expose helpers for testing.
exports.helpers = require './helpers'

View File

@ -523,6 +523,8 @@ RESERVED = [
# be used as identifiers or properties.
JS_FORBIDDEN = JS_KEYWORDS.concat RESERVED
exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS)
# Token matching regexes.
IDENTIFIER = /// ^
( [$A-Za-z_][$\w]* )