View Javadoc

1   /*
2    * CharReader.java
3    *
4    * Created on 28. květen 2004, 23:28
5    */
6   
7   package net.sf.tomp.pp;
8   
9   /***
10   *
11   * @author  tomp
12   */
13  public class CharReader {
14      
15      private String src; // = "%html{%head{}%body{ %tag1 attr1='attr1value' attr2=\"\"{} %tag2 attr3=\"attr3value\"{Obsah tag2}  %tag4%enclosedtag4 attr4=\"attr4value\"{}}}";
16  
17      private int index;
18      private int len;
19      private boolean eof = false;
20      
21      public CharReader(String s) { src = s; len = s.length(); }
22  
23      public char next() {
24      	if (index < len) {
25      		eof = false;
26          	return src.charAt(index++);
27      	} else {
28      		eof = true;
29      		return 0;
30      	}
31      }
32  
33      public char at() {
34          return at(index);
35      }
36  
37      public char at(int i) {
38      	if (i < len) {
39          	return src.charAt(i);
40      	} else {
41      		return 0;
42      	}
43      }
44  
45      public boolean eof() { return eof; }
46  	
47      public char nextNonspace(char c) {
48          while(!eof() && Character.isWhitespace(c)) {
49              c = next();
50          }
51          return c;
52      }
53  
54      public int index() {
55          return index;
56      }
57  
58      public char pushback() {
59          index--;
60          return at();
61      }
62  
63      public String substring(int textBegin, int textEnd) {
64          return src.substring(textBegin, textEnd);
65      }
66  }