在Lex和Yacc中创建评论

时间:2016-05-17 02:52:20

标签: bison flex-lexer yacc lex

如何在Lex和Yacc中发表评论?

到目前为止,我还没有尝试过Yacc,但在Lex中我尝试了/* comment */// comment,但这些都没有编译。我在Mac上,使用内置的Lex和Yacc编译器,(或者可能是X-Code,我不知道)。 Lex或Yacc中的注释的正确语法是什么,或者最好两者都是?

2 个答案:

答案 0 :(得分:2)

任何 C 评论都可以作为Yacc和Lex中程序中任何位置的评论, BUT:

  • 使用Lex或Yacc空白非常重要,因此/* comment */写入您的程序,触摸文本的LHS将不工作!
    • 要使其正常工作,您必须在行的开头添加一个制表符或空格,将其推送到C代码,而不是Lex或Yacc代码。
  • gcc是一个很好的编译器,非常爱你,所以它接受// comment评论,Lex和Yacc并不好。这些评论虽然可以在C程序中使用,但 NOT WORK!

答案 1 :(得分:1)

来自 info flex

  

在定义和规则部分中,任何缩进文本          或%{和%}中的文本被逐字复制到          输出(删除了%{}')。必须出现%{}&          在他们自己的线条上缩小。

在这种情况下,相关文本可以是目标语言的评论。

  

在定义部分(但不在规则部分),          一个未缩进的注释(即以/*开头的行)          也会逐字复制到输出到下一个*/

任何有效的C注释都是代码块中的注释。

yacc 中的评论为/* ... */