static public PrefixOperator createPrefixOperator(final String operatorStr, final String headStr, final int precedence) { PrefixOperator oper; if (headStr.equals("PreMinus")) { oper = new PreMinusOperator(operatorStr, headStr, precedence); } else if (headStr.equals("PrePlus")) { oper = new PrePlusOperator(operatorStr, headStr, precedence); } else { oper = new PrefixOperator(operatorStr, headStr, precedence); } return oper; }
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); }
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 ASTNode createFunction(final INodeParserFactory factory, final ASTNode argument) { return factory.createFunction(factory.createSymbol(getFunctionName()), argument); } }
public ASTNode createFunction(final IParserFactory factory, final ASTNode argument) { return factory.createFunction(factory.createSymbol(getFunctionName()), argument); } }
/** * 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(); }
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, ")"); } }
static public PrefixOperator createPrefixOperator(final String operatorStr, final String headStr, final int precedence) { PrefixOperator oper; if (headStr.equals("PreMinus")) { oper = new PreMinusOperator(operatorStr, headStr, precedence); } else if (headStr.equals("PrePlus")) { oper = new PrePlusOperator(operatorStr, headStr, precedence); } else { oper = new PrefixOperator(operatorStr, headStr, precedence); } return oper; }
/** * Creates the function. * * @param factory the factory * @param argument the argument * @return the AST node */ public ASTNode createFunction( final IParserFactory factory, final ASTNode argument ) { return factory.createFunction( factory.createSymbol( getFunctionName() ), argument ); } }
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(); }
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"); }
/** * Creates a new ASTNode object. * * @param operatorStr the operator str * @param headStr the head str * @param precedence the precedence * @return the prefix operator */ static public PrefixOperator createPrefixOperator( final String operatorStr, final String headStr, final int precedence ) { PrefixOperator oper; if ( headStr.equals( "PreMinus" ) ) { oper = new PreMinusOperator( operatorStr, headStr, precedence ); } else if ( headStr.equals( "PrePlus" ) ) { oper = new PrePlusOperator( operatorStr, headStr, precedence ); } else { oper = new PrefixOperator( operatorStr, headStr, precedence ); } return oper; }