Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,描述规则采用正则表达式(regular expression)。
本文使用flex进行编译。

  • 操作步骤

    • 在终端输入以下命令
    • 使用cc命令进行编译
    • 运行文件
  • Shell脚本

操作步骤

在终端输入以下命令

使用flex命令对其进行解释

flex test.l
//generates a new file named "lex.yy.c"

使用cc命令进行编译

//this action would generate a file named a.out which would be used for reading inputs and print outputscc lex.yy.c -ll  

//如果不是在mac上,是用参数-lfl

注意 生成的lex.yy.c编译可能会出现错误

error: non-ASCII characters are not allowed outside of literalsand identifiers

打开lex.yy.c发现自动生成的代码中,双引号“”为中文字符。将其修改为ASCII英文字符后再次编译即可通过。

运行文件

./a.out  //run the file and type in inputs from your command line
1

Shell脚本

该脚本完成了上述所有功能。
运行方式:xxx.sh lex文件名.l 输出文件名.o
Windows系统将-ll替换为-lfl即可使用

#!/bin/bash

if [ $# = 0 ]
thenecho -e "Usage: $0 [Input.l] [Output.o]"exit 1
fi      flex $1
sed -i '' "s/\“/\"/g" lex.yy.c
sed -i '' "s/\”/\"/g" lex.yy.cif [ $# = 2 ]
thencc lex.yy.c -ll -o $2echo "Generated $2!"
else cc lex.yy.c -ll echo "Generated a.out!"
fi./$2

Mac编译运行 Lex文件相关推荐

  1. 命令行编译运行CSharp文件

    命令行编译运行CSharp文件 找到csc.exe所在的路径.如我本机上为"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 在环境变量 ...

  2. winehq-stable-5.0 Download For Mac 在Mac上运行exe文件

    winehq-stable-5.0 Download For Mac 在Mac上运行exe文件 点击下载 (访问密码:312306)

  3. 如何解决命令行编译运行Java文件时报错Could not find or load main class ...

    前言 以前一直用Eclipse来运行Java程序,从未在命令行中编译运行过Java文件.直到最近某次运行别人写的bat文件时,出现"Could not find or load main c ...

  4. cmd编译运行Java文件详解

    ①准备工作 首先用记事本编写HelloWorld.java放至G:\Javaspace路径 public class HelloWorld{ public static void main(Strin ...

  5. idea编译运行单个文件解决办法(已解决)

    idea默认运行单个文件总是会编译其他类,对新手写单个类不是很友好,其他博客的方法也只是删除其他类的bulid,并没有一个删除总的编译方法,按照以下流程就可以让idea运行单个文件 打开运行配置 把当 ...

  6. codeblocks编译运行c++文件显示“不支持的16位应用程序,与64位版本的Windows不兼容”的解决办法

    有一天我想写一个东西来实现一下自己脑子里的思路,编译运行的时候却显示了这个东西 我上网查了很多,有人说应该把腾讯手游助手等腾讯的游戏软件卸载,可是等我卸载后却并没有解决问题. 后来,我突发奇想打开了以 ...

  7. linux 编译运行c文件

    在ubuntu安装gcc 编辑 test.c /* Not stdio.h */ #include <unistd.h>void main() {char str[100];/*Write ...

  8. mac终端运行python文件

    如图,要运行的文件叫做cream01.py,他保存在桌面,路径为/Users/chen/Desktop 第一步:跳转至文件保存的路径下:cd   /Users/chen/Desktop 第二步:运行p ...

  9. Java--Mac系统终端编译运行java文件

    首先声明一下,本博客是建立在Mac电脑上已经安装好了JDK,至于怎么安装JDK百度一下或者参考博客 1.我们先来验证一下是否安装成功,打开终端,输入"java -version"命 ...

最新文章

  1. 互联网产品各阶段的标准流程文档
  2. 在Linux下使用screen使用退出远程终端后程序依然自动进行
  3. 开放报名 | 阿里云 Serverless 研修班走进四川大学
  4. pymongo查询列表元素_散列表:如何实现word编辑器的拼写检查?
  5. makefile例子(经典)
  6. mysql登陆三小时平均值图片_Mysql每小时平均值,间隔从半小时开始
  7. 软件变更控制 - 控制成本溢出
  8. esp8266电池供电方案_普通照明、应急照明、事故照明系统的9种设计方案解读,收藏好!...
  9. git fatal: destination path ‘**‘ already exists and is not an empty directory.解决
  10. 硬盘pe安装红旗linux系统,WinPE 安装操作系统详细图解(图文教程)
  11. 推荐几本英文写作的好书
  12. 中富之命能有多少钱_一般算命的都说中富 请问,褔贵之命,怎么解释,一般算命都会说,富贵命...
  13. 壮游奇迹哪个服务器稳定,壮游奇迹MU官方选哪个区好呢?
  14. 翻译: 人工智能的时代的教育将比上一代富豪的孩子更受益 慕课大规模开放在线课程(MOOC)
  15. 我要减肥~~~~~!!!(信誓旦旦)
  16. Linux C 两种方法实现复制拷贝文件
  17. 科密指纹考勤机B329采集
  18. 【转载】Python遍历pandas数据方法总结
  19. 由于短期理财基金到期的最后一天是按活期利率盘算
  20. 高斯曲线拟合推导过程

热门文章

  1. Linux安装samba
  2. 上线一套 BI 系统真的很贵?
  3. 什么是求实型人格?求实型人格的职业发展
  4. 实验吧——WEB-拐弯抹角
  5. 还原恢复Windows10路径环境变量
  6. 必须走完必经之路,才能走自己想走的路------高考
  7. 4.5-那些漂亮软件是怎么做出来的?为啥自己做的好丑
  8. word排版-章节大写图片题注小写(带章节号:图1.1,图2.1)
  9. 创建自己的Apple ID
  10. vue实现路由权限控制