Handle . in parse_term()
This commit is contained in:
17
lib/parser.c
17
lib/parser.c
@@ -14,6 +14,7 @@ static bool is_special(char c)
|
||||
{
|
||||
switch (c) {
|
||||
case '|':
|
||||
case '.':
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -34,12 +35,18 @@ static int parse_term(const char *input, int rem, term_t *out)
|
||||
{
|
||||
int result, used = 0;
|
||||
|
||||
result = parse_literal(input + used, rem - used, &out->literal);
|
||||
if (result < 0)
|
||||
return -1;
|
||||
if (used < rem && '.' == input[0]) {
|
||||
out->type = TERM_TYPE_WILDCARD;
|
||||
++used;
|
||||
} else {
|
||||
result = parse_literal(input + used, rem - used, &out->literal);
|
||||
if (result < 0)
|
||||
return -1;
|
||||
out->type = TERM_TYPE_LITERAL;
|
||||
used += result;
|
||||
}
|
||||
|
||||
out->quantifier = QUANTIFIER_NONE;
|
||||
out->type = TERM_TYPE_LITERAL;
|
||||
used += result;
|
||||
|
||||
return used;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user