binnum.y

来自「和YACC一样」· Y 代码 · 共 48 行

Y
48
字号
/* Attribute expression for binary numbers using inherited attributes. */%{#include <stdio.h>void yyerror();int yylex();%}%%Line  : Line BNum($v) '\n' { printf("%.4f\n", $v); }  | error '\n'  | /* empty */  ;BNum(double $v)  : IntPart(0, $i) '.' FracPart(0.5, 0, $f)	{ $v= $i + $f; }  ;	      IntPart(%in int $acc, int $v)  : Bit($b) IntPart(2 * $acc + $b, $v)  | /* empty */ { $v= $acc; }  ;FracPart(%in double $wt, %in double $acc, double $v)  : Bit($b) FracPart($wt/2, $acc + $wt*$b, $v)  | /* empty */ { $v= $acc; }  ;Bit(int $b)  : '0' { $b= 0; }  | '1' { $b= 1; }  ;%%void yyerror(const char *s) {  printf("%s\n", s);}int yylex(){  int c= getchar();  return (c == EOF) ? 0 : c;}int main(){  return yyparse();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?