diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-20 20:16:08 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-20 20:46:49 +0200 |
commit | 964e3fdecc4b32b2009aaf2a3c3d3aa6d2e55d66 (patch) | |
tree | 5bd735b0b6843be6102938920f00505023e18930 /Tools | |
parent | 12e066d5c56949f8eec876afcd0b70264721b8c3 (diff) |
ScriptOutput.m: Align equations on '=' signs
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/CodeGen/ScriptOutput.m | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Tools/CodeGen/ScriptOutput.m b/Tools/CodeGen/ScriptOutput.m index a20ca70..f4b9468 100644 --- a/Tools/CodeGen/ScriptOutput.m +++ b/Tools/CodeGen/ScriptOutput.m @@ -62,11 +62,17 @@ DefFn[ DefFn[ writeCalculation[calc_List] := beginEndBlock["calculation", lookup[calc, Name], - Riffle[Map[writeExpression, lookup[calc, Equations]],"\n"], + writeExpression[lookup[calc, Equations]], Indent -> True]]; -writeExpression[lhs_ -> rhs_] := - {writeExpression[lhs], " = ", writeExpression[rhs]}; +writeExpression[eqs:List[___Rule]] := + Module[ + {lhss = FlattenBlock/@writeExpression/@First/@eqs, + rhss = FlattenBlock/@writeExpression/@Last/@eqs, + maxlhs,lhss2}, + maxlhs = Max[StringLength /@ lhss]; + lhss2 = Map[#<>StringJoin[ConstantArray[" ",maxlhs-StringLength[#]]]<>" = "&, lhss]; + Riffle[Thread[{lhss2,rhss}],"\n"]]; writeExpression[Tensor[T_, inds___]] := {ToString[T], writeExpression[{inds}]}; @@ -148,7 +154,6 @@ writeExpression[MatrixInverse[Tensor[t_,i_,j_]]] := * Minimise parentheses * Wrap long lines - * Align '=' signs *) |