flex-lexer

    0热度

    1回答

    我刚刚开始使用lex编程。第一项任务是从文件中分离元音和辅音。我写的元音规则是 - [ aeiouAEIOU ] {return VOWEL};对于辅音来说,编写代码将会非常繁琐 - [b-dB-D.....]。有没有类似{alphabets} - {unwanted chars}的方法?

    0热度

    1回答

    我试图在从flex发送的野牛中打印令牌值,但由于某些原因,在某些情况下打印的值是垃圾。 法代码: \".*\" { std::string* s1 = new std::string(yytext); std::string s2 = *s1; std::string s3 = s2.substr(1,s2.size() - 2); yylval.s = &s3;

    0热度

    1回答

    我想明白为什么野牛以下规则 stmt: declaration { ... } | assignment { ... } | exp { ... } | ID ';' <-- this rule { ... fprintf(stderr, "\n my id is '%s'", $1);

    -1热度

    1回答

    我正在尝试为我自己的迷你语言构建一个解析器,然后由YACC自己将它翻译成C++。 问题是,YACC正在读取输入的第一行以及输入的第二行中的第一个标记,并将其与相应的规则进行匹配,而它应该只读取第一行输入中的标记以及与相应的规则匹配它 我的输入文件是: print "hello" a = 10 print a 莱克斯文件: %{ #include <stdio.h> #i

    0热度

    1回答

    我在修复语法中的移位减少冲突时遇到问题。我尝试添加-v来读取问题的输出,它引导我进入状态0,并提到我的INT和FLOAT被规则9简化为variable_definitions。我看不到冲突,并且无法找到解决方案。 %{ #include <stdio.h> #include <stdlib.h> %} %token INT FLOAT %token ADDOP MULOP INCOP

    0热度

    1回答

    我有ORDER BY DESC(?year)其中?year可以是任何东西,接着一个问号(?)如?名?地址等我都试过ORDER BY DESC\(\?[a-z]+\)捕获整个字符串作为ORDER BY DESC(?year)线但不工作。 法文件: %{ #include <cstdio> #include <iostream> #include "grammar.tab.h" %} %o

    -1热度

    1回答

    我正在写一个flex/bison程序,我面临着很多错误。即使我认为可能很容易理解这些错误,我也没有在网上找到任何关于这些错误的答案。 这里是我的代码法: %{ #include "my_type.hpp" #include "bison.tab.h" %} /* ... */ %% {int} { yylval.val=strdup(yytext); return(

    0热度

    1回答

    我对Flex yyunput行为有所了解。 我要放回一些charackters 对于为例: 我的扫描仪发现CALL {空间} {CC} cc N?Z|N?C|P[OE]?|M %% CALL{blank}{cc} {BEGIN CON; return yy::ez80asm_parser::make_CALL(loc);} CALL{mmode}{blank}{cc} {BEGIN

    0热度

    1回答

    为什么我必须在以下语法片段中明确使用$<nVal>4? 我以为%type <nVal> expr行会删除需要,所以我可以简单地把$4? 难道不可以使用expr的不同定义,以便我可以吗? %union { int nVal; char *pszVal; } %token <nVal> tkNUMBER %token <pszVal> tkIDENT %type <nV

    0热度

    2回答

    我一直在使用flex和bison来制作一个小型计算器。我的文件如下: bisonFile.y %{ #include <stdio.h> %} /* declare tokens */ %token NUMBER %token ADD SUB MUL DIV ABS %token EOL %% calclist: /* nothing */ | calclist exp EOL