public void convertPrefixOperator(final Writer buf, final IAST list, final PrefixOperator oper, final int precedence) throws IOException { if (oper.getPrecedence() < precedence) { buf.write("("); } buf.write(oper.getOperatorString()); convert(buf, list.get(1), oper.getPrecedence()); if (oper.getPrecedence() < precedence) { buf.write(")"); } }
public void convertPrefixOperator(final Appendable buf, final IAST list, final PrefixOperator oper, final int precedence) throws IOException { if (oper.getPrecedence() <= precedence) { append(buf, "("); } append(buf, oper.getOperatorString()); convert(buf, list.arg1(), oper.getPrecedence(), false); if (oper.getPrecedence() <= precedence) { append(buf, ")"); } }
public void convertPrefixOperator(final StringBuilder buf, final IAST list, final PrefixOperator oper, final int precedence) { tagStart(buf, "mrow"); if (oper.getPrecedence() <= precedence) { // append(buf, "("); tag(buf, "mo", "("); } // append(buf, oper.getOperatorString()); tag(buf, "mo", oper.getOperatorString()); convert(buf, list.arg1(), oper.getPrecedence(), false); if (oper.getPrecedence() <= precedence) { // append(buf, ")"); tag(buf, "mo", ")"); } tagEnd(buf, "mrow"); }
private final ASTNode parsePrefixOperator(final PrefixOperator prefixOperator) { getNextToken(); final ASTNode temp = parseLookaheadOperator(prefixOperator.getPrecedence()); if ("PreMinus".equals(prefixOperator.getFunctionName()) && temp instanceof NumberNode) { // special cases for negative numbers ((NumberNode) temp).toggleSign(); return temp; } return prefixOperator.createFunction(fFactory, temp); }
private ASTNode parsePrimary() { if (fToken == TT_OPERATOR) { if (fOperatorString.equals(".")) { fCurrentChar = '.'; return getNumber(false); } final PrefixOperator prefixOperator = determinePrefixOperator(); if (prefixOperator != null) { getNextToken(); final ASTNode temp = parseLookaheadOperator(prefixOperator.getPrecedence()); if (prefixOperator.getFunctionName().equals("PreMinus")) { // special cases for negative numbers if (temp instanceof NumberNode) { ((NumberNode) temp).toggleSign(); return temp; } } return prefixOperator.createFunction(fFactory, temp); } throwSyntaxError("Operator: " + fOperatorString + " is no prefix operator."); } return getPart(); }
/** * Parses the primary. * * @return the AST node */ private ASTNode parsePrimary() { if ( fToken == TT_OPERATOR ) { final PrefixOperator prefixOperator = determinePrefixOperator(); if ( prefixOperator != null ) { getNextToken(); final ASTNode temp = parseLookaheadOperator( prefixOperator.getPrecedence() ); if ( prefixOperator.getFunctionName().equals( "PreMinus" ) ) { // special cases for negative numbers if ( temp instanceof NumberNode ) { ((NumberNode) temp).toggleSign(); return temp; } } return prefixOperator.createFunction( fFactory, temp ); } throwSyntaxError( "Operator: " + fOperatorString + " is no prefix operator." ); } return getPart(); }