List of usage examples for java.io StreamTokenizer ordinaryChar
public void ordinaryChar(int ch)
From source file:StreamTokenizerDemo.java
public static void main(String args[]) throws Exception { FileReader fr = new FileReader(args[0]); BufferedReader br = new BufferedReader(fr); StreamTokenizer st = new StreamTokenizer(br); st.ordinaryChar('.'); st.wordChars('\'', '\''); while (st.nextToken() != StreamTokenizer.TT_EOF) { switch (st.ttype) { case StreamTokenizer.TT_WORD: System.out.println(st.lineno() + ") " + st.sval); break; case StreamTokenizer.TT_NUMBER: System.out.println(st.lineno() + ") " + st.nval); break; default:/* ww w . jav a2s . c o m*/ System.out.println(st.lineno() + ") " + (char) st.ttype); } } fr.close(); }
From source file:Main.java
public static void main(String args[]) { try {/*w ww.j ava 2 s .com*/ FileReader fr = new FileReader(args[0]); BufferedReader br = new BufferedReader(fr); StreamTokenizer st = new StreamTokenizer(br); st.ordinaryChar('.'); st.wordChars('\'', '\''); while (st.nextToken() != StreamTokenizer.TT_EOL) { switch (st.ttype) { case StreamTokenizer.TT_WORD: System.out.println(st.lineno() + ") " + st.sval); break; case StreamTokenizer.TT_NUMBER: System.out.println(st.lineno() + ") " + st.nval); break; default: System.out.println(st.lineno() + ") " + (char) st.ttype); } } fr.close(); } catch (Exception e) { System.out.println("Exception: " + e); } }
From source file:MainClass.java
public static void main(String args[]) { try {// www .jav a 2 s . c o m FileReader fr = new FileReader(args[0]); BufferedReader br = new BufferedReader(fr); StreamTokenizer st = new StreamTokenizer(br); st.ordinaryChar('.'); st.wordChars('\'', '\''); while (st.nextToken() != StreamTokenizer.TT_EOF) { switch (st.ttype) { case StreamTokenizer.TT_WORD: System.out.println(st.lineno() + ") " + st.sval); break; case StreamTokenizer.TT_NUMBER: System.out.println(st.lineno() + ") " + st.nval); break; default: System.out.println(st.lineno() + ") " + (char) st.ttype); } } fr.close(); } catch (Exception e) { System.out.println("Exception: " + e); } }
From source file:com.enonic.cms.business.portal.datasource.expressionfunctions.ExpressionFunctions.java
/** * This method will take a freetext search string and create a valid query that can be used in the getContent* methods. The search * string is spilt into tokens. Using the operator, it may be specified whether the field must contain all or any of the words in the * search string./*from w w w . java 2s. com*/ * * @param fieldName The name of the field to search for the words in the search string. * @param searchString The words to search for. * @param operator Must be either AND or OR. Case doesn't matter. * @return A syntactically correct search that may be used as the query parameter in getContent* methods on the data source. With care, * it may also be merged with other queries using AND or OR. * @throws IllegalArgumentException If any of the parameters are empty or the operator is not AND or OR. */ public String buildFreetextQuery(String fieldName, String searchString, String operator) { if (searchString == null || searchString.trim().equals("")) { return ""; } if (fieldName == null || fieldName.trim().equals("")) { throw new IllegalArgumentException("fieldName can not be empty."); } String op = ""; if (operator != null) { op = operator.trim().toUpperCase(); } if (!(op.equals("AND") || op.equals("OR"))) { throw new IllegalArgumentException("Illegal operator: " + operator); } boolean first = true; StringBuffer queryTokens = new StringBuffer(); Reader searchStringReader = new StringReader(searchString); StreamTokenizer searchStringTokens = new StreamTokenizer(searchStringReader); searchStringTokens.slashSlashComments(false); searchStringTokens.slashStarComments(false); searchStringTokens.eolIsSignificant(false); searchStringTokens.ordinaryChar('!'); searchStringTokens.ordinaryChars('#', '}'); searchStringTokens.wordChars('!', '!'); searchStringTokens.wordChars('#', '}'); try { while (searchStringTokens.nextToken() != StreamTokenizer.TT_EOF) { String token = searchStringTokens.sval; addQueryPart(queryTokens, first, fieldName, token, op); if (first) { first = false; } } } catch (IOException e) { throw new IllegalStateException("This should never happen, since the IO class is wrapping a string!"); } return queryTokens.toString(); }
From source file:com.enonic.cms.core.portal.datasource.el.ExpressionFunctions.java
/** * This method will take a freetext search string and create a valid query that can be used in the getContent* methods. The search * string is spilt into tokens. Using the operator, it may be specified whether the field must contain all or any of the words in the * search string.//from w ww.jav a 2 s . com * * @param fieldName The name of the field to search for the words in the search string. * @param searchString The words to search for. * @param operator Must be either AND or OR. Case doesn't matter. * @return A syntactically correct search that may be used as the query parameter in getContent* methods on the data source. With care, * it may also be merged with other queries using AND or OR. * @throws IllegalArgumentException If any of the parameters are empty or the operator is not AND or OR. */ public String buildFreetextQuery(String fieldName, String searchString, String operator) { if (searchString == null || searchString.trim().equals("")) { return ""; } if (fieldName == null || fieldName.trim().equals("")) { throw new IllegalArgumentException("fieldName can not be empty."); } String op = ""; if (operator != null) { op = operator.trim().toUpperCase(); } if (!(op.equals("AND") || op.equals("OR"))) { throw new IllegalArgumentException("Illegal operator: " + operator); } boolean first = true; StringBuilder queryTokens = new StringBuilder(); Reader searchStringReader = new StringReader(searchString); StreamTokenizer searchStringTokens = new StreamTokenizer(searchStringReader); searchStringTokens.slashSlashComments(false); searchStringTokens.slashStarComments(false); searchStringTokens.eolIsSignificant(false); searchStringTokens.ordinaryChar('!'); searchStringTokens.ordinaryChars('#', '}'); searchStringTokens.wordChars('!', '!'); searchStringTokens.wordChars('#', '}'); try { while (searchStringTokens.nextToken() != StreamTokenizer.TT_EOF) { String token = searchStringTokens.sval; addQueryPart(queryTokens, first, fieldName, token, op); if (first) { first = false; } } } catch (IOException e) { throw new IllegalStateException("This should never happen, since the IO class is wrapping a string!"); } return queryTokens.toString(); }
From source file:edu.buffalo.cse.pigout.parser.PigOutMacro.java
void validate() throws IOException { if (rets.isEmpty()) { return;// w w w . j a va 2s.c o m } HashSet<String> testSet = new HashSet<String>(); StreamTokenizer st = new StreamTokenizer(new StringReader(body)); st.wordChars('.', '.'); st.wordChars('0', '9'); st.wordChars('_', '_'); st.wordChars('$', '$'); st.lowerCaseMode(false); st.ordinaryChar('/'); st.slashStarComments(true); while (st.nextToken() != StreamTokenizer.TT_EOF) { if (matchWord(st, "define", false) && matchDollarAlias(st, true)) { testSet.add(st.sval.substring(1)); } else if (matchDollarAlias(st, false)) { String prevWord = st.sval; if (matchWord(st, "if", true) || matchWord(st, "otherwise", true)) { testSet.add(prevWord.substring(1)); } else if (matchChar(st, '=', true) && !matchChar(st, '=', true)) { testSet.add(prevWord.substring(1)); } else if (matchChar(st, ',', true)) { // possible mult-alias inlining of a macro ArrayList<String> mlist = new ArrayList<String>(); mlist.add(prevWord); if (isMultiValueReturn(st, mlist, true)) { for (String s : mlist) { testSet.add(s.substring(1)); } } } } else if (matchChar(st, '-', false) && matchChar(st, '-', true)) { skipSingleLineComment(st); } } for (String s : rets) { if (!testSet.contains(s)) { throw new IOException("Macro '" + name + "' missing return alias: " + s); } } }
From source file:com.jcraft.weirdx.XColormap.java
static void init(Map<String, Color> table) { if (_rgbtxt == null) return;/*from w w w. j a va 2 s . c o m*/ StringBuffer foo = new StringBuffer(); for (int i = 0; i < _rgbtxt.length; i++) { foo.append(_rgbtxt[i]); } rgbtxt = foo.toString(); _rgbtxt = null; foo = null; try { InputStream is = new ByteArrayInputStream(RGBTXT.rgbtxt.getBytes()); // StreamTokenizer st=new StreamTokenizer(is); BufferedReader br = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(br); st.ordinaryChar('!'); // st.ordinaryChar('\n'); // st.ordinaryChar('\t'); //String token=null; char c; int r, g, b; byte[] buf = new byte[1024]; while (st.nextToken() != StreamTokenizer.TT_EOF) { //System.out.println("type="+st.ttype+", "+st.sval); if (st.ttype == '!') { // while((c=(char)is.read())!='\n'); while ((c = (char) br.read()) != '\n') ; continue; } if (st.ttype == StreamTokenizer.TT_NUMBER) { r = (int) st.nval; st.nextToken(); g = (int) st.nval; st.nextToken(); b = (int) st.nval; //System.out.print("r, g, b="+r+", "+g+", "+b); int i = 0; // while((c=(char)is.read())!='\n'){ while ((c = (char) br.read()) != '\n') { if (c == '\t') continue; if (c == ' ') continue; if ('A' <= c && c <= 'Z') { c = (char) ('a' + c - 'A'); } buf[i] = (byte) c; i++; } table.put(new String(buf, 0, i), new Color(r, g, b)); //System.out.println(" -> "+new String(buf, 0, i)); continue; } } st = null; buf = null; // table.put("slategrey", rgbTable.get("slate grey")); // table.put("Black", rgbTable.get("black")); // table.put("White", rgbTable.get("white")); } catch (Exception e) { //System.out.println(e); } }
From source file:org.openmrs.cohort.CohortSearchHistory.java
public PatientSearch createCompositionFilter(String description) { Set<String> andWords = new HashSet<String>(); Set<String> orWords = new HashSet<String>(); Set<String> notWords = new HashSet<String>(); andWords.add("and"); andWords.add("intersection"); andWords.add("*"); orWords.add("or"); orWords.add("union"); orWords.add("+"); notWords.add("not"); notWords.add("!"); List<Object> currentLine = new ArrayList<Object>(); try {//from w w w. j a v a 2 s .co m StreamTokenizer st = new StreamTokenizer(new StringReader(description)); st.ordinaryChar('('); st.ordinaryChar(')'); Stack<List<Object>> stack = new Stack<List<Object>>(); while (st.nextToken() != StreamTokenizer.TT_EOF) { if (st.ttype == StreamTokenizer.TT_NUMBER) { Integer thisInt = new Integer((int) st.nval); if (thisInt < 1 || thisInt > searchHistory.size()) { log.error("number < 1 or > search history size"); return null; } currentLine.add(thisInt); } else if (st.ttype == '(') { stack.push(currentLine); currentLine = new ArrayList<Object>(); } else if (st.ttype == ')') { List<Object> l = stack.pop(); l.add(currentLine); currentLine = l; } else if (st.ttype == StreamTokenizer.TT_WORD) { String str = st.sval.toLowerCase(); if (andWords.contains(str)) currentLine.add(PatientSetService.BooleanOperator.AND); else if (orWords.contains(str)) currentLine.add(PatientSetService.BooleanOperator.OR); else if (notWords.contains(str)) currentLine.add(PatientSetService.BooleanOperator.NOT); else throw new IllegalArgumentException("Don't recognize " + st.sval); } } } catch (Exception ex) { log.error("Error in description string: " + description, ex); return null; } if (!testCompositionList(currentLine)) { log.error("Description string failed test: " + description); return null; } //return toPatientFilter(currentLine); PatientSearch ret = new PatientSearch(); ret.setParsedComposition(currentLine); return ret; }
From source file:org.openmrs.module.reporting.cohort.definition.util.CohortExpressionParser.java
/** * Elements in this list can be: an Integer, indicating a 1-based index into a search history a * BooleanOperator (AND, OR, NOT) a CohortDefinition a PatientSearch another List of the same form, * which indicates a parenthetical expression *///w w w . j ava2 s .c o m public static List<Object> parseIntoTokens(String expression) { List<Object> tokens = new ArrayList<Object>(); try { StreamTokenizer st = new StreamTokenizer(new StringReader(expression)); for (Character c : characterWords) { st.ordinaryChar(c); } while (st.nextToken() != StreamTokenizer.TT_EOF) { if (st.ttype == StreamTokenizer.TT_NUMBER) { Integer thisInt = new Integer((int) st.nval); if (thisInt < 1) { log.error("number < 1"); return null; } tokens.add(thisInt); } else if (openParenthesesWords.contains(Character.valueOf((char) st.ttype))) { tokens.add("("); } else if (closeParenthesesWords.contains(Character.valueOf((char) st.ttype))) { tokens.add(")"); } else if (st.ttype == StreamTokenizer.TT_WORD) { tokens.add(st.sval); } } return parseIntoTokens(tokens); } catch (Exception ex) { log.error("Error in description string: " + expression, ex); return null; } }
From source file:org.openmrs.module.reporting.query.evaluator.CompositionQueryEvaluator.java
/** * Elements in this list can be: an Integer, indicating a 1-based index into a search history a * BooleanOperator (AND, OR, NOT) a Query, another List of the same form, which indicates a parenthetical expression *//*from w w w.j a v a 2 s .c om*/ public List<Object> parseIntoTokens(String expression) throws EvaluationException { List<Object> tokens = new ArrayList<Object>(); try { StreamTokenizer st = new StreamTokenizer(new StringReader(expression)); for (Character c : CHARACTER_WORDS) { st.ordinaryChar(c); } while (st.nextToken() != StreamTokenizer.TT_EOF) { if (st.ttype == StreamTokenizer.TT_NUMBER) { Integer thisInt = (int) st.nval; if (thisInt < 1) { throw new IllegalArgumentException("Invalid number < 1 found"); } tokens.add(thisInt); } else if (OPEN_PARENTHESES_WORDS.contains(Character.valueOf((char) st.ttype))) { tokens.add("("); } else if (CLOSE_PARENTHESES_WORDS.contains(Character.valueOf((char) st.ttype))) { tokens.add(")"); } else if (st.ttype == StreamTokenizer.TT_WORD) { tokens.add(st.sval); } } return parseIntoTokens(tokens); } catch (Exception e) { throw new EvaluationException("Unable to parse expression <" + expression + "> into tokens", e); } }