/** * Create a string expression * * @param str * @return */ final static public IStringX $str(final String str) { return StringX.valueOf(str); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final StringBuffer str) { return StringX.valueOf(str); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final String str) { return StringX.valueOf(str); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final String str) { return StringX.valueOf(str); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final StringBuilder str) { return StringX.valueOf(str); }
/** * simple parser to simplify unit tests. The parser assumes that the String contains no syntax errors. * * Example "List[x,List[y]]" * * @param inputString * @return */ public static IAST parse(final String inputString) { final StringTokenizer tokenizer = new StringTokenizer(inputString, "[],", true); String token = tokenizer.nextToken(); final IASTAppendable list = newInstance(StringX.valueOf(token)); token = tokenizer.nextToken(); if ("[".equals(token)) { parseList(tokenizer, list); return list; } // syntax fError occured return null; }
private static void parseList(final StringTokenizer tokenizer, final IASTAppendable list) { String token = tokenizer.nextToken(); do { if ("]".equals(token)) { return; } else if (" ".equals(token)) { // ignore spaces } else { String arg; if (",".equals(token)) { arg = tokenizer.nextToken(); } else { arg = token; } token = tokenizer.nextToken(); if ("[".equals(token)) { IASTAppendable argList = newInstance(StringX.valueOf(arg)); parseList(tokenizer, argList); list.append(argList); } else { list.append(StringX.valueOf(arg)); continue; } } token = tokenizer.nextToken(); } while (tokenizer.hasMoreTokens()); }
/** * simple parser to simplify unit tests. The parser assumes that the String * contains no syntax errors. * * Example "List[x,List[y]]" */ public static AST parse(final String inputString) { final StringTokenizer tokenizer = new StringTokenizer(inputString, "[],", true); final AST list = newInstance(null); String token = tokenizer.nextToken(); list.setHeader(StringX.valueOf(token)); token = tokenizer.nextToken(); if (token.equals("[")) { parseList(tokenizer, list); return list; } // syntax fError occured return null; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 2); if (!(ast.arg1() instanceof IStringX)) { return F.NIL; } return StringX.valueOf(toUnicodeString(ast.arg1().toString(), "UTF-8")); }
@Override public IExpr evaluate(final IAST ast) { Validate.checkSize(ast, 2); if (!(ast.get(1) instanceof IStringX)) { return null; } return StringX.valueOf(toUnicodeString(ast.get(1).toString(), "UTF-8")); }
if (token.equals("[")) { argList = newInstance(null); argList.setHeader(StringX.valueOf(arg)); parseList(tokenizer, argList); list.add(argList); } else { list.add(StringX.valueOf(arg)); continue; if (token.equals("[")) { argList = newInstance(null); argList.setHeader(StringX.valueOf(arg)); parseList(tokenizer, argList); list.add(argList); } else { list.add(StringX.valueOf(arg)); continue;
@Override public IExpr evaluate(final IAST ast) { if (ast.size() != 2) { return null; } if (ast.get(1).isList()) { final IAST list = (IAST) ast.get(1); final StringBuffer buffer = new StringBuffer(); char ch; for (int i = 1; i < list.size(); i++) { if (list.get(i).isInteger()) { ch = (char) Validate.checkIntType(list, i); buffer.append(ch); } else { return null; } } return StringX.valueOf(buffer); } if (ast.get(1).isInteger()) { final char ch = (char) Validate.checkIntType(ast, 1); return StringX.valueOf(ch); } return null; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { if (ast.size() != 2) { return F.NIL; } if (ast.arg1().isList()) { final IAST list = (IAST) ast.arg1(); final StringBuilder buffer = new StringBuilder(); char ch; for (int i = 1; i < list.size(); i++) { if (list.get(i).isInteger()) { ch = (char) Validate.checkIntType(list, i); buffer.append(ch); } else { return F.NIL; } } return StringX.valueOf(buffer); } if (ast.arg1().isInteger()) { final char ch = (char) Validate.checkIntType(ast, 1); return StringX.valueOf(ch); } return F.NIL; }