jsbison icon indicating copy to clipboard operation
jsbison copied to clipboard

bnf需要支持一类特殊的符号,是对受限token的支持,对之后出现的token的描述。

Open acodercc opened this issue 11 years ago • 0 comments

为 https://github.com/takumi4ichi/caliburn 项目的分号补全,以及除法TOKEN和正则TOKEN的区分,以及lookheadno(FUNCTION, {)而增加该功能需求。

比如

program ->
  line;
line ->
  NUMBER ';'
| IDENT [noLineTerminator] '++';
;

可以看出,这个接受以下句子:

123;
abc++;

abc是一个IDENT,但是和下一个token_++_之间,出现了[noLineTerminator],所以执行一些特殊的语法动作,来对自动插入分号的需求进行支持。

该功能从 @jsinjs 中学习。 [div] [noLineTerminator] [lookaheadno{{,function}]

acodercc avatar Dec 13 '14 09:12 acodercc