Finalize the new approach to reading chars in the reader
This commit is contained in:
parent
70df6f4368
commit
b285172597
|
@ -1,10 +1,9 @@
|
||||||
(def main
|
(def main
|
||||||
(fn () 3))
|
(fn () 4))
|
||||||
|
|
||||||
(def main1 (fn (v y n) 3))
|
(def main1 (fn (v y n) 3))
|
||||||
ht
|
ht
|
||||||
|
|
||||||
|
|
||||||
3d
|
|
||||||
|
|
||||||
(- 3 4 (sh - r e 3bea -32) ((((())))))
|
(- 3 4 (sh - r e 3bea -32) ((((())))))
|
|
@ -69,7 +69,6 @@ private:
|
||||||
Location currentLocation;
|
Location currentLocation;
|
||||||
|
|
||||||
bool readEOL = false;
|
bool readEOL = false;
|
||||||
bool startedReading = false;
|
|
||||||
|
|
||||||
/// Returns a clone of the current location
|
/// Returns a clone of the current location
|
||||||
Location getCurrentLocation();
|
Location getCurrentLocation();
|
||||||
|
|
|
@ -56,7 +56,7 @@ Reader::Reader(SereneContext &ctx, llvm::StringRef buffer, llvm::StringRef ns,
|
||||||
: ctx(ctx), ns(ns), filename(filename), buf(buffer),
|
: ctx(ctx), ns(ns), filename(filename), buf(buffer),
|
||||||
currentLocation(Location(ns, filename)) {
|
currentLocation(Location(ns, filename)) {
|
||||||
READER_LOG("Setting the first char of the buffer");
|
READER_LOG("Setting the first char of the buffer");
|
||||||
currentChar = buf.begin();
|
currentChar = buf.begin() - 1;
|
||||||
currentPos = 1;
|
currentPos = 1;
|
||||||
currentLocation.line = 1;
|
currentLocation.line = 1;
|
||||||
currentLocation.col = 1;
|
currentLocation.col = 1;
|
||||||
|
@ -94,8 +94,6 @@ void Reader::advanceByOne() {
|
||||||
<< currentLocation.toString());
|
<< currentLocation.toString());
|
||||||
};
|
};
|
||||||
void Reader::advance(bool skipWhitespace) {
|
void Reader::advance(bool skipWhitespace) {
|
||||||
startedReading = true;
|
|
||||||
|
|
||||||
if (skipWhitespace) {
|
if (skipWhitespace) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
auto next = currentChar + 1;
|
auto next = currentChar + 1;
|
||||||
|
@ -112,10 +110,6 @@ void Reader::advance(bool skipWhitespace) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *Reader::nextChar(bool skipWhitespace, unsigned count) {
|
const char *Reader::nextChar(bool skipWhitespace, unsigned count) {
|
||||||
if (!startedReading) {
|
|
||||||
return currentChar;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!skipWhitespace) {
|
if (!skipWhitespace) {
|
||||||
READER_LOG("Next char: " << *(currentChar + count));
|
READER_LOG("Next char: " << *(currentChar + count));
|
||||||
return currentChar + count;
|
return currentChar + count;
|
||||||
|
|
Loading…
Reference in New Issue