lex

    0热度

    1回答

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

    0热度

    1回答

    我是Lex新手& Yacc编程,刚开始学习语法。我在网上浏览了这个程序,并试图理解它。以下是Lex和Yacc代码片段一个简单的计算器: 莱克斯规则: %% [a-z] { yylval = *yytext - 'a'; return VARIABLE; } [0-9]+ { yylval = atoi(yytext);

    -1热度

    2回答

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

    2热度

    2回答

    我正在尝试使用折返lex和yacc编写一个简单的计算器应用程序。在这里我想创建两个线程(解析器),它应该解析输入文件中提供的输入。线路输入文件解析两个线程之间划分.. 我的简单的计算器代码法是 %option reentrant bison-bridge %option noyywrap %{ #include<stdio.h> void yyerror(char *); #includ

    1热度

    2回答

    嗨,我正在写一个简单的yacc程序,它需要一个程序代码并计算它有多少个分配语句。 例如,对于下面的代码片段: void main() { int a = 3; int bb = 10; } 我想我YACC打印出有2分分配的句子。由于我是初学者,因此我在网上找到了来自Oreily书籍的示例代码并修改了代码。 yacc.y %{ 2 #include <stdio.h>

    0热度

    1回答

    %option case-insensitive %option noyywrap %option yylineno id [a-zA-Z][a-zA-Z_0-9]* integer (0[xX][0-9A-Fa-f]+)|([0-9]+) real [0-9]*\.[0-9](e|E)?[0-9]* undefined [^"\r\n \t] %x ST

    1热度

    1回答

    我正在编写一个简单的Yacc程序,它接收程序代码并返回int和double类型的变量和函数的计数。 我遇到了一个奇怪的问题,即当有一条匹配的规则时,程序返回一个语法错误,但是这条线拾起了一条不同的规则。我带来了显示了这个错误代码的组成部分:(如果你看到未使用的变量,那是因为我删除了不相关的这种错误的其他部分) YACC代码 %{ #define YYDEBUG 1 #include <stdi

    0热度

    1回答

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

    1热度

    1回答

    我想用lex打印以C语言编写的函数的参数。现在,我想在格式打印的参数: 参数: int类型的X1 float类型 物联网X2试图至今: 1)我能够打印参数,但输出中包含起始和结束括号。 用于该匹配正则表达式是: datatypes (("int")|("float")|("void")|("double")|("char")|("short")|("long")) blanks [ ] let

    0热度

    1回答

    我建立一个编译器,我有一些问题,我的解析器链接到我的符号表。 我试图编译简单的表达式所示: 一个= 3 + 2; 输出的(a); 我没有得到5作为输出,我想不出什么我做错了。 我把我的代码如下: lexor.l %{ #include "y.tab.h" %} %% [0-9]+ {yylval.num = atoi(yytext); return number;} be