flex-bison简易计算器 新手问题

问题描述

bison简易计算器 新手问题

最近看了flex bison,然后这个计算器结果一直是0,为什么。

这是1.l:
%{
# include "2.tab.h"
%}
%%
"+"         { return ADD; }
"-"         { return SUB; }
"*"         { return MUL; }
"/"         { return DIV; }
"|"         { return ABS; }
[0-9]+  {yylval=atoi(yytext); return NUMBER;}
 t     {/* ignore whitespace */}
.       {printf("character %cn",*yytext);}
n      {return EOL;}

%%
int yywrap(void){
   return 0;
}

%{
#include <stdio.h>
int yylex (void);
void yyerror (char const *);
%}
/* declare tokens */
%token NUMBER
%token ADD SUB MUL DIV ABS
%token EOL
%%
calclist: /* nothing */
| calclist exp EOL { printf("= %dn", $1); }
;
exp: factor
| exp ADD factor { $$ = $1 + $3; }
| exp SUB factor { $$ = $1 - $3; }
;
factor: term
| factor MUL term { $$ = $1 * $3; }
| factor DIV term { $$ = $1 / $3; }
;
term: NUMBER
| ABS term { $$ = $2 >= 0? $2 : - $2; }
;
%%
main(int argc, char **argv)
{
yyparse();
}
void yyerror(char const *s)
{
fprintf(stderr, "error: %sn", s);
}

解决方案

http://blog.chinaunix.net/uid-24774106-id-3566855.html

时间: 2024-08-03 22:05:12

flex-bison简易计算器 新手问题的相关文章

c语言简易计算器小白问题

问题描述 c语言简易计算器小白问题 #include float fun1(float a,float b) { float c; c=a+b; return c; } float fun2(float a,float b) { float c; c=a-b; return c; } float fun3(float a,float b) { float c; c=a*b; return c; } float fun4(float a,float b) { float c; c=a/b; ret

OpenCASCADE Expression Interpreter by Flex &amp; Bison

OpenCASCADE Expression Interpreter by Flex & Bison eryar@163.com Abstract. OpenCASCADE provide data structure of any expression, relation or function used in mathematics. Flex and Bison are tools for building programs that handle structured input. Th

语言-用C51编写单片机程序实现10以内的加减乘除的简易计算器

问题描述 用C51编写单片机程序实现10以内的加减乘除的简易计算器 5C 运行80C51单片机C51语言编写程序,在51实验小系统上实现"十以内的简易计算器",即:定义51实验小系统上的按键分别为0-9数字键.'+'."-""*""/"'='.退格等功能键:识别相关按键,按照十以内加法的正确逻辑在数码管上显示按键对应的信息,并完成加法运算,在数码管上显示加法结果.实验内容两个层次--层次一:加法的结果在十以内:层次二:两个加数

界面-java 简易计算器,最后得数不能出现,求大神帮忙

问题描述 java 简易计算器,最后得数不能出现,求大神帮忙 (1)编写一个简易计算器程序,其界面如下图所示: (2)当按下"+"按钮时,两个数值文本框之间应显示"+"号,同时相加结果显示在第三个文本框内(如下图所示).类似处理"-"."*"和"/"按钮. 现在第二步能够出现加号 就是不能正确运算.如下代码,注释的地方为什么不能运行,该怎么做才能做到当按下加的按钮b1时,同时出现加号和得数?这里的tf和tf

java代码-我用java写了一个简易计算器的程序,但是有时候结果不正确

问题描述 我用java写了一个简易计算器的程序,但是有时候结果不正确 就是有时候计算结果后面会显示很多9或者0 ,比如计算8.3-2.1时,请问大神怎么解决啊? 我是菜菜鸟,程序如下: //Calculator.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame { private JPanel p1=new JPanel();

android-小菜Android初次做简易计算器,不知道问题出在哪里?

问题描述 小菜Android初次做简易计算器,不知道问题出在哪里? del和c按钮 点起来没有反应,但是就是找不出问题在哪~~求指点~~ 代码如下: package com.example.calculaterdemo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.w

php问题-简易计算器错了不知怎么修改,求解答 谢谢

问题描述 简易计算器错了不知怎么修改,求解答 谢谢 请输入第一个值: 请输入第二个值: 请选择运算符:+-*/ <?php function __getresult(){ $num1=$_POST['num1']; $num2=$_POST['num2']; $operator=$_POST['operator']; $res=0; if($operator=="+"){ $res="num1+num2"; }else if (operator=="

javascript实现简易计算器的代码_javascript技巧

今天闲来无聊,想写点什么,突然想到用javascript写一个计算器.程序还存在很多的Bug,先在这里记录一下,以后慢慢更正. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.or

基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)_jquery

之前发布了一款简易的计算器,今天做了一下修改,添加了键盘监听事件,不用再用鼠标点点点啦 JS代码: var yunSuan = 0;// 运算符号,0-无运算;1-加法;2-减法;3-乘法;4-除法 var change = 0;// 属于运算符后需要清空上一数值 var num1 = 0;// 运算第一个数据 var num2 = 0;// 运算第二个数据 var cunChuValue = 0;// 存储的数值 $(function() { $(".number").click(f