Skip to content

Commit

Permalink
used a modified patch made by @vslinko - see #109
Browse files Browse the repository at this point in the history
  • Loading branch information
bclozel committed Sep 2, 2013
1 parent 20b3919 commit a8ce515
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions lib/cucumber/parser.js
@@ -1,6 +1,5 @@
var Parser = function(featureSources, astFilter) {
var Gherkin = require('gherkin');
var GherkinLexer = require('gherkin/lib/gherkin/lexer/en');
var Cucumber = require('../cucumber');

var features = Cucumber.Ast.Features();
Expand All @@ -9,13 +8,22 @@ var Parser = function(featureSources, astFilter) {

var self = {
parse: function parse() {
var eventHandler = self.getEventHandlers();
var lexer = new GherkinLexer(self.getEventHandlers());
var lexers = {};
var lexer = function (lang) {
if (!(lang in lexers)) {
lexers[lang] = new (Gherkin.Lexer(lang))(self.getEventHandlers());
}

return lexers[lang];
};

for (i in featureSources) {
var currentSourceUri = featureSources[i][Parser.FEATURE_NAME_SOURCE_PAIR_URI_INDEX];
var featureSource = featureSources[i][Parser.FEATURE_NAME_SOURCE_PAIR_SOURCE_INDEX];
self.setCurrentSourceUri(currentSourceUri);
lexer.scan(featureSource);
var languageMatch = /^# language: ([a-z_]*)/.exec(featureSource.toString());
var language = languageMatch == null ? 'en' : languageMatch[1];
lexer(language).scan(featureSource);
}
return features;
},
Expand Down

0 comments on commit a8ce515

Please sign in to comment.