词法分析,怎么判断常量和变量?
如题.
有一个常量10和变量a10,若能成功转换为integer类型,则知其为常量,若否则为变量,即strtoint( '10 ')和strtoint( 'a10 ').请问怎么判断他们是否成功?若不能这样,麻烦给个解决方案.
[解决办法]
你可以用一个错误捕捉来检查转换是否成功
function IsInteger(const s:string):boolean;
begin
try
strtoint(s);
result:=true;
except
result:=false;
end;
end;
正规式就是正则表达式,一般的编程语言词法应该满足这个正则式,具体要看语言的词法规则。
L(r)
r=(a|b|c...|z|_)*
词法分析后还要转换成中间程序的单词符号串,转换方法是使用有穷自动机。