远程版本的flex曲解我的规则

远程版本的flex曲解我的规则,第1张

概述远程版本的flex曲解我的规则

我写了一个使用flex和bison的小汇编器,在我的机器上构build和运行OK(ubuntu 10.10)。 其他人现在正试图在arch linux上构build它,而他们的flex安装产生了一个不同的lex.yy.c,这是不匹配的规则。 两个版本都报告了相同的lex 2.5.35版本,但是我已经看到了我和Mac OSX上的另一个flex之间的区别,这些区别并不好(?i模式,所以我不太相信版本string。

我没有访问远程机器,所以我正在寻找一些lex –deBUG输出,我有远程用户生成。

我的汇编程序的完整源代码在这里github上 。

这是我的规则中的一个片段:

如何解决:使用Sendto()发送UDP数据包得到“消息太长”

如何克服与Visual Studio的堆栈大小问题(大数组运行C代码)

移动文件 – C

与Multi-touch Manipulations相关的未公开的.NET代码引发exception

basic_filebuf :: underflow错误在/ proc / pID / stat中读取ifstream文件

letter [A-Za-z] digit [0-9] hexdigit [0-9a-fA-F] symbolchar {letter}|[.$_] symbol {symbolchar}({symbolchar}|{digit})* gpreg [ABCXYZIJabcxyzij] xreg SP|PC|EX|POP|PEEK|PUSH|PICK|sp|pc|ex|pop|peek|push|pick op2 SET|ADD|SUB|Mul|Mli|div|DVI|MOD|MDI|AND|[BX]OR|SH[LR]|ASR|IF[BCENgalU]|ADX|SBX|ST[ID] op2_lc set|add|sub|mul|mli|div|dvi|mod|mdi|and|[bx]or|sh[lr]|asr|if[bcengalu]|adx|sbx|st[ID] op1 JsR|HCF|INT|RFI|IA[GSQ]|HW[NQI] op1_lc Jsr|hcf|int|rfi|ia[gsq]|hw[nqi] %% .set|.equ return EQU; :{symbol} { yylval.string = yytext + 1; return LABEL; } {symbol}: { yylval.string = yytext; yytext[strlen(yytext) - 1] = 0; return LABEL; } 0x{hexdigit}+ return get_constant(); {digit}+ return get_constant(); {gpreg}|{xreg} { yylval.integer = str2reg(yytext); return REG; } {op2}|{op2_lc} { yylval.integer = str2opcode(yytext); return OP2; } {op1}|{op1_lc} { yylval.integer = str2opcode(yytext); return OP1; } DAT|dat { return DAT; } {symbol} { yylval.string = yytext; return SYMBol; }

以下是一个input行示例:

SET A,0x30 ; 7c01 0030

远程词法分析器符合规则{symbol}:代替{gpreg}|{xreg} 。 难道这是因为我在symbol定义中有一个通配符? 为什么这对我的灵活而不是远程工作?

从我的本地(良好)构build–deBUG输出:

--accepting rule at line 52 (" ") --accepting rule at line 42 ("SET") --accepting rule at line 52 (" ") --accepting rule at line 41 ("A") --accepting rule at line 50 (",") --accepting rule at line 52 (" ") --accepting rule at line 39 ("0x30") --accepting rule at line 52 (" ") --accepting rule at line 53 ("; 7c01 0030") --accepting rule at line 50 (" ")

并从有问题的远程构builddeBUGging输出(包括yacc投诉)。 注意与“A”匹配的不同规则 :

--accepting rule at line 52 (" ") --accepting rule at line 42 ("SET") --accepting rule at line 52 (" ") --accepting rule at line 34 ("A") line 4: Syntax error line 3: parse error: bad instruction line 3: parse error: bad instruction --accepting rule at line 50 (",") line 3: parse error: bad instruction --accepting rule at line 52 (" ") --accepting rule at line 39 ("0x30") line 3: parse error: bad instruction --accepting rule at line 52 (" ") --accepting rule at line 53 ("; 7c01 0030") --accepting rule at line 50 (" ")

我应该如何解决这个问题,有什么类似的问题可以用不同的d性版本呢?

打开虚拟串口的C#抛出ArgumentException

linux被动等待条件更新

如何以编程方式检索“Program files”文件夹的实际path?

如何通过Idispatch公开COM函数的服务器可以区分不同的客户端调用函数而不传递任何ID参数?

linux:好友系统可用内存

总结

以上是内存溢出为你收集整理的远程版本的flex曲解我的规则全部内容,希望文章能够帮你解决远程版本的flex曲解我的规则所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1288490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存