In lexer, always prefer the longest match
Only use rules' precedence to decide between two tokens that match the same string
This commit is contained in:
parent
c85841364e
commit
77df7fe511
5 changed files with 252 additions and 43 deletions
|
|
@ -39,18 +39,7 @@ namespace tree_sitter {
|
|||
}
|
||||
}
|
||||
case LexActionTypeAdvance: {
|
||||
// int min_precedence = *new_action.precedence_values.begin();
|
||||
int max_precedence = *new_action.precedence_values.rbegin();
|
||||
if (max_precedence > old_precedence) {
|
||||
// if (min_precedence < old_precedence)
|
||||
return true;
|
||||
} else if (max_precedence < old_precedence) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue