* fixed indentation of for-in code

git-svn-id: trunk@15449 -
This commit is contained in:
Jonas Maebe 2010-06-19 15:07:19 +00:00
parent 45d60dbb97
commit df525d98a3

View File

@ -241,21 +241,22 @@ implementation
// for-in loop helpers
function create_type_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
begin
function create_type_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
begin
result:=cfornode.create(hloopvar,
cinlinenode.create(in_low_x,false,expr.getcopy),
cinlinenode.create(in_high_x,false,expr.getcopy),
hloopbody,
false);
end;
end;
function create_string_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
function create_string_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
loopstatement, loopbodystatement: tstatementnode;
loopvar, stringvar: ttempcreatenode;
stringindex, loopbody, forloopnode: tnode;
begin
begin
{ result is a block of statements }
result:=internalstatements(loopstatement);
@ -297,17 +298,18 @@ begin
addstatement(loopstatement,ctempdeletenode.create(loopvar));
{ free the temp variable for expression }
addstatement(loopstatement,ctempdeletenode.create(stringvar));
end;
end;
function create_array_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
function create_array_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
loopstatement, loopbodystatement: tstatementnode;
loopvar, arrayvar: ttempcreatenode;
arrayindex, lowbound, highbound, loopbody, forloopnode, expression: tnode;
is_string: boolean;
tmpdef, convertdef: tdef;
elementcount: aword;
begin
begin
expression := expr;
{ result is a block of statements }
@ -410,14 +412,15 @@ begin
{ free the temp variable for expression if needed }
if arrayvar<>nil then
addstatement(loopstatement,ctempdeletenode.create(arrayvar));
end;
end;
function create_set_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
function create_set_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
loopstatement, loopbodystatement: tstatementnode;
loopvar, setvar: ttempcreatenode;
loopbody, forloopnode: tnode;
begin
begin
// first check is set is empty and if it so then skip other processing
if not Assigned(tsetdef(expr.resultdef).elementdef) then
begin
@ -456,8 +459,7 @@ begin
loopbody:=cifnode.create(
cinnode.create(ctemprefnode.create(loopvar),ctemprefnode.create(setvar)),
internalstatements(loopbodystatement),
nil
);
nil);
addstatement(loopbodystatement,cassignmentnode.create(hloopvar,ctemprefnode.create(loopvar)));
{ add the actual statement to the loop }
@ -474,11 +476,12 @@ begin
addstatement(loopstatement,ctempdeletenode.create(loopvar));
{ free the temp variable for expression }
addstatement(loopstatement,ctempdeletenode.create(setvar));
end;
end;
function create_enumerator_for_in_loop(hloopvar, hloopbody, expr: tnode;
function create_enumerator_for_in_loop(hloopvar, hloopbody, expr: tnode;
enumerator_get, enumerator_move: tprocdef; enumerator_current: tpropertysym): tnode;
var
var
loopstatement, loopbodystatement: tstatementnode;
enumvar: ttempcreatenode;
loopbody, whileloopnode,
@ -486,7 +489,7 @@ var
propaccesslist: tpropaccesslist;
enumerator_is_class: boolean;
enumerator_destructor: tprocdef;
begin
begin
{ result is a block of statements }
result:=internalstatements(loopstatement);
@ -568,8 +571,7 @@ begin
whileloopnode:=cifnode.create(
caddnode.create(unequaln, ctemprefnode.create(enumvar), cnilnode.create),
whileloopnode,
nil
);
nil);
end;
addstatement(loopstatement, whileloopnode);
@ -588,14 +590,15 @@ begin
{ free the temp variable for enumerator }
addstatement(loopstatement,ctempdeletenode.create(enumvar));
end;
end;
function create_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
function create_for_in_loop(hloopvar, hloopbody, expr: tnode): tnode;
var
pd, movenext: tprocdef;
current: tpropertysym;
storefilepos: tfileposinfo;
begin
begin
storefilepos:=current_filepos;
current_filepos:=hloopvar.fileinfo;
if expr.nodetype=typen then
@ -660,7 +663,7 @@ begin
end;
end;
current_filepos:=storefilepos;
end;
end;
{****************************************************************************
TLOOPNODE