flex-lexer

    0热度

    1回答

    digit [0-9] letter [A-Za-z] %{ int count; %} %% /* match identifier */ {letter}({letter}|{digit})* count++; %% int main(void) { yylex(); printf("number of identifiers = %d\n", count);

    0热度

    1回答

    %{ #include<stdio.h> int vowel=0; %} %% [aeiouAEIOU] { vowel++; } %% int main() { char str[200]; gets(str); yylex(); printf("Vowels:",vowel); }

    2热度

    1回答

    我正在与词法分析。为此,我使用Flex并提取以下问题。 work.l int cnt = 0,num_lines=0,num_chars=0; // Problem here. %% [" "]+[a-zA-Z0-9]+ {++cnt;} \n {++num_lines; ++num_chars;} . {++num_chars;} %% int yywrap() { r

    0热度

    1回答

    我尝试提取一行的内容并在该行中的输入被从野牛中拒绝时打印它们。 我尝试重现这些建议:http://archive.oreilly.com/pub/a/linux/excerpts/9780596155971/error-reporting-recovery.html但是当输入被拒绝时,将打印下一行而不是被拒绝的行,而行的编号已正确打印。 挠曲: %{ #include <stdio.h> #i

    0热度

    3回答

    我正在查找匹配的正则表达式,如果字符串或字符串的任何前缀匹配。举例来说,如果我有字符串“abcd”它将匹配 - a - abc - aaaa 但不 - baa - the 我现在的正则表达式的解决方案是a | ab | abc | abcd - 但如果有更简洁的方式不知道。

    0热度

    1回答

    我想了解创建编译器的基本概念。我试图写一个非常基本的C编译器,我遇到了一些问题。当我试图打印变量yylineno发生语法错误的地方时,我得到一些行号错误。有谁知道为什么?我搜索了互联网,但找不到明确的答案,谢谢。 comp.l文件: %{ #include <stdio.h> #include <stdlib.h> #include <string.h> extern int yyl

    -1热度

    1回答

    一个文本编辑器,我创建了目前只能在命令行界面运行的编程语言。我希望它能够在Eclipse IDE上运行。我做了一些研究,但无法真正找到准确的答案。 编程语言使用flex和野牛创建的,因此,用c创建。我没有为我的编程语言创建GUI,而是决定使用Eclipse IDE。 后如何教Eclipse能够识别我的编程语言的一些广泛的研究,我发现了一些结果这表明,我可以使用CDT在Eclipse来解决这个问题。

    0热度

    1回答

    编辑:改变了Polinom规则 我试着写一个简单的编译器,那将认识多项式并打印出来。尽管如此,正如预期的那样,它在打印出多项式后吐出语法错误写入。这些问题困扰我的是无法弄清楚它是导致所有大惊小怪的词法分析器还是解析器。 parser.ypp %{ #include <iostream> #include <cstdlib> #include <cmath> #include <vecto

    0热度

    1回答

    我正在写作业控制外壳。我使用Yacc和Lex进行分析。我的语法中的最高规则是pipeline_list,这是一个用逗号分隔的管道列表。因此,是pipelinelists的实例如下: cmd1 | cmd2; cmd3; cmd4 | cmd5 <newline> cmd1 <newline> <nothing> <newline> 我表示与pipeline规则管道(下面显示)。在该规则中,

    0热度

    1回答

    我正在调整一个已经完全实用的解析器来从客户端提供的文本缓冲区中读取数据,所以我正在关注本网站上找到的示例,它让我使用yyscan_bytes()加载缓冲区。不幸的是,这导致使用现有的语法一个致命的错误,由于这个(长期存在)的Flex规则: .|"\n" { BEGIN INIT; unput(yytext[0]); } 这条规则是第一个打的时候我解析任何输入和unput()总是失败与“