您好我一直在尝试创建一个简单的后缀计算器。
以下是片段:
    %token NUM
    %left '-' '+'
    %left '*' '/'
    %left NEG     /* negation--unary minus */
    %right '^'    /* exponentiation        */
         %% /* Grammar rules and actions follow.  */
    input:
           /* empty */
         | input line
         ;
         line:
           '\n'
         | exp '\n'      { printf ("%.10g\n", $1); }
         ;
         exp:
           NUM           { $$ = $1;           }
         | '-' exp  %prec NEG { $$ = -$2;     }
         | exp exp '+'   { $$ = $1 + $2;      }
         | exp exp '-'   { $$ = $1 - $2;      }
         | exp exp '*'   { $$ = $1 * $2;      }
         | exp exp '/'   { $$ = $1 / $2;      }
         | exp exp '^'   { $$ = pow ($1, $2); }  /* Exponentiation */
         | exp 'n'       { $$ = -$1;          }  /* Unary minus    */
         ;
         %%
   1 2 + 3 -      =>                   0 \n
        1 -2 -      =>                 3 \n
        2 3e+2 + 3 -      =>          299 \n
        1 2 3 + -           =>         -4 \n
只有,1 +2 - =>:语法错误!!为什么会这样?我应该怎么办 ?我什至尝试创建一个一元 + 运算符,但它没有意义。