社区
C语言
帖子详情
语法分析器的设计与实现程序(c语言) 词法分析器的设计与实现程序(c语言)
qyw7
2002-06-07 04:09:24
赶快
...全文
679
4
打赏
收藏
语法分析器的设计与实现程序(c语言) 词法分析器的设计与实现程序(c语言)
赶快
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
joekol
2002-06-10
打赏
举报
回复
D [0-9]
L [a-zA-Z]
H [a-f A-F 0-9]
E [Ee][+-]?{D}+
FS (f|F|l|L)
IS (u|U|l|L)*
%{
#include<stdio.h>
#include"y.tab.h"
void count();
%}
%%
"/*" {comment();}
"auto" {count(); return(AUTO);}
"break" {count(); return(BREAK);}
"case" {count(); return(CASE);}
"char" {count(); return(CHAR);}
"const" {count(); return(CONST);}
"continue" {count(); return(CONTINUE);}
"default" {count(); return(DEFAULT);}
"do" {count(); return(DO);}
"double" {count(); return(DOUBLE);}
"else" {count(); return(ELSE);}
"enum" {count(); return(ENUM);}
"extern" {count(); return(EXTERN);}
"float" {count(); return(FLOAT);}
"for" {count(); return(FOR);}
"goto" {count(); return(GOTO);}
"if" {count(); return(IF);}
"int" {count(); return(INT);}
"long" {count(); return(LONG);}
"reister" {count(); return(REISTER);}
"return" {count(); return(RETURN);}
"short" {count(); return(SHORT);}
"signed" {count(); return(SIGNED);}
"sizerof" {count(); return(SIZEROF);}
"static" {count(); return(STATIC);}
"struct" {count(); return(STRUCT);}
"switch" {count(); return(SWITCH);}
"typedef" {count(); return(TYPEDEF);}
"union" {count(); return(UNION);}
"unsigned" {count(); return(UNSIGNED);}
"void" {count(); return(VOID);}
"volatile" {count();return(VOLATILE);}
"write"{ count();return(write)}
""{l}({L}|{D})*{count();return(check type(1);}
0[xX]{H}{IS}?{count();return(CONSTANT);}
0{D}+{IS}?{count();return(CONSTANT);}
{D}+{IS}? {count();return(CONSTANT);}
L?'(\\.|[^\\']+' {count();return(CONSTANT);}
{D}+{E}{FS}? {count();return(CONSTANT);}
{D]*"."{D}+({E})?{FS}?{count();return(CONSTANT);}
{D]*"."{D}*({E})?{FS}?{count();return(CONSTANT);}
L?'(\\.|[^\\']*' {count();return(STRING-LITERAL);}
"..."{count();return(LLIPSIS);}
">>=" {count();return(RIGHT-ASSIGN);}
"<<="{count();return(LEFT-ASSIGN);}
"+="{count();return(ADD-ASSIGN);}
"-="{count();return(SUB-ASSIGN);}
"*="{count();return(MUL-ASSIGN);}
"/="{count();return(DIV-ASSIGN);}
"%="{count();return(MOD-ASSIGN);}
"&="{count();return(AND-ASSIGN);}
"^="{count();return(XOR-ASSIGN);}
"|="{count();return(OR-ASSIGN);}
">>"{count();return(RIGHT-OP);}
"<<"{count();return(LEFT-OP);}
"++"{count();return(INC-OP);}
"--"{count();return(DEC-OP);}
"->"{count();return(PIR-OP);}
"&&"{count();return(AND-OP);}
"||"{count();return(OR-OP);}
"<="{count();return(LE-OP);}
">="{count();return(GE-OP);}
"=="{count();return(EQ-OP);}
"!="{count();return(NE-OP);}
";"{count();return(';');}
("{"|"<%"){count();return('{');}
("}"|"%>"){count();return('}');}
" "{count();return(' ');}
":"{count();return(':');}
"="{count();return('=');}
"("{count();return('(');}
")"{count();return(')');}
("["|"<%"){count();return('[');}
("]"|"%>"){count();return(']');}
"."{count();return('.');}
"&"{count();return('&');}
"!"{count();return('!');}
"~"{count();return('~');}
"-"{count();return('-');}
"+"{count();return('+');}
"*"{count();return('*');}
"/"{count();return('/');}
"%"{count();return('%');}
"<"{count();return('<');}
">"{count();return('>');}
"^"{count();return('^');}
"|"{count();return('|');}
"?"{count();return('?');}
[\t\v\n\f]{count();}
. {/*ignore bad characters*/}
yywrap()
{return(|);}
comment()
{
char( c1)
loop:
while ((c=input()) !='*' && c!=0)
putchar(c);
if ((c1=input())!='/' && (!=0)
{
unput(c1);
goto loop;
}
if (c!=0)
putchar(c1);
}
int column=0;
void count()
{
int;
for (i=0;yytext[i]!='\0';i++)
if(yytext[i]=='\n')
column=0;
else if(yytext[i]=='\t')
column+=8-(column%8);
else
column++;
ECHO;
}
int check_type()
{
return(IPENTIFIER);}
ritch
2002-06-07
打赏
举报
回复
建议:我用C++做过,C差不多,词法分析就是找关键字,而语法分析我则是用最简单的递归下降法,你去找有关编译原理的书。
ritch
2002-06-07
打赏
举报
回复
建议:我用C++做过,C差不多,词法分析就是找关键字,而语法分析我则是用最简单的递归下降法,你去找有关编译原理的书。
cycker
2002-06-07
打赏
举报
回复
你去找本书《C语言编程实践及实例荟萃》
编译原理
词法分析器
源
程序
C语言
实现
编译原理
词法分析器
源
程序
C语言
实现
本资源是一个使用
C语言
实现
的编译原理
词法分析器
源
程序
,主要功能是对输入的源
程序
进行词法分析,识别出关键字、标识符、数字等 token,并将其输出。 1. 编译原理 编译原理是...
C语言
词法分析器
和
C语言
语法分析器
编译原理课程
设计
报告书.doc
知识点1:
C语言
词法分析器
的
设计
与
实现
* 熟悉
C语言
词法:了解
C语言
的保留字、符号、标识符和关键字的定义和使用。 * 掌握构造DFA的过程:掌握Deterministic Finite Automaton(确定性有限自动机)的
设计
和
实现
,...
词法分析器
的
设计
与
实现
词法分析器
的
设计
与
实现
词法分析器
是编译器的组成部分,负责将源代码分解成单词符号,以便后续的语法分析和语义分析。
设计
和
实现
词法分析器
是编译原理和编译技术的重要组成部分。 正规式 正规式是描述语言结构的...
词法分析器
C语言
编写(附实验报告)
词法分析器
,也称为扫描器或词法分析...在这个实验中,你可以学习到如何使用
C语言
来处理文本,如何
设计
和
实现
状态机,以及如何调试和优化
词法分析器
。这样的实践对于理解编译器的工作原理和提高编程技能都非常有益。
C语言
开发课程
设计
词法分析器
源代码.zip
C语言
开发课程
设计
词法分析器
源代码介绍 课程
设计
:
词法分析器
; 实验1:词法分析实验 实验2:语法分析实验 课程
设计
设计
任务: 使用词法分析的自动生成工具 Flex 生成 C/C++语言的
词法分析器
,当输入C/C++源代码...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章