tsl
更新tsl,支持在成员声明时候初始化
This commit is contained in:
Binary file not shown.
@@ -395,6 +395,7 @@ type tslparser = class(tslparserbase) //
|
|||||||
end
|
end
|
||||||
function parserfiled(priv);
|
function parserfiled(priv);
|
||||||
begin
|
begin
|
||||||
|
cstflg := false;
|
||||||
rcount := 0;
|
rcount := 0;
|
||||||
r := array();
|
r := array();
|
||||||
while true do
|
while true do
|
||||||
@@ -406,6 +407,18 @@ type tslparser = class(tslparserbase) //
|
|||||||
bpos();
|
bpos();
|
||||||
break;
|
break;
|
||||||
end
|
end
|
||||||
|
if tk="=" and tp=TT_SYM then
|
||||||
|
begin
|
||||||
|
ctoken(tk,tp,pos);
|
||||||
|
if ifnil(tk) then break;
|
||||||
|
if tp=TT_SYM then
|
||||||
|
begin
|
||||||
|
bpos();
|
||||||
|
continue;
|
||||||
|
end
|
||||||
|
r[rcount]["init"] := tk;
|
||||||
|
continue;
|
||||||
|
end
|
||||||
if tk=";" then
|
if tk=";" then
|
||||||
begin
|
begin
|
||||||
if rcount then
|
if rcount then
|
||||||
@@ -472,11 +485,17 @@ type tslparser = class(tslparserbase) //
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
if tk="const" then
|
||||||
|
begin
|
||||||
|
cstflg := true;
|
||||||
|
end
|
||||||
|
else
|
||||||
begin
|
begin
|
||||||
r[rcount]["name"]:= tk;
|
r[rcount]["name"]:= tk;
|
||||||
r[rcount]["beg"]:= pos;
|
r[rcount]["beg"]:= pos;
|
||||||
r[rcount]["id"]:= rcount;
|
r[rcount]["id"]:= rcount;
|
||||||
r[rcount]["priv"]:= priv;
|
r[rcount]["priv"]:= priv;
|
||||||
|
if cstflg then r[rcount]["const"] := true;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
len := length(r);
|
len := length(r);
|
||||||
|
|||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user