gpt4 book ai didi

c - lex yacc 比较两个字符串

转载 作者:行者123 更新时间:2023-11-30 15:40:16 25 4
gpt4 key购买 nike

我对 lex 和 yacc 非常陌生,我想编写一个非常简单的程序,要求输入字符串,将其存储在变量中,并检查是否再次插入相同的值。可以说:

input1 = 'abc'
input2 = 'def'
input3 = 'ghi'
input4 = 'def'
STOP input2 equals input4

我的 lex 文件的一部分:

%option noyywrap
%{
#include <stdlib.h>
#include <string.h>
%}
alpha [a-zA-Z]
%%
{alpha}* return ID;

我的yacc文件的一部分

%{
# include <stdio.h>
# include <ctype.h>
# include <string.h>
%}

%union {
char* lexeme;
}

%token ID
%%

所有输入都应在 ID token 内匹配。

最佳答案

不确定返回 ID;我会返回 *yytext,其中包含 char* 中的 token 。你其实可以看一下这个简单的calculator example

关于您的问题,您可能需要创建/实现一个 char* 列表来在解析过程中存储每个输入 token ,然后检查当前的 token 是否属于该列表。由于这需要更多的工作,上面的示例(以及所有网站上的示例)应该会有所帮助。

关于c - lex yacc 比较两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21085390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com