Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

My understanding is that in Lex/Bison, the lexical analysis is done by lex, the syntaxical by the rules of Bison, and the semantic one by the actions of Bison.

(我的理解是,在Lex / Bison中,词法分析由lex完成,语法分析由Bison规则完成,语义分析由Bison的动作完成。)

Is it then possible to go back from the semantic analysis, ie the actions, to the syntaxical one ?

(那么是否有可能从语义分析(即动作)返回到语法上的动作呢?)

One exemple would be that : suppose I want to be able to detect pseudo-C as "i++", "i=i+1","i=i+2".

(一个示例是:假设我希望能够将伪C检测为“ i ++”,“ i = i + 1”,“ i = i + 2”。)

But I want that "i=i+1" to be reduce as "i++", and "i=i+2" to be a second rule.

(但是我希望将“ i = i + 1”减少为“ i ++”,而将“ i = i + 2”作为第二个规则。)

Is it the possible to do something like that :

(是否可以做这样的事情:)

identifier_plusplus: IDENTIFIER '+' '+'
add:                 IDENTIFIER '=' IDENTIFIER '+' NUMBER {if($1 == $3 && $5 == 1) REDUCE_IN(identifier_plusplus);}

Here, it is not very usefull, but in a case where I use identifier_plusplus in another rule, it could be very powerfull.

(在这里,它不是很有用,但是在我在另一条规则中使用identifier_plusplus的情况下,它可能会非常强大。)

EDIT : An example where it can be usefull would be if I have another rule that catch For loops which increment one by one.

(编辑:一个可能有用的示例是,如果我有另一个规则来捕获一个递增一个的For循环。)

I would like to type something as :

(我想输入以下内容:)

for_one:    FOR '(' IDENTIFIER '=' '0' ';' IDENTIFIER '<' CONST ';' IDENTIFIER PLUSPLUS ')' exprs 

With no care if I wrote i++ or i=i+1.

(不管我写i ++还是i = i + 1。)

Is it more clear now ?

(现在更清楚了吗?)

(please excuse my english...)

((请原谅我的英语...))

Thank you in advance.

(先感谢您。)

  ask by EzrielS translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
423 views
Welcome To Ask or Share your Answers For Others

1 Answer

等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...