protected boolean isOperatorCharacters() { return fFactory.getOperatorCharacters().indexOf(fCurrentChar) >= 0; }
public ASTNode createFunction(final IParserFactory factory, final ASTNode argument) { return factory.createFunction(factory.createSymbol("Times"), factory.createInteger(-1), argument); // alternatively we can introduce a Minus operator. // see http://code.google.com/p/symja/issues/detail?id=36 // return factory.createFunction(factory.createSymbol("Minus"), argument); } }
public ASTNode createFunction(final IParserFactory factory, final ASTNode lhs, final ASTNode rhs) { return factory.createFunction(factory.createSymbol(getFunctionName()), lhs, rhs); } }
if (fToken == TT_IDENTIFIER) { final ASTNode check = getSymbol(); return fFactory.createPattern(symbol, check); } else { return fFactory.createPattern(symbol, null); if (fToken == TT_IDENTIFIER) { final ASTNode check = getSymbol(); return fFactory.createPattern2(symbol, check); } else { return fFactory.createPattern2(symbol, null); if (fToken == TT_IDENTIFIER) { final ASTNode check = getSymbol(); return fFactory.createPattern3(symbol, check); } else { return fFactory.createPattern3(symbol, null); if (fToken == TT_IDENTIFIER) { final ASTNode check = getSymbol(); return fFactory.createPattern(symbol, check, true); } else { return fFactory.createPattern(symbol, null, true); if (fToken == TT_IDENTIFIER) { final ASTNode check = getSymbol(); return fFactory.createPattern(null, check); } else { return fFactory.createPattern(null, null);
if ( fToken == TT_IDENTIFIER ) { final ASTNode check = getSymbol(); return fFactory.createPattern( symbol, check ); return fFactory.createPattern( symbol, null ); if ( fToken == TT_IDENTIFIER ) { final ASTNode check = getSymbol(); return fFactory.createPattern( null, check ); return fFactory.createPattern( null, null ); final FunctionNode out = fFactory.createFunction( fFactory.createSymbol( IConstantOperators.Out ) ); if ( fToken == TT_DIGIT ) { countPercent = getIntegerNumber(); out.add( fFactory.createInteger( countPercent ) ); return out; out.add( fFactory.createInteger( -countPercent ) ); return out; final FunctionNode slot = fFactory.createFunction( fFactory.createSymbol( IConstantOperators.Slot ) ); if ( fToken == TT_DIGIT ) { slot.add( getNumber( false ) ); slot.add( fFactory.createInteger( 1 ) ); final FunctionNode slotSequencce = fFactory.createFunction( fFactory.createSymbol( IConstantOperators.SlotSequence ) );
final int startPosition = fCurrentPosition - 1; fOperatorString = fInputString.substring(startPosition, fCurrentPosition); List<Operator> list = fFactory.getOperatorList(fOperatorString); List<Operator> lastList = null; int lastOperatorPosition = -1; while (fFactory.getOperatorCharacters().indexOf(fCurrentChar) >= 0) { fOperatorString = fInputString.substring(startPosition, fCurrentPosition); list = fFactory.getOperatorList(fOperatorString); if (list != null) { lastList = list;
oper = fFactory.get("Times"); if (oper.getPrecedence() >= min_precedence) { rhs = parseLookaheadOperator(oper.getPrecedence()); lhs = fFactory.createFunction(fFactory.createSymbol(oper.getFunctionName()), lhs, rhs); lhs = parseArguments(lhs); continue; if (fToken == TT_DERIVATIVE) { getNextToken(); lhs = fFactory.createFunction(DERIVATIVE, lhs);
/** * Read the current identifier from the expression factories table. * * @return the symbol * @throws SyntaxError the syntax error * @see */ private SymbolNode getSymbol() throws SyntaxError { String identifier = getIdentifier(); if ( !fFactory.isValidIdentifier( identifier ) ) { throwSyntaxError( "Invalid identifier: " + identifier + " detected." ); } final SymbolNode symbol = fFactory.createSymbol( identifier ); getNextToken(); return symbol; }
oper = fFactory.get("Times"); if (Config.DOMINANT_IMPLICIT_TIMES || oper.getPrecedence() >= min_precedence) { rhs = parseLookaheadOperator(oper.getPrecedence());
/** * Method Declaration. * * @return * @see */ private ASTNode getNumber(final boolean negative) throws SyntaxError { ASTNode temp = null; final Object[] result = getNumberString(); String number = (String) result[0]; final int numFormat = ((Integer) result[1]).intValue(); try { if (negative) { number = '-' + number; } if (numFormat < 0) { temp = fFactory.createDouble(number); } else { temp = fFactory.createInteger(number, numFormat); } } catch (final Throwable e) { throwSyntaxError("Number format error: " + number, number.length()); } getNextToken(); return temp; }
/** * Read the current identifier from the expression factories table * * @return * @see */ private IExpr getSymbol() throws SyntaxError { String[] identifierContext = getIdentifier(); if (!fFactory.isValidIdentifier(identifierContext[0])) { throwSyntaxError("Invalid identifier: " + identifierContext[0] + " detected."); } final IExpr symbol = convertSymbol(identifierContext[0], identifierContext[1]); // final ISymbol symbol = F.$s(identifier); getNextToken(); return symbol; }
private ASTNode getString() throws SyntaxError { final StringBuffer ident = getStringBuffer(); getNextToken(); return fFactory.createString(ident); }
final FunctionNode function = fFactory.createAST( head );
public ASTNode createFunction(final IParserFactory factory, final ASTNode argument) { return factory.createFunction(factory.createSymbol(getFunctionName()), argument); } }
final int startPosition = fCurrentPosition - 1; fOperatorString = fInputString.substring( startPosition, fCurrentPosition ); List<Operator> list = fFactory.getOperatorList( fOperatorString ); List<Operator> lastList = null; int lastOperatorPosition = -1; while ( fFactory.getOperatorCharacters().indexOf( fCurrentChar ) >= 0 ) { fOperatorString = fInputString.substring( startPosition, fCurrentPosition ); list = fFactory.getOperatorList( fOperatorString ); if ( list != null ) { lastList = list;
if ( (fToken == TT_LIST_OPEN) || (fToken == TT_PRECEDENCE_OPEN) || (fToken == TT_IDENTIFIER) || (fToken == TT_STRING) || (fToken == TT_DIGIT) ) { oper = fFactory.get( "Times" ); if ( oper.getPrecedence() >= min_precedence ) { rhs = parseLookaheadOperator( oper.getPrecedence() ); lhs = fFactory.createFunction( fFactory.createSymbol( oper.getFunctionName() ), lhs, rhs ); lhs = parseArguments( lhs ); continue;
/** * Read the current identifier from the expression factories table * * @return * @see */ private SymbolNode getSymbol() throws SyntaxError { String identifier = getIdentifier(); if (!fFactory.isValidIdentifier(identifier)) { throwSyntaxError("Invalid identifier: " + identifier + " detected."); } final SymbolNode symbol = fFactory.createSymbol(identifier); getNextToken(); return symbol; }
if (!fExplicitTimes) { InfixExprOperator timesOperator = (InfixExprOperator) fFactory.get("Times"); if (Config.DOMINANT_IMPLICIT_TIMES || timesOperator.getPrecedence() > min_precedence) { rhs = parseExpression(rhs, timesOperator.getPrecedence());
/** * Method Declaration. * * @param negative the negative * @return the number * @throws SyntaxError the syntax error * @see */ private ASTNode getNumber( final boolean negative ) throws SyntaxError { ASTNode temp = null; final Object[] result = getNumberString(); String number = (String) result[0]; final int numFormat = ((Integer) result[1]).intValue(); try { if ( negative ) { number = '-' + number; } if ( numFormat < 0 ) { temp = fFactory.createDouble( number ); } else { temp = fFactory.createInteger( number, numFormat ); } } catch ( final Throwable e ) { throwSyntaxError( "Number format error: " + number, number.length() ); } getNextToken(); return temp; }
/** * Gets the string. * * @return the string * @throws SyntaxError the syntax error */ private ASTNode getString() throws SyntaxError { final StringBuffer ident = getStringBuffer(); getNextToken(); return fFactory.createString( ident ); }