Changeset 175

Show
Ignore:
Timestamp:
01/14/08 07:44:22 (8 months ago)
Author:
Don Clugston
Message:

Intrinsics no longer need to be wrapped in parentheses.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/blade/BladeSimplify.d

    r173 r175  
    427427    assert(foldIndices("A[,B..$,C]", "300")=="A[,B..$,C]"); 
    428428    // Multidimensional slicing 
    429     assert(foldIndices("(C*((A*B)[C]))[D]", "2200")=="C*(dot((A[C,]),(B[D])))");     
     429    assert(foldIndices("(C*((A*B)[C]))[D]", "2200")=="C*dot((A[C,]),(B[D]))");     
    430430    assert(foldIndices("(A*B)[C..D,D]", "2200")=="(A[C..D,])*(B[D])"); 
    431431    assert(foldIndices("(A*B)[C..D]", "2200")=="(A[C..D,])*B"); 
     
    439439    assert(foldIndices("(((A*B)*C)[D..E])[D]", "12200")=="dot((A*B),(C[D+D]))");  
    440440    assert(foldIndices("A+=(((D[B])*C)[B])", "2004")=="A+=((D[B,B])*C)"); 
    441     assert(foldIndices("dot(A,(A*dot(A,A)))","1")=="dot(A,(A*(dot(A,A))))"); 
     441    assert(foldIndices("dot(A,(A*dot(A,A)))","1")=="dot(A,(A*dot(A,A)))"); 
    442442} 
    443443 
     
    611611    assert(foldScalars("A*=-(-B)", "10")=="A*={(-(-B))}"); 
    612612    assert(foldScalars("sum((A*sum(A)))", "1")=="({sum(A)})*({sum(A)})"); 
    613     assert(foldScalars("abs((A*abs(B)))", "10")=="(abs(A))*{(abs((abs(B))))}"); 
     613    assert(foldScalars("abs((A*abs(B)))", "10")=="abs(A)*{abs(abs(B))}"); 
    614614    assert(foldScalars("abs((-A))", "1")=="abs(A)"); 
    615     assert(foldScalars("abs((abs(((-A)*B))))", "10")=="(abs(A))*{(abs((abs((-B)))))}"); 
    616     assert(foldScalars("min((A*(sum((B*A)))))", "10")=="{min(A*{(B*({sum(A)}))})}"); 
    617 } 
     615    assert(foldScalars("abs((abs(((-A)*B))))", "10")=="abs(A)*{abs(abs((-B)))}"); 
     616    assert(foldScalars("min((A*sum((B*A))))", "10")=="{min(A*{(B*({sum(A)}))})}"); 
     617} 
  • trunk/blade/BladeVisitor.d

    r174 r175  
    3535        return visitor.onVisitSymbol(visitor, expr); 
    3636    } 
    37     if (expr.length>3 && (expr[0]>='a' && expr[0]<='z')) { // function 
     37    if (expr[0]>='a' && expr[0]<='z' && exprLength(expr)==expr.length) { // function 
    3838        char [][] args; 
    3939        int z=1; 
     
    136136char [] wrapInParens(char [] a) 
    137137{ 
    138     return (a.length==1)? a : "(" ~ a ~ ")"; 
     138    return (a.length==1 || (a[0]>='a' && a[0]<='z' && exprLength(a)==a.length))? a : "(" ~ a ~ ")"; 
    139139} 
    140140