yacc&lex-调用C++代码
来源:互联网 发布:网络语言10086什么意思 编辑:程序博客网 时间:2024/06/01 18:00
要点
用lex&yacc命令缺省生成的是C文件,但事实上,仅是文件扩展名表示为C文件。可以用g++或者直接改名为C++就可以在lex&yacc中用C++功能。
代码
%{#include <string>#include <iostream>%}%%[\t ]+ /* white space */[a-zA-Z]+ { std::string word(yytext); std::cout<<"word: "<<word<<std::endl; }[0-9]+ { std::string number(yytext); std::cout<<"number: "<<number<<std::endl; }.|\n {ECHO; /* normal default anyway */ }%%int main(){ std::cout<<"Lex and C++"<<std::endl; yylex(); return 0;}
运行
$ lex test.l $ gcc -o test lex.yy.c -lltest.l:3:10: fatal error: 'string' file not found#include <string> ^1 error generated.$ g++ -o test lex.yy.c -llclang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated$ lslex.yy.c test test.l$ ./test Lex and C++the price is 100 yuan.word: theword: priceword: isnumber: 100word: yuan.^C$ cp lex.yy.c lex.yy.cpp$ g++ -o test lex.yy.cpp -ll$ ./test Lex and C++the price is 100 yuan.word: theword: priceword: isnumber: 100word: yuan.^C$
0 0
- yacc&lex-调用C++代码
- c c++ grammer lex yacc
- 使用 lex 和 yacc 编译代码
- Lex Yacc (四) 实际应用全代码
- Yacc Lex
- lex & yacc
- lex&yacc
- Lex Yacc
- lex &yacc
- yacc & lex
- lex&yacc
- YACC & LEX
- lex yacc
- yacc&lex
- lex && yacc
- Lex & Yacc
- LEX, YACC
- lex yacc
- c语言学习笔记
- 例题:字符串逆序
- svn Cleanup failed to process the following paths错误的解决
- 【LeetCode】#112 #113 #437 Path Sum Series
- 利用iptables给Docker绑定一个外网IP
- yacc&lex-调用C++代码
- 网页通用的测试用例
- ZOJ 3604 Tunnel Network [Prüfer编码与Cayley公式] 【树】
- 腾讯云Ubuntu的jdk安装与环境变量配置
- kotlin
- App测试流程
- PowerDesigner使用教程
- 微服务开发过程中需要注意的若干事项
- 例题:统计字母个数