Skip to content

Commit

Permalink
used a modified patch made by @vslinko - see cucumber#109
Browse files Browse the repository at this point in the history
  • Loading branch information
bclozel authored and ldegen committed Jan 13, 2014
1 parent b5bd31a commit 6fa8f93
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions lib/cucumber/parser.js
Original file line number Diff line number Diff line change
@@ -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 6fa8f93

Please sign in to comment.