summaryrefslogtreecommitdiff
path: root/src/piraha/Literal.cc
blob: a8022ff8c0204433182c1fe2e66229f27cac0e1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Piraha.hpp"

using namespace cctki_piraha;

bool Literal::match(Matcher *m) {
    if(m->pos - m->input_size >= 0) {
        return false;
    }
    if(m->input[m->pos] == c) {
        m->max_pos = std::max(m->pos,m->max_pos);
        m->pos++;
        return true;
    } else {
        if(m->pos == m->max_pos+1) {
        	Bracket bex;
        	bex.addRange(c,c);
            m->fail(&bex);
        }
        return false;
    }
}