1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
use core:io;
/**
* State for parsing strings with a recursive descent parser.
*/
class RecursiveStrState {
// String to parse.
Str input;
// Current position.
Str:Iter pos;
init(Str input, Str:Iter start) {
init {
input = input;
pos = start;
}
}
// Set error.
void error(Str error) : abstract;
}
/**
* State for parsing binary objects with a recursive descent parser.
*/
class RecursiveBinaryState {
// Input to parse.
Buffer input;
// Current position.
Nat pos;
// Error?
Str error;
init(Buffer input, Nat start) {
init {
input = input;
pos = start;
error = "";
}
}
// Set error.
void error(Str error) : abstract;
}
|