Re-ordering lexer rules for fewer regex matches / slightly faster lexing.
This commit is contained in:
parent
e020f5849c
commit
800fb81d1b
26
lib/lexer.js
26
lib/lexer.js
|
@ -77,30 +77,30 @@
|
||||||
if (this.identifierToken()) {
|
if (this.identifierToken()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (this.numberToken()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (this.heredocToken()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (this.regexToken()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (this.commentToken()) {
|
if (this.commentToken()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (this.lineToken()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (this.whitespaceToken()) {
|
if (this.whitespaceToken()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (this.jsToken()) {
|
if (this.lineToken()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (this.heredocToken()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (this.stringToken()) {
|
if (this.stringToken()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (this.numberToken()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (this.regexToken()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (this.jsToken()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return this.literalToken();
|
return this.literalToken();
|
||||||
};
|
};
|
||||||
// Tokenizers
|
// Tokenizers
|
||||||
|
|
|
@ -61,14 +61,14 @@ exports.Lexer: class Lexer
|
||||||
# `@literalToken` is the fallback catch-all.
|
# `@literalToken` is the fallback catch-all.
|
||||||
extractNextToken: ->
|
extractNextToken: ->
|
||||||
return if @identifierToken()
|
return if @identifierToken()
|
||||||
return if @numberToken()
|
|
||||||
return if @heredocToken()
|
|
||||||
return if @regexToken()
|
|
||||||
return if @commentToken()
|
return if @commentToken()
|
||||||
return if @lineToken()
|
|
||||||
return if @whitespaceToken()
|
return if @whitespaceToken()
|
||||||
return if @jsToken()
|
return if @lineToken()
|
||||||
|
return if @heredocToken()
|
||||||
return if @stringToken()
|
return if @stringToken()
|
||||||
|
return if @numberToken()
|
||||||
|
return if @regexToken()
|
||||||
|
return if @jsToken()
|
||||||
return @literalToken()
|
return @literalToken()
|
||||||
|
|
||||||
# Tokenizers
|
# Tokenizers
|
||||||
|
|
Loading…
Reference in New Issue