mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-07-09 17:04:12 +02:00
fixes #426 :: detab'ing the DMDFE source; kudos SiegeLord
This commit is contained in:
144
dmd/arrayop.c
144
dmd/arrayop.c
@@ -94,10 +94,10 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arrayExpSliceAddass_t",
|
||||
// "_arrayExpSliceAddass_u",
|
||||
// "_arrayExpSliceAddass_w",
|
||||
//
|
||||
//
|
||||
// "_arrayExpSliceDivass_d", // T[]/=T
|
||||
// "_arrayExpSliceDivass_f", // T[]/=T
|
||||
//
|
||||
//
|
||||
// "_arrayExpSliceMinSliceAssign_a",
|
||||
// "_arrayExpSliceMinSliceAssign_d", // T[]=T-T[]
|
||||
// "_arrayExpSliceMinSliceAssign_f", // T[]=T-T[]
|
||||
@@ -109,7 +109,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arrayExpSliceMinSliceAssign_t",
|
||||
// "_arrayExpSliceMinSliceAssign_u",
|
||||
// "_arrayExpSliceMinSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arrayExpSliceMinass_a",
|
||||
// "_arrayExpSliceMinass_d", // T[]-=T
|
||||
// "_arrayExpSliceMinass_f", // T[]-=T
|
||||
@@ -121,7 +121,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arrayExpSliceMinass_t",
|
||||
// "_arrayExpSliceMinass_u",
|
||||
// "_arrayExpSliceMinass_w",
|
||||
//
|
||||
//
|
||||
// "_arrayExpSliceMulass_d", // T[]*=T
|
||||
// "_arrayExpSliceMulass_f", // T[]*=T
|
||||
// "_arrayExpSliceMulass_i",
|
||||
@@ -130,7 +130,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arrayExpSliceMulass_t",
|
||||
// "_arrayExpSliceMulass_u",
|
||||
// "_arrayExpSliceMulass_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpAddSliceAssign_a",
|
||||
// "_arraySliceExpAddSliceAssign_d", // T[]=T[]+T
|
||||
// "_arraySliceExpAddSliceAssign_f", // T[]=T[]+T
|
||||
@@ -142,10 +142,10 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceExpAddSliceAssign_t",
|
||||
// "_arraySliceExpAddSliceAssign_u",
|
||||
// "_arraySliceExpAddSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpDivSliceAssign_d", // T[]=T[]/T
|
||||
// "_arraySliceExpDivSliceAssign_f", // T[]=T[]/T
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpMinSliceAssign_a",
|
||||
// "_arraySliceExpMinSliceAssign_d", // T[]=T[]-T
|
||||
// "_arraySliceExpMinSliceAssign_f", // T[]=T[]-T
|
||||
@@ -157,11 +157,11 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceExpMinSliceAssign_t",
|
||||
// "_arraySliceExpMinSliceAssign_u",
|
||||
// "_arraySliceExpMinSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpMulSliceAddass_d", // T[] += T[]*T
|
||||
// "_arraySliceExpMulSliceAddass_f",
|
||||
// "_arraySliceExpMulSliceAddass_r",
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpMulSliceAssign_d", // T[]=T[]*T
|
||||
// "_arraySliceExpMulSliceAssign_f", // T[]=T[]*T
|
||||
// "_arraySliceExpMulSliceAssign_i",
|
||||
@@ -170,11 +170,11 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceExpMulSliceAssign_t",
|
||||
// "_arraySliceExpMulSliceAssign_u",
|
||||
// "_arraySliceExpMulSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceExpMulSliceMinass_d", // T[] -= T[]*T
|
||||
// "_arraySliceExpMulSliceMinass_f",
|
||||
// "_arraySliceExpMulSliceMinass_r",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceAddSliceAssign_a",
|
||||
// "_arraySliceSliceAddSliceAssign_d", // T[]=T[]+T[]
|
||||
// "_arraySliceSliceAddSliceAssign_f", // T[]=T[]+T[]
|
||||
@@ -187,7 +187,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceAddSliceAssign_t",
|
||||
// "_arraySliceSliceAddSliceAssign_u",
|
||||
// "_arraySliceSliceAddSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceAddass_a",
|
||||
// "_arraySliceSliceAddass_d", // T[]+=T[]
|
||||
// "_arraySliceSliceAddass_f", // T[]+=T[]
|
||||
@@ -199,7 +199,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceAddass_t",
|
||||
// "_arraySliceSliceAddass_u",
|
||||
// "_arraySliceSliceAddass_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceMinSliceAssign_a",
|
||||
// "_arraySliceSliceMinSliceAssign_d", // T[]=T[]-T[]
|
||||
// "_arraySliceSliceMinSliceAssign_f", // T[]=T[]-T[]
|
||||
@@ -212,7 +212,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceMinSliceAssign_t",
|
||||
// "_arraySliceSliceMinSliceAssign_u",
|
||||
// "_arraySliceSliceMinSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceMinass_a",
|
||||
// "_arraySliceSliceMinass_d", // T[]-=T[]
|
||||
// "_arraySliceSliceMinass_f", // T[]-=T[]
|
||||
@@ -224,7 +224,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceMinass_t",
|
||||
// "_arraySliceSliceMinass_u",
|
||||
// "_arraySliceSliceMinass_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceMulSliceAssign_d", // T[]=T[]*T[]
|
||||
// "_arraySliceSliceMulSliceAssign_f", // T[]=T[]*T[]
|
||||
// "_arraySliceSliceMulSliceAssign_i",
|
||||
@@ -233,7 +233,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceMulSliceAssign_t",
|
||||
// "_arraySliceSliceMulSliceAssign_u",
|
||||
// "_arraySliceSliceMulSliceAssign_w",
|
||||
//
|
||||
//
|
||||
// "_arraySliceSliceMulass_d", // T[]*=T[]
|
||||
// "_arraySliceSliceMulass_f", // T[]*=T[]
|
||||
// "_arraySliceSliceMulass_i",
|
||||
@@ -243,7 +243,7 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
// "_arraySliceSliceMulass_u",
|
||||
// "_arraySliceSliceMulass_w",
|
||||
// };
|
||||
//
|
||||
//
|
||||
// int i = binary(name, libArrayopFuncs, sizeof(libArrayopFuncs) / sizeof(char *));
|
||||
// if (i == -1)
|
||||
// {
|
||||
@@ -305,8 +305,8 @@ Expression *BinExp::arrayOp(Scope *sc)
|
||||
sc->stc = 0;
|
||||
sc->linkage = LINKd;
|
||||
fd->semantic(sc);
|
||||
fd->semantic2(sc);
|
||||
fd->semantic3(sc);
|
||||
fd->semantic2(sc);
|
||||
fd->semantic3(sc);
|
||||
sc->pop();
|
||||
// }
|
||||
// else
|
||||
@@ -342,10 +342,10 @@ void CastExp::buildArrayIdent(OutBuffer *buf, Expressions *arguments)
|
||||
Type *tb = type->toBasetype();
|
||||
if (tb->ty == Tarray || tb->ty == Tsarray)
|
||||
{
|
||||
e1->buildArrayIdent(buf, arguments);
|
||||
e1->buildArrayIdent(buf, arguments);
|
||||
}
|
||||
else
|
||||
Expression::buildArrayIdent(buf, arguments);
|
||||
Expression::buildArrayIdent(buf, arguments);
|
||||
}
|
||||
|
||||
void SliceExp::buildArrayIdent(OutBuffer *buf, Expressions *arguments)
|
||||
@@ -365,13 +365,13 @@ void AssignExp::buildArrayIdent(OutBuffer *buf, Expressions *arguments)
|
||||
|
||||
#define X(Str) \
|
||||
void Str##AssignExp::buildArrayIdent(OutBuffer *buf, Expressions *arguments) \
|
||||
{ \
|
||||
/* Evaluate assign expressions right to left \
|
||||
*/ \
|
||||
e2->buildArrayIdent(buf, arguments); \
|
||||
e1->buildArrayIdent(buf, arguments); \
|
||||
buf->writestring(#Str); \
|
||||
buf->writestring("ass"); \
|
||||
{ \
|
||||
/* Evaluate assign expressions right to left \
|
||||
*/ \
|
||||
e2->buildArrayIdent(buf, arguments); \
|
||||
e1->buildArrayIdent(buf, arguments); \
|
||||
buf->writestring(#Str); \
|
||||
buf->writestring("ass"); \
|
||||
}
|
||||
|
||||
X(Add)
|
||||
@@ -398,13 +398,13 @@ void ComExp::buildArrayIdent(OutBuffer *buf, Expressions *arguments)
|
||||
}
|
||||
|
||||
#define X(Str) \
|
||||
void Str##Exp::buildArrayIdent(OutBuffer *buf, Expressions *arguments) \
|
||||
{ \
|
||||
/* Evaluate assign expressions left to right \
|
||||
*/ \
|
||||
e1->buildArrayIdent(buf, arguments); \
|
||||
e2->buildArrayIdent(buf, arguments); \
|
||||
buf->writestring(#Str); \
|
||||
void Str##Exp::buildArrayIdent(OutBuffer *buf, Expressions *arguments) \
|
||||
{ \
|
||||
/* Evaluate assign expressions left to right \
|
||||
*/ \
|
||||
e1->buildArrayIdent(buf, arguments); \
|
||||
e2->buildArrayIdent(buf, arguments); \
|
||||
buf->writestring(#Str); \
|
||||
}
|
||||
|
||||
X(Add)
|
||||
@@ -437,10 +437,10 @@ Expression *CastExp::buildArrayLoop(Parameters *fparams)
|
||||
Type *tb = type->toBasetype();
|
||||
if (tb->ty == Tarray || tb->ty == Tsarray)
|
||||
{
|
||||
return e1->buildArrayLoop(fparams);
|
||||
return e1->buildArrayLoop(fparams);
|
||||
}
|
||||
else
|
||||
return Expression::buildArrayLoop(fparams);
|
||||
return Expression::buildArrayLoop(fparams);
|
||||
}
|
||||
|
||||
Expression *SliceExp::buildArrayLoop(Parameters *fparams)
|
||||
@@ -477,16 +477,16 @@ Expression *AssignExp::buildArrayLoop(Parameters *fparams)
|
||||
}
|
||||
|
||||
#define X(Str) \
|
||||
Expression *Str##AssignExp::buildArrayLoop(Parameters *fparams) \
|
||||
{ \
|
||||
/* Evaluate assign expressions right to left \
|
||||
*/ \
|
||||
Expression *ex2 = e2->buildArrayLoop(fparams); \
|
||||
Expression *ex1 = e1->buildArrayLoop(fparams); \
|
||||
Parameter *param = (Parameter *)fparams->data[0]; \
|
||||
param->storageClass = 0; \
|
||||
Expression *e = new Str##AssignExp(0, ex1, ex2); \
|
||||
return e; \
|
||||
Expression *Str##AssignExp::buildArrayLoop(Parameters *fparams) \
|
||||
{ \
|
||||
/* Evaluate assign expressions right to left \
|
||||
*/ \
|
||||
Expression *ex2 = e2->buildArrayLoop(fparams); \
|
||||
Expression *ex1 = e1->buildArrayLoop(fparams); \
|
||||
Parameter *param = (Parameter *)fparams->data[0]; \
|
||||
param->storageClass = 0; \
|
||||
Expression *e = new Str##AssignExp(0, ex1, ex2); \
|
||||
return e; \
|
||||
}
|
||||
|
||||
X(Add)
|
||||
@@ -515,14 +515,14 @@ Expression *ComExp::buildArrayLoop(Parameters *fparams)
|
||||
}
|
||||
|
||||
#define X(Str) \
|
||||
Expression *Str##Exp::buildArrayLoop(Parameters *fparams) \
|
||||
{ \
|
||||
/* Evaluate assign expressions left to right \
|
||||
*/ \
|
||||
Expression *ex1 = e1->buildArrayLoop(fparams); \
|
||||
Expression *ex2 = e2->buildArrayLoop(fparams); \
|
||||
Expression *e = new Str##Exp(0, ex1, ex2); \
|
||||
return e; \
|
||||
Expression *Str##Exp::buildArrayLoop(Parameters *fparams) \
|
||||
{ \
|
||||
/* Evaluate assign expressions left to right \
|
||||
*/ \
|
||||
Expression *ex1 = e1->buildArrayLoop(fparams); \
|
||||
Expression *ex2 = e2->buildArrayLoop(fparams); \
|
||||
Expression *e = new Str##Exp(0, ex1, ex2); \
|
||||
return e; \
|
||||
}
|
||||
|
||||
X(Add)
|
||||
@@ -545,26 +545,26 @@ int Expression::isArrayOperand()
|
||||
{
|
||||
//printf("Expression::isArrayOperand() %s\n", toChars());
|
||||
if (op == TOKslice)
|
||||
return 1;
|
||||
return 1;
|
||||
if (type->toBasetype()->ty == Tarray)
|
||||
{
|
||||
switch (op)
|
||||
{
|
||||
case TOKadd:
|
||||
case TOKmin:
|
||||
case TOKmul:
|
||||
case TOKdiv:
|
||||
case TOKmod:
|
||||
case TOKxor:
|
||||
case TOKand:
|
||||
case TOKor:
|
||||
case TOKneg:
|
||||
case TOKtilde:
|
||||
return 1;
|
||||
switch (op)
|
||||
{
|
||||
case TOKadd:
|
||||
case TOKmin:
|
||||
case TOKmul:
|
||||
case TOKdiv:
|
||||
case TOKmod:
|
||||
case TOKxor:
|
||||
case TOKand:
|
||||
case TOKor:
|
||||
case TOKneg:
|
||||
case TOKtilde:
|
||||
return 1;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user