flex-lexer

    0热度

    1回答

    我写了这段代码来创建一个pascal解析器。当野牛分析它时,尽管它是一个左递归和模糊的语法,它并没有表现出任何冲突。这是代码 %{ #include<stdio.h> int yyparse(); int yylex(); int yyerror(char *s); %} %token ID; %token VAR; %token INT; %token FUNC; %to

    -1热度

    2回答

    例如 int val = 13; Serial.begin(9600); val = DigitalWrite(900,HIGH); 我真的想提取特殊符号像=和;。 我已经能够提取出现在代码中相邻的符号,但是我需要所有出现的符号。 我试过[^ "//"A-Za-z\t\n0-9]*和[\;\=\{\}\,]+。都没有工作。 有什么不对? 我做了一个规则我的扫描仪象下面(已经改变) 分号

    0热度

    1回答

    我使用flex/bison创建了一个小型解释器。 这只是可以打印一个数字,但我想知道如何添加一个字符串打印? 词法分析器: %{ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "y.tab.h" %} %% <INITIAL>[s|S][h|H][o|O][w|W] {return sh

    0热度

    1回答

    我对C语言的词法和语法分析器,但我不明白为什么 有给定的输入语法错误 这是词法分析器文件 %option yylineno %{ #include "y.tab.h" #include <stdio.h> %} DIGIT [0-9]+ ID [a-zA-Z][a-zA-Z0-9_]* %% "/*"([^\*\n\r]*) {printf("Non-terminated c

    0热度

    1回答

    我想忽略整数的前导零 可以说我有00034我只接受43并忽略零。 我使用Flex和我想返回一个标记整数43 NUMBER [1-9][0-9]*|0 ZEROS 00+ 然后: {ZEROS} { /*DO NOTHING*/ } {NUMBER} { return INT; } 但与那些问题,因为当我尝试0032我得到正确的结果但是当我尝试032时,它返回0作为int,32作为int

    1热度

    1回答

    大家好,我正在尝试学习野牛。我在github发现了一个简单的工作表达式分析器,其可以执行以下操作: 分配(如= 34; B = A) 印刷(如打印) 退出(键入exit,它将终止) 我想了解的基本规则是如何工作的。所以我试图修改这些规则以使得可以执行多个任务(比如这个:a = b = c = 5;)。 要做到这一点,我添加了一个新行规则是这样的: line : assegn ';' {;}

    0热度

    1回答

    以下是YACC代码: %{ #include<stdio.h> #include<math.h> %} %token NUMBER %left '-' '+' %left '*' '/' %nonassoc UMINUS %% statement:expression {printf("Answer=%g\n",$1);} ; expression:expression'+'

    0热度

    2回答

    我想写一个匹配任何单词的正则表达式。 我使用[a-zA-Z]*除了一些单词,例如WORD1和WORD2。 因此somethingsomething匹配,但文字WORD1和WORD2不会。在Flex中可能吗? 我曾尝试: [a-zA-Z]*|[^"WORD1""WORD2]和[a-zA-Z]*{-}["WORD1""WORD2"]但既不工程。 (现在我知道为什么他们没有工作,但我还是不知道解决的办法

    0热度

    1回答

    作为Flex-Bison的首发者,我遇到了第一个障碍,似乎无法找到通路。 问题说明:对于给定的html/xml文件,需要在标签之间提取数据。我已经阅读了SO的相关问题,但似乎没有达到这个问题的最佳位置,虽然 ()因为这是为了学习如何使用flex-bison,我不想切换到使用任何其他语言/工具)。 输入文件包含以下字段提取: <!DOCTYPE html> <html charset="utf-8

    -1热度

    1回答

    假设解析器的名称是parser_1和parser_2。 parser_1: 野牛文件= parser_1.y 的Flex文件= parser_1.l 用gcc编译后,我得到我在以下两个文件PASER: parser_1.tab.c and parser_1.lex.yy.c 与之相似的我parser_2 consitst: parser_2.tab.c和parser_2.lex.yy.c 我尝试编