YACC

yacc  $$  translate relation

===============================================================================

bintree.y:22:5: warning: passing argument 2 of ‘bintree’ makes pointer from integer without a cast [enabled by default]
   | IF '(' cond_expr ')'  statement  ELSE  statement   { $$ = bintree("IF_ELSE", $3, $5,$7);}
     ^
In file included from bintree.y:6:0:
bintree.h:22:15: note: expected ‘char *’ but argument is of type ‘YYSTYPE
 struct Node * bintree( char * s, char * cond_s, struct Node * l,struct Node * r);
               ^
bintree.y:22:5: warning: passing argument 3 of ‘bintree’ makes pointer from integer without a cast [enabled by default]
   | IF '(' cond_expr ')'  statement  ELSE  statement   { $$ = bintree("IF_ELSE", $3, $5,$7);}
     ^
In file included from bintree.y:6:0:
bintree.h:22:15: note: expected ‘struct Node *’ but argument is of type ‘YYSTYPE’
 struct Node * bintree( char * s, char * cond_s, struct Node * l,struct Node * r);
=================================================================================

typedef  int YYSTYPE;

exern YYSTYPE yylval;

$$  default  to be YYSTYPE, if we have more complex struction, then we need to redefine the YYSTYPE;

lex&yacc3的更多相关文章

  1. Lex使用指南

    Lex是由美国Bell实验室M.Lesk等人用C语言开发的一种词法分析器自动生成工具,它提供一种供开发者编写词法规则(正规式等)的语言(Lex语言)以及这种语言的翻译器(这种翻译器将Lex语言编写的规 ...

  2. Lex&Yacc Parser错误发生后再次parser之前恢复初始状态

    使用lex yacc 对文件进行parser时,如果文件内容有错,parser报错,然后你修改了文件,再次读入文件进行parser,如果你不是重启程序进行parser,那就需要对做些处理了. &quo ...

  3. lex中yyrestart()的使用

    使用lex&yacc时,如果文件有错,parse停止. "每次调用yyparse(),语法分析器会忘记上次分析可能拥有的任何状态而重新开始分析.这不像lex产生的词法分析器的yyle ...

  4. 从零到有的lex学习

    最近总是在忙各种事情,毕业设计要求写一个基于云计算的java语法分析器.其实选题的时候就没有底,现在什么都不懂,只有从零开始.我与lex和yacc的缘分应该是在编译原理课程上,但是当时有很多门课,所以 ...

  5. PERL/LEX/YACC技术实现文本解析--XML解析

    继周六的p_enum.pl后,再来一篇说说我用perl做的lex,yacc工具.之前说了,我学习lex和yacc的最初动机是为了做个C语言解释器的SHELL:但后来工作中的实际需要也是制作perl版l ...

  6. 编译原理(简单自动词法分析器LEX)

    编译原理(简单自动词法分析器LEX)源程序下载地址:  http://files.cnblogs.com/files/hujunzheng/%E6%B1%87%E7%BC%96%E5%8E%9F%E7 ...

  7. 词法分析程序 LEX和VC6整合使用的一个简单例子

    词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...

  8. PHP Lex Engine Sourcecode Analysis(undone)

    catalog . PHP词法解析引擎Lex简介 . PHP标签解析 1. PHP词法解析引擎Lex简介 Relevant Link: 2. PHP标签解析 \php-5.4.41\Zend\zend ...

  9. 《自制编程语言》笔记:使用yacc与lex制作简单计算器

    1.代码 1.1)test.l 1.2)test.y 1.3)Makefile (因为是在linux环境下,所以使用了Makefile) 2.编译与运行 2.1)编译 2.2)运行 1.代码(也可以在 ...

随机推荐

  1. delphi Components[i]清除所有edit控件中的内容

    (* 一般的清空combobox方法 combobox1.clear; ... combobox9.clear; *)   procedure TForm1.Button1Click(Sender: ...

  2. oc-06-无参方法的调用

    // 12-[掌握]无参方法声明实现及调用 #import <Foundation/Foundation.h> //类的声明 @interface Person : NSObject { ...

  3. Why Python is Slow

    Why Python is Slow: Looking Under the Hood https://jakevdp.github.io/blog/2014/05/09/why-python-is-s ...

  4. yum服务器设置

    转自:http://blog.chinaunix.net/uid-22141042-id-1789605.html 不得不说,RedHat的确很邪恶,如果我们直接用他自带的系统碟做YUM源的话,总是会 ...

  5. No identifier specified for entity

    主键问题   使用hibernate的e-r映射pojo类的时候遇到org.hibernate.AnnotationException: No identifier specified for ent ...

  6. BootStrap2学习日记9---文本框的前缀和后缀

    先来看一段代码: <form method="" action=""> <div class="input-append input ...

  7. Maven学习小结(五 pom.xml详解[转])

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. The Famous Clock

    描述 Mr. B, Mr. G and Mr. M are now in Warsaw, Poland, for the 2012’s ACM-ICPC World Finals Contest. T ...

  9. SQL Server select into/bulkcopy用法

    select into/bulkcopy用法 一.背景 如何提升批量插入效率,各位看官,瞧好了! exec sys.sp_dboption '数据库名','select into/bulkcopy', ...

  10. 【技巧性(+递归运用)】UVa 1596 - Bug Hunt

    In this problem, we consider a simple programming language that has only declarations of onedimensio ...