在编程中,Bison、@1和$1都是常见的符号,用于表示语法分析器中的规则和产生式的符号。它们的区别如下所示:
下面是一个简单的Bison语法规则示例:
expression: NUMBER '+' NUMBER { printf("%d\n", $1 + $3); }
在这个例子中,expression是一个非终结符,表示一个表达式。$1和$3是识别的终结符(即数字),在动作代码中可以使用它们进行计算。
下面是一个示例:
expression: NUMBER { printf("%d\n", @1); }
在这个例子中,当匹配到expression规则时,动作代码会打印出第一个终结符的值。
下面是一个示例:
expression: NUMBER '+' expression { printf("%d\n", $1 + $3); }
在这个例子中,当匹配到expression规则时,动作代码会将第一个数字和expression规则的值相加并打印出结果。
总结:
请注意,上述示例代码只是为了说明概念,并不是可运行的代码。实际使用时,需要根据具体的语法规则和需求进行适当的修改。