I am trying to get kyuri up and running, but am experiencing problems with the most basic example.
prokls@cratch ~/kyuri-test % cat test.feature
Feature: Addition
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
prokls@cratch ~/kyuri-test % ./node_modules/kyuri/bin/kyuri test.feature
/home/prokls/kyuri-test/node_modules/kyuri/lib/kyuri/parser.js:407
throw new Error('Unexpected token "' + token[0] + '" at line ' + token[2
^
Error: Unexpected token "SENTENCE" at line 1
at Object.Parser.checkToken (/home/prokls/kyuri-test/node_modules/kyuri/lib/kyuri/parser.js:407:13)
at Object.Parser.parse (/home/prokls/kyuri-test/node_modules/kyuri/lib/kyuri/parser.js:391:14)
at Object.exports.parse (/home/prokls/kyuri-test/node_modules/kyuri/lib/kyuri/core.js:59:17)
at /home/prokls/kyuri-test/node_modules/kyuri/bin/kyuri:91:27
at Array.forEach (native)
at complete (/home/prokls/kyuri-test/node_modules/kyuri/bin/kyuri:85:9)
at Array.forEach (native)
at Object.<anonymous> (/home/prokls/kyuri-test/node_modules/kyuri/bin/kyuri:70:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
prokls@cratch ~/kyuri-test %
So I looked into node_modules/kyuri/lib/kyuri/parser.js and printed token and this.current.transitions.
Parser.prototype = {
parse: function (tokens) {
this.tokens = tokens;
this.ast = {};
this.isPystring = false;
this.hasTag = false;
this.tags = [];
this.states = Object.create(_states);
this.current = this.states['start'];
this.last = null;
while (this.tokens.length > 0) {
var token = this.tokens.shift();
if (token[0] === 'COMMENT') {
// Ignore comments in parsing for now.
// Remark: What would comments look like in generated code?
}
else if (token[0] === 'PYSTRING') {
this.checkPystring(token);
}
else if (token[0] === 'TAG') {
this.checkTag(token);
}
else {
console.log(token);
this.checkToken(token);
this.last = token;
}
}
return this.ast;
},
checkToken: function (token) {
var next = Object.keys(this.current.transitions);
console.log(this.current.transitions);
if (next.indexOf(token[0]) !== -1) {
this.checkTransition(token, this.current.transitions[token[0]]);
}
else {
throw new Error('Unexpected token "' + token[0] + '" at line ' + token[2]);
}
},
...
}
Hi,
I am trying to get kyuri up and running, but am experiencing problems with the most basic example.
So I looked into
node_modules/kyuri/lib/kyuri/parser.js
and printedtoken
andthis.current.transitions
.This gives me
So the transition table does not contain a SENTENCE, which is really strange.
I hope you guys can help me out here :-)