借助自动生成工具LEX和YACC完成句子识别。

词法分析:cifa.l

%{
/** We now build a lexical analyzer to be used by a higher-level parser.*/#include "yufa.tab.h" /* token codes from the parser */#define LOOKUP 0 /* default - not a defined word type. */int state; %}%%\n { state = LOOKUP; }\.\n {   state = LOOKUP;return 0; /* end of sentence */}^verb    { state = VERB; }
^adj    { state = ADJECTIVE; }
^adv    { state = ADVERB; }
^noun   { state = NOUN; }
^prep   { state = PREPOSITION; }
^pron   { state = PRONOUN; }
^conj   { state = CONJUNCTION; }[a-zA-Z]+ { if(state != LOOKUP) {add_word(state, yytext);} else {switch(lookup_word(yytext)) {case VERB:return(VERB);case ADJECTIVE:return(ADJECTIVE);case ADVERB:return(ADVERB);case NOUN:return(NOUN);case PREPOSITION:return(PREPOSITION);case PRONOUN:return(PRONOUN);case CONJU

Lex和Yacc实现句子识别相关推荐

  1. LEX和YACC的使用

     Lex自动地表示把输入串词法结构的正规式及相应的动作转换成一个宿主语言的程序,即词法分析程序,它有一个固定的名字yyler,在这里yyler是一个C语言的程序. Yylex将识别出输入串中的词形 ...

  2. 手把手教程-lex与yacc/flex与bison入门(一)(使用windows环境)

    前言 1.文章诞生的契机 在计算机学习中,我们有时可能会想到自制一门属于自己的编程语言,此时选择lex与yacc来生成词法分析器与语法分析器是非常不错的选择.然而,这两个工具虽然用起来简单,但对于新手 ...

  3. Lex 与 Yacc 介绍(Ashish Bansal )

    Lex 与 Yacc 介绍 转贴自http://www-900.ibm.com/developerWorks/cn/linux/sdk/lex/index.shtml Ashish Bansal 软件 ...

  4. lex和yacc环境配置

    lex和yacc的使用很简单,但环境配置却是各种问题,本章说明lex和yacc在windows下的环境配置. 软件需求: 系统 win7-64位(win7-32, win8, win10全部通过) c ...

  5. Lex和Yacc应用方法(一).初识Lex

    Lex和Yacc应用方法(一).初识Lex 草木瓜  20070301 Lex(Lexical Analyzar 词法分析生成器),Yacc(Yet Another Compiler Compiler ...

  6. Windows下lex 与 yacc的使用

     Windows下lex 与 yacc的使用 首先 下载下载flex和bison.网址是http://pan.baidu.com/s/1dDlfiW5 选择下载就好了,下载后解压到你电脑中的任一盘中. ...

  7. LEX和YACC的使用(例子)

    1.简单C语言的词法分析程序; %{ #include<stdio.h> #include<stdlib.h> #include<ctype.h> #include ...

  8. 编译原理 LL1文法的判断和句子识别

    编译原理 LL1文法的判断和句子识别 LL1文法概述 点击查看百度百科 对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的 产生式A->α|β 满足下列条件: ...

  9. 编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

    目录 题目 1.首先需要有一个flex.exe文件 2.在这个文件中写.l文件 3.win+r打开cmd命令 (1)进入flex.exe文件所在文件夹 (2)使用dir命令查看目录中的文件 4.生成l ...

  10. Lex和Yacc应用方法(二).再识Lex与Yacc

    Lex和Yacc应用方法(二).再识Lex与Yacc 草木瓜  20070314 早在二十世记七十年代之前,编写编译器一直是一个非常费时的工作.但到了1975这 一年这一切却发生了重大转变,首先Ste ...

最新文章

  1. Linux 学习之创建,删除文件和文件夹命令
  2. Java时间对比------实际时间和设置时间对比
  3. java获取2017年第39周_java中怎么样取出39周的每周开始时间和每周结束时间?
  4. 初二物理模型有哪些_初二是成绩下滑的高危期,做好这5点成绩涨涨涨!(附全学科提升技巧,家长转给孩子!)...
  5. yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
  6. hive 的条件判断(if、coalesce、case)
  7. mysql替换sql中rank函数_MySQL sql Rank()函数实现
  8. 201621123003《Java程序设计》第一周学习总结
  9. 重装Windows后修复Linux引导
  10. java面向对象课件_《JAVA面向对象基础》PPT课件.ppt
  11. 方法的创建、重载及递归调用
  12. html中怎样滚动图片,CSS如何实现滚动的图片栏(代码实例)
  13. IOS 开发学习29 Socket框架 AsynSocket的使用
  14. 第22章 常用存储器介绍
  15. 强制横屏java_Android强制设定横屏时,SurfaceView一直黑屏
  16. html图片闪光效果,CSS3实现一个效果酷炫的闪光特效代码
  17. 和平精英分数计算机制,和平精英掉分机制怎么计算
  18. 虚拟化系统(XenServer,ESXi)-XenServer
  19. C语言读写ini、json、csv文件
  20. 娱乐 | 14个简单、有趣、好玩的Linux命令

热门文章

  1. difference between a Tensor and a Variable
  2. Qt 应用程序图标设置
  3. 添加本地cdrom到RHEL yum 源
  4. 与cache相关的一些问题和思考
  5. 浅谈Tomcat接收到一个请求后在其内部的执行流程(源码)
  6. 相机标定原理介绍(一)
  7. android信息实现,Android 信息分享实现
  8. 考研数学线上笔记(三):凯哥定积分、棍哥二重积分计算系列课程
  9. web安全之信息收集
  10. Catfish(鲶鱼) CMS博客 php源码超级简洁!可塑性强,体积小省流,三分钟下载安装