yacc

    0热度

    1回答

    我有一个问题,我的规则无法减少。首先,我想写为了一个Yacc的规则来检测声明: STUDENT_T* pSearch=pHead; 所以我写了如下的规则: struct_initialize: IDENTIFIER '*' IDENTIFIER '=' IDENTIFIER ';'; 然后我把struct_initialize的规则如下: struct_declaration : str

    0热度

    1回答

    的一部分,我是新来使用Flex和野牛我实现了一个简单的计算器。我试图确定输入是否是语法中的一个句子。 例如,如果我输入:A = 2; b = 3;打印a + b; 这将返回:“A = 2; B = 3;打印A + B;是一句” 现在它会怎么做的计算器,但我不关心实际计算我只是想知道输入是否是语法中的一个句子。 我真的不知道如何去这样做。任何帮助或提示将不胜感激。 我的Flex代码是: %{

    0热度

    1回答

    我目前正在编写一个类似Visual Basic的LALR(1)语法,并面对这个特殊的转换/减少冲突,我不知道如何正确解决它。 语法的问题的部分是(请参见EDIT 1和EDIT 2澄清): Expression : IndexExpression | /* other expressions */ IndexExpression : MemberExpression

    0热度

    1回答

    当执行下面的Makefile: # %W% %G% # make and run all the example programs for # lex & yacc, Second Edition CC = gcc -g LIBS = -ly -ll LEX = flex YACC = yacc -dv CFLAGS = -DYYDEBUG=1 all: sql1 # ch

    0热度

    2回答

    我正在尝试读取Flex词法分析器中字符的已知数字(在运行时)。我知道它以CRLF开头,所以我匹配,然后使用yyinput读取literal_length字符。 <EXPECT_LITERAL>"\r\n" { for(int i=0;i<literal_length;i++){ int c= yyinput(yyg); if(c == EOF) break;

    1热度

    1回答

    我写莱克斯/ Yacc的代码来检测的#include < 一些库>或#包括“一些头文件”的#include这是我的代码: 莱克斯代码 %e 1019 %p 2807 %n 371 %k 284 %a 1213 %o 1117 O [0-7] D [0-9] NZ [1-9] L [a-zA-Z_] /***********************/ A [a-zA-Z_

    0热度

    1回答

    我想使用lex/yacc编写我自己的编译器,只有两个代码,我指示它像这样运行(现在没有额外的头文件)。 所以这是我的lex文件(FP.L): %{ #include "FP.tab.h" %} KEYWORD Program|Function|return|if|then|else|while|do|or|and|print PROG "Program" FUNC "Function"

    -1热度

    1回答

    我有一个lex程序如下。我遇到一个动作lex程序 %{ #include<stdio.h> #include<math.h> #include "y.tab.h" %} %% [ \t]+ ; [0-9]+ {yylval = atoi(yytext); return INTEGER;} [-+*/] {return *yytext;} "(" {return *yytext;

    1热度

    1回答

    我是编译器新手,学习如何使用计算器从.txt文件输入多行方程(每行一个方程)。而我正面临着分段错误的问题。 YACC代码: %{ #include <stdio.h> #include <string.h> #define YYSTYPE int /* the attribute type for Yacc's stack */ extern int yylval; /* defined

    0热度

    2回答

    我想从文本文件及其结果显示整个算术表达式,我试着用文件处理选项,但它不工作。 YACC: %{ #include <stdio.h> #include <string.h> #define YYSTYPE int /* the attribute type for Yacc's stack */ extern int yylval; /* defined by lex, holds at