diff options
Diffstat (limited to 'lpcode.c')
| -rw-r--r-- | lpcode.c | 7 |
1 files changed, 6 insertions, 1 deletions
| @@ -139,7 +139,12 @@ int checkaux (TTree *tree, int pred) { | |||
| 139 | if (checkaux(sib2(tree), pred)) return 1; | 139 | if (checkaux(sib2(tree), pred)) return 1; |
| 140 | /* else return checkaux(sib1(tree), pred); */ | 140 | /* else return checkaux(sib1(tree), pred); */ |
| 141 | tree = sib1(tree); goto tailcall; | 141 | tree = sib1(tree); goto tailcall; |
| 142 | case TCapture: case TGrammar: case TRule: case TXInfo: | 142 | case TRule: |
| 143 | assert(tree->cap == RLNULL || tree->cap == RLNONNULL); | ||
| 144 | if (pred == PEnullable) | ||
| 145 | return (tree->cap == RLNULL); | ||
| 146 | /* else */ /* FALLTHROUGH */ | ||
| 147 | case TCapture: case TGrammar: case TXInfo: | ||
| 143 | /* return checkaux(sib1(tree), pred); */ | 148 | /* return checkaux(sib1(tree), pred); */ |
| 144 | tree = sib1(tree); goto tailcall; | 149 | tree = sib1(tree); goto tailcall; |
| 145 | case TCall: /* return checkaux(sib2(tree), pred); */ | 150 | case TCall: /* return checkaux(sib2(tree), pred); */ |
