99 {
100
101 while (isspace(_lastChar) && _lastChar != '\r' && _lastChar != '\n')
102 {
104 }
105
106 if (isalpha(_lastChar) || _lastChar == '_')
107 {
108 _identifier = _lastChar;
109 while (isalnum(_lastChar =
getChar()) || _lastChar ==
'-' || _lastChar ==
'_')
110 {
111 _identifier += _lastChar;
112 }
113
114 if (_identifier == "set")
116 if (_identifier == "function")
118 if (_identifier == "macro")
120 if (_identifier == "endfunction")
122 if (_identifier == "endmacro")
125 }
126
127 if (isdigit(_lastChar))
128 {
129
130 _identifier = _lastChar;
131 while (isalnum(_lastChar =
getChar()) || _lastChar ==
'.' || _lastChar ==
',')
132 {
133 _identifier += _lastChar;
134 }
136 }
137
138 if (_lastChar == '#')
139 {
141 if (_lastChar == '!')
142 {
143
144 _identifier.clear();
145
147 while (_lastChar != EOF && _lastChar != '\n' && _lastChar != '\r')
148 {
149 _identifier += _lastChar;
151 }
153 }
154
155
156 while (_lastChar != EOF && _lastChar != '\n' && _lastChar != '\r')
157 {
159 }
160 }
161
162 if (_lastChar == '"')
163 {
165 _identifier.clear();
166 while (_lastChar != EOF && _lastChar != '"')
167 {
168 _identifier += _lastChar;
170 }
171
172
175 }
176
177
178 if (_lastChar == EOF)
return TOK_EOF;
179
180
181 if (_lastChar == '\r' || _lastChar == '\n')
182 {
183 if (_lastChar ==
'\r') _lastChar =
getChar();
184 if (_lastChar ==
'\n') _lastChar =
getChar();
186 }
187
188
189 int thisChar = _lastChar;
191 return thisChar;
192 }