读书人

词法分析,如何判断常量和变量

发布时间: 2012-02-23 22:01:35 作者: rapoo

词法分析,怎么判断常量和变量?
如题.
有一个常量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|_)*

词法分析后还要转换成中间程序的单词符号串,转换方法是使用有穷自动机。

读书人网 >.NET

热点推荐