我正在嘗試使用Jison。Jison忽略我的一個規則
這裏是我的語法:
var grammar = {
lex:{
rules:[
["\\s+", ""],
["then", "return 'newline';"],
["goto", "return 'goto';"],
["http[^\\s]*", "return 'url';"],
["search", "return 'search';"],
["should_exist", "return 'exist';"],
//["#(.)*", "return 'elementById';"],
//["$", "return 'EOF';"]
]
},
bnf:{
lines:[
['lines line', "console.log('big expression is ',$3); return ['l2',$1, $2];"],
['line', "console.log('expression is ',$1); return ['l1',$1]"],
],
line:[
["line newline", "console.log('line newline', $1); $$ = $1"],
["goto url", "console.log('goto', $2); $$ = {cmd:'goto', url: $2 } "],
["elementById exist", "$$ = {cmd:'assert', elId: $1} "]
]
}
};
當我嘗試解析goto http://www.google.com then goto http://www.bing.com
我只得到[ 'l1', { cmd: 'goto', url: 'http://www.google.com' } ]
返回。
我期待得到兩個goto命令返回。
任何幫助我搞清楚我的語法?
嚴重的是,這是一個下一級響應。感謝您爲此付出了時間。 – Micah