public void run(MInputStream input) { inputByte = 0; index = 0; lineNumber = 1; stayNextStep = false; running = true; while ((!input.end() || stayNextStep) && running && ok) { if (!stayNextStep) { index++; inputByte = input.readByte(); buffer[index % BUFFER_SIZE] = inputByte; if (inputByte == '\n') { lineNumber++; } } else { stayNextStep = false; } MeanCS.printn("[ ").print((char)(inputByte)).print(" ]").print("\n"); running = step(inputByte); } if (!stayNextStep) { index++; } }
public void printError() { MeanCS.printn("ERROR: parser state [").print(stateNames[(int)currentState]).print("]").print("\n"); MeanCS.printn("Line ").print(lineNumber).print(": \""); // print nearby code int start = index - 1; while (start > 0 && index - start < BUFFER_SIZE && (char)buffer[start % BUFFER_SIZE] != '\n') { start--; } while (++start < index) { MeanCS.verbosen((char)(buffer[start % BUFFER_SIZE])); } MeanCS.print("\""); }