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
|
// re2java $INPUT -o $OUTPUT
class Main {
// Expects a null-terminated string.
static int lex(String yyinput) {
int yycursor = 0;
int count = 0;
loop: while (true) {
/*!re2c
re2c:YYCTYPE = "char";
re2c:YYPEEK = "yyinput.charAt(yycursor)";
re2c:yyfill:enable = 0;
* { return -1; }
[\x00] { return count; }
[a-z]+ { count += 1; continue loop; }
[ ]+ { continue loop; }
*/
}
}
public static void main(String []args) {
assert lex("\0") == 0;
assert lex("one two three\0") == 3;
assert lex("f0ur\0") == -1;
}
};
|