Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/virtuosotechnologies/asaph/notationmanager/StringScanner.java


1   /*
2   ================================================================================
3   
4     FILE:  StringScanner.java
5     
6     PROJECT:
7     
8       Asaph
9     
10    CONTENTS:
11    
12      A string scanner helper
13    
14    PROGRAMMERS:
15    
16      Daniel Azuma (DA)  <dazuma@kagi.com>
17    
18    COPYRIGHT:
19    
20      Copyright (C) 2003  Daniel Azuma  (dazuma@kagi.com)
21      
22      This program is free software; you can redistribute it and/or
23      modify it under the terms of the GNU General Public License as
24      published by the Free Software Foundation; either version 2
25      of the License, or (at your option) any later version.
26      
27      This program is distributed in the hope that it will be useful,
28      but WITHOUT ANY WARRANTY; without even the implied warranty of
29      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30      GNU General Public License for more details.
31      
32      You should have received a copy of the GNU General Public
33      License along with this program; if not, write to
34        Free Software Foundation, Inc.
35        59 Temple Place, Suite 330
36        Boston, MA 02111-1307 USA
37  
38  ================================================================================
39  */
40  
41  
42  package com.virtuosotechnologies.asaph.notationmanager;
43  
44  
45  /**
46   * A string scanner helper.
47   */
48  /*package*/ class StringScanner
49  {
50    private char[] chars_;
51    private int pos_;
52    
53    
54    /**
55     * Constructor
56     *
57     * @param str string to scan
58     */
59    /*package*/ StringScanner(
60      String str)
61    {
62      chars_ = str.toCharArray();
63      pos_ = 0;
64    }
65    
66    
67    /**
68     * Returns the next character
69     *
70     * @return next character, or 0 for end of string
71     */
72    /*package*/ char nextChar()
73    {
74      if (pos_ == chars_.length)
75      {
76        return 0;
77      }
78      return chars_[pos_++];
79    }
80    
81    
82    /**
83     * Returns true if there is more
84     *
85     * @return true if has more
86     */
87    /*package*/ boolean hasMore()
88    {
89      return pos_ != chars_.length;
90    }
91    
92    
93    /**
94     * Pushes last character back onto the string.
95     */
96    /*package*/ void pushBack()
97    {
98      if (pos_ > 0)
99      {
100       --pos_;
101     }
102   }
103 }