@Override public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (c != ICharacterScanner.EOF && fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); String buffer= fBuffer.toString(); // If case-insensitive, convert to lower case before accessing the map if (fIgnoreCase) buffer= buffer.toLowerCase(); IToken token= fWords.get(buffer); if (token != null) return token; if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
private boolean readInterface(ICharacterScanner scanner) { int ch= scanner.read(); int i= 0; while (i < INTERFACE.length() && INTERFACE.charAt(i) == ch) { i++; ch= scanner.read(); } if (i < INTERFACE.length()) return false; if (fWordDetector.isWordPart((char) ch)) return false; if (ch != ICharacterScanner.EOF) scanner.unread(); return true; }
private boolean readInterface(ICharacterScanner scanner) { int ch= scanner.read(); int i= 0; while (i < INTERFACE.length() && INTERFACE.charAt(i) == ch) { i++; ch= scanner.read(); } if (i < INTERFACE.length()) return false; if (fWordDetector.isWordPart((char) ch)) return false; if (ch != ICharacterScanner.EOF) scanner.unread(); return true; }
public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (c != ICharacterScanner.EOF && fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); String buffer= fBuffer.toString(); // If case-insensitive, convert to lower case before accessing the map if (fIgnoreCase) buffer= buffer.toLowerCase(); IToken token= (IToken)fWords.get(buffer); if (token != null) return token; if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
private boolean readInterface(ICharacterScanner scanner) { int ch= scanner.read(); int i= 0; while (i < INTERFACE.length() && INTERFACE.charAt(i) == ch) { i++; ch= scanner.read(); } if (i < INTERFACE.length()) return false; if (fWordDetector.isWordPart((char) ch)) return false; if (ch != ICharacterScanner.EOF) scanner.unread(); return true; }
public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (c != ICharacterScanner.EOF && fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); String buffer= fBuffer.toString(); // If case-insensitive, convert to lower case before accessing the map if (fIgnoreCase) buffer= buffer.toLowerCase(); IToken token= (IToken)fWords.get(buffer); if (token != null) return token; if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
private boolean readIdentifier(ICharacterScanner scanner, StringBuffer buffer) { int ch= scanner.read(); boolean read= false; while (fWordDetector.isWordPart((char) ch)) { if (buffer != null) buffer.append((char) ch); ch= scanner.read(); read= true; } if (ch != ICharacterScanner.EOF) scanner.unread(); return read; }
@Override public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (c != ICharacterScanner.EOF && fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); String buffer= fBuffer.toString(); // If case-insensitive, convert to lower case before accessing the map if (fIgnoreCase) buffer= buffer.toLowerCase(); IToken token= fWords.get(buffer); if (token != null) return token; if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
/** * Returns whether the end sequence was detected. * The rule acquires the rest of the word, using the * provided word detector, and tests to determine if * it ends with the end sequence. * * @param scanner the scanner to be used * @return <code>true</code> if the word ends on the given end sequence */ @Override protected boolean endSequenceDetected(ICharacterScanner scanner) { fBuffer.setLength(0); int c= scanner.read(); while (fDetector.isWordPart((char) c)) { fBuffer.append((char) c); c= scanner.read(); } scanner.unread(); if (fBuffer.length() >= fEndSequence.length) { for (int i=fEndSequence.length - 1, j= fBuffer.length() - 1; i >= 0; i--, j--) { if (fEndSequence[i] != fBuffer.charAt(j)) { unreadBuffer(scanner); return false; } } return true; } unreadBuffer(scanner); return false; }
if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); fBuffer.append((char) c); c = scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread();
/** * Returns whether the end sequence was detected. * The rule acquires the rest of the word, using the * provided word detector, and tests to determine if * it ends with the end sequence. * * @param scanner the scanner to be used * @return <code>true</code> if the word ends on the given end sequence */ @Override protected boolean endSequenceDetected(ICharacterScanner scanner) { fBuffer.setLength(0); int c= scanner.read(); while (fDetector.isWordPart((char) c)) { fBuffer.append((char) c); c= scanner.read(); } scanner.unread(); if (fBuffer.length() >= fEndSequence.length) { for (int i=fEndSequence.length - 1, j= fBuffer.length() - 1; i >= 0; i--, j--) { if (fEndSequence[i] != fBuffer.charAt(j)) { unreadBuffer(scanner); return false; } } return true; } unreadBuffer(scanner); return false; }
public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.clear(); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); for (int i= 0, n= fMatchers.size(); i < n; i++) { IToken token= fMatchers.get(i).evaluate(scanner, fBuffer); if (!token.isUndefined()) return token; } if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
public IToken evaluate(ICharacterScanner scanner) { int c = scanner.read(); int numToUnread = 1; while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)) { c = scanner.read(); numToUnread ++; } while (Character.isWhitespace((char)c)) { c = scanner.read(); numToUnread ++; } if((char)c != '(') { unread(scanner, numToUnread); return Token.UNDEFINED; } unread(scanner, numToUnread); return super.evaluate(scanner); }
public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.clear(); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); for (int i= 0, n= fMatchers.size(); i < n; i++) { IToken token= ((WordMatcher) fMatchers.get(i)).evaluate(scanner, fBuffer); if (!token.isUndefined()) return token; } if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
@Override public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.clear(); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); for (int i= 0, n= fMatchers.size(); i < n; i++) { IToken token= fMatchers.get(i).evaluate(scanner, fBuffer); if (!token.isUndefined()) return token; } if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
@Override public IToken evaluate(ICharacterScanner scanner) { int c= scanner.read(); if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.clear(); do { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread(); for (int i= 0, n= fMatchers.size(); i < n; i++) { IToken token= fMatchers.get(i).evaluate(scanner, fBuffer); if (!token.isUndefined()) return token; } if (fDefaultToken.isUndefined()) unreadBuffer(scanner); return fDefaultToken; } } scanner.unread(); return Token.UNDEFINED; }
scanner.unread(); int previousChar = scanner.read(); if( fDetector.isWordPart((char)previousChar) ) { return Token.UNDEFINED; if (fDetector.isWordStart((char) c)) { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.append((char) c); c= scanner.read(); } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); scanner.unread();