讲述如何开发一个控件,很有价值(四)(3)

2008-04-09 04:31:05来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

aTokenState := tsUnknown;
aTokenStr := '''''''';
TokenPtr := Run; // Mark were we started

Case Run^ of

#13:

begin

aTokenState := tsCRLF;
inc(Run, 2);

end;

#1..#9, #11, #12, #14..#32:

begin

while Run^ in [#1..#9, #11, #12, #14..#32] do inc(Run);
aTokenState:= tsSpace;

end;

''''A''''..''''Z'''', ''''a''''..''''z'''', ''''_'''':

begin

aTokenState:= tsIdentifier;
inc(Run);
while Run^ in [''''A''''..''''Z'''', ''''a''''..''''z'''', ''''0''''..''''9'''', ''''_''''] do inc(Run);
TokenLen:= Run - TokenPtr;
SetString(aTokenStr, TokenPtr, TokenLen);

if IsKeyWord(aTokenStr) then
begin

if IsDirective(aTokenStr) then aTokenState:= tsDirective
else aTokenState:= tsKeyWord;

end;

end;

''''0''''..''''9'''':

begin

inc(Run);
aTokenState:= tsNumber;
while Run^ in [''''0''''..''''9'''', ''''.'''', ''''e'''', ''''E''''] do inc(Run);

end;

''''{'''':

begin

FComment := csBor;
aTokenState := tsComment;
while not ((Run^ = ''''}'''') or (Run^ = #0)) do inc(Run);
inc(Run);

end;

''''!'''',''''"'''', ''''%'''', ''''&'''', ''''(''''..''''/'''', '''':''''..''''@'''', ''''[''''..''''^'''', ''''`'''', ''''~'''' :

begin

aTokenState:= tsUnknown;
while Run^ in [''''!'''',''''"'''', ''''%'''', ''''&'''', ''''(''''..''''/'''', '''':''''..''''@'''', ''''[''''..''''^'''',
''''`'''', ''''~''''] do
begin

Case Run^ of

''''/'''':
if (Run 1)^ = ''''/'''' then
begin

if (aTokenState = tsUnknown) then
begin

while (Run^ <> #13) and (Run^ <> #0) do inc(Run);
FComment:= csSlashes;
aTokenState := tsComment;
break;

end

else

begin

aTokenState := tsSymbol;
break;

end;

end;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:讲述如何开发一个控件,很有价值(三)

下一篇:讲述如何开发一个控件,很有价值(六)