View Javadoc

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