blob: 8a25524d9a310a9227f680797dad13b255c4bb01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include "Piraha.hpp"
using namespace cctki_piraha;
bool is_c_ident(char c) {
return ('a' <= c && c <= 'z')
|| ('A' <= c && c <= 'Z')
|| ('0' <= c && c <= '9')
|| c == '_';
}
bool Boundary::match(Matcher *m) {
if(m->pos == 0 || m->pos == (int)m->input_size)
return true;
char c2 = m->input[m->pos];
char c1 = m->input[m->pos-1];
bool b1 = is_c_ident(c1);
bool b2 = is_c_ident(c2);
return !b1 || !b2;
}
|