我想写一个小型编译器,碰到问题了~~ ( 积分: 50 )

  • 主题发起人 主题发起人 空小子
  • 开始时间 开始时间

空小子

Unregistered / Unconfirmed
GUEST, unregistred user!
原本自己写词法分析的,写完后觉得不好,就用TPLX的LEX生成了代码,但是生成.PAS后却不知如何加入到主程式中,那个yyinput赋于扫描文件后,DELPHI 5总是提示RUN TIME ERROR,跟踪了一下,到达那个yytext[..]:=..;的时候就出错了,到底怎么回事?
请高手帮帮忙,简明说一下生成.PAS后应该怎么做~谢谢
 
原本自己写词法分析的,写完后觉得不好,就用TPLX的LEX生成了代码,但是生成.PAS后却不知如何加入到主程式中,那个yyinput赋于扫描文件后,DELPHI 5总是提示RUN TIME ERROR,跟踪了一下,到达那个yytext[..]:=..;的时候就出错了,到底怎么回事?
请高手帮帮忙,简明说一下生成.PAS后应该怎么做~谢谢
 
procedure yyscan;
begin
if yyleng=255 then
fatal('yytext overflow');
yyactchar := get_char;
inc(yyleng);
yytext[yyleng] := yyactchar;//跟踪到这里就出错了~~
end(*yyscan*);
 
看看是不是数组超出范围了
 
可能是yyleng溢出了!
 
后退
顶部