nl_tokens: integral ( f ( x ) * + / - g ( x ) x ) = + / - integral ( f ( x ) * g ( x ) x )
pl_tokens: function ( expr , context , subIntegral ) { if ( expr . type === "OperatorNode" && expr . op === '*' ) { var wasChange = false ; var isTotalPositive = true ; var processedArgs = [ ] ; expr . args . forEach ( function ( expr ) { if ( expr . <mask> === "OperatorNode" && expr . args . length === 1 && ( expr . op === '+' || expr . op === '-' ) ) { wasChange = true ; isTotalPositive = isTotalPositive ^ ( expr . op === '-' ) ; processedArgs . push ( expr . args [ 0 ] ) ; } else { processedArgs . push ( expr ) ; } } ) ; if ( wasChange ) { var int = subIntegral ( new OperatorNode ( '*' , 'multiply' , processedArgs ) , context , "removing unary +/- from factors" ) ; if ( int ) { return isTotalPositive ? int : new OperatorNode ( '-' , 'unaryMinus' , [ int ] ) ; } } } }