flex & bison学习(二)

简介: flex也可以从外部文本文件中读入要解析的文本,用yyrestart(f),可以打开多个文件并循环打开。flex也可以从外部文本文件中读入要解析的文本,用yyrestart(f),可以打开多个文件并循环打开。

flex也可以从外部文本文件中读入要解析的文本,用yyrestart(f),可以打开多个文件
并循环打开。
flex也可以从外部文本文件中读入要解析的文本,用yyrestart(f),可以打开多个文件
并循环打开。
另外%option noyywrap,使用默认的flex设置(yywrap()在读完一个输入时调用)


/* Companion source code for "flex & bison", published by O'Reilly
 * Media, ISBN 978-0-596-15597-1
 * Copyright (c) 2009, Taughannock Networks. All rights reserved.
 * See the README file for license conditions and contact info.
 * $Header: /home/johnl/flnb/code/RCS/fb2-2.l,v 2.1 2009/11/08 02:53:18 johnl Exp $
 */

/* fb2-2 read several files */

%option noyywrap

%{
int chars = 0;
int words = 0;
int lines = 0;

int totchars = 0;
int totwords = 0;
int totlines = 0;
%}

%%

[a-zA-Z]+    { words++; chars += strlen(yytext); }
\n        { chars++; lines++; }
.        { chars++; }

%%

main(int argc, char **argv)
{
  int i;

  if(argc < 2) { /* just read stdin */
    yylex();
    printf("%8d%8d%8d\n", lines, words, chars);
    return 0;
  }

  for(i = 1; i < argc; i++) {
    FILE *f = fopen(argv[i], "r");
 
    if(!f) {
      perror(argv[1]);
      return (1);
    }
    yyrestart(f);
    yylex();
    fclose(f);
    printf("%8d%8d%8d %s\n", lines, words, chars, argv[i]);
    totchars += chars; chars = 0;
    totwords += words; words = 0;
    totlines += lines; lines = 0;
  }
  if(argc > 1)
    printf("%8d%8d%8d total\n", totlines, totwords, totchars);
  return 0;
}

相关文章
|
9月前
|
Ubuntu
ubuntu源码安装flex和bison
ubuntu源码安装flex和bison
368 0
|
Ubuntu
Ubuntu12.04(32bit)下安装bison和flex
Ubuntu12.04(32bit)下安装bison和flex
567 0
|
内存技术 开发工具 数据可视化
|
XML JavaScript 数据格式
|
XML JavaScript Java
|
自然语言处理 Unix SQL
OpenCASCADE Expression Interpreter by Flex & Bison
OpenCASCADE Expression Interpreter by Flex & Bison eryar@163.com Abstract. OpenCASCADE provide data structure of any expression, relation or function used in mathematics.
1313 0
|
Web App开发 JavaScript Java
flex学习
早就想弄个flex的东西了...总是没有心情弄..有的时候项目让人心力憔悴...   最近,,想着是破罐子破摔..弄点别的东西...换个心情..然后在去弄下项目...(已经快接近尾声了)   总是在开发的第一线..技术上面什么都弄..公司里面还要应付其他同事的问题...   能帮助别人就帮助吧..本人也没有别的什么有点..就代码上面略有研究.(投入的时间多了自然就有所领悟了)   1,先弄个s
1285 0
|
编译器
FlexPaper源码编译
FlexPaper是一个Flex中直接浏览PDF文件的控件,例如百度文库这种形式,我们可以对FlexPaper的源码进行修改,完成我们的需求。 首先下载FlexPaper的源码   下载点击我 一、导入Flex库项目文件 将flexswcnew.fxp 文件导入flex中。
817 0
Flex学习笔记(Day 2)
LineChart ViewStack控件 //一种方法 var url:String; url = "http://www.
692 0

热门文章

最新文章