d\bde\bef\bfi\bin\bne\be-\b-i\bin\bnf\bfi\bin\bni\bit\bte\be - infinite recursion in define statements
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- alone: eol
+ alone: _\bk_\be_\by eol
- leading position: eol
+ leading position: _\bk_\be_\by _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx eol
- middle position: eol
+ middle position: _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bk_\be_\by
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx
+ _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx _\bs_\bu_\bf_\bf_\bi_\bx eol
- trailing position: eol
+ trailing position: _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx _\bp_\br_\be_\bf_\bi_\bx
+ _\bp_\br_\be_\bf_\bi_\bx _\bk_\be_\by eol
-OpenBSD July 4, 2017 OpenBSD
+ nested expansion: _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt
+ _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bc_\bo_\bn_\bt_\be_\bn_\bt _\bo_\bu_\bt_\be_\br eol
+
+OpenBSD April 13, 2022 OpenBSD
-/* $OpenBSD: eqn.c,v 1.47 2020/01/08 12:09:14 schwarze Exp $ */
+/* $OpenBSD: eqn.c,v 1.48 2022/04/13 20:19:18 schwarze Exp $ */
/*
+ * Copyright (c) 2014, 2015, 2017, 2018, 2020, 2022
+ * Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2014,2015,2017,2018,2020 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
static enum eqn_tok
eqn_next(struct eqn_node *ep, enum parse_mode mode)
{
- static int last_len, lim;
-
struct eqn_def *def;
size_t start;
- int diff, i, quoted;
+ int diff, i, newlen, quoted;
enum eqn_tok tok;
/*
* Reset the recursion counter after advancing
- * beyond the end of the previous substitution.
+ * beyond the end of the rightmost substitution.
*/
- if (ep->end - ep->data >= last_len)
- lim = 0;
+ if (ep->end - ep->data >= ep->sublen)
+ ep->subcnt = 0;
ep->start = ep->end;
quoted = mode == MODE_QUOTED;
return EQN_TOK__MAX;
if ((def = eqn_def_find(ep)) == NULL)
break;
- if (++lim > EQN_NEST_MAX) {
+ if (++ep->subcnt > EQN_NEST_MAX) {
mandoc_msg(MANDOCERR_ROFFLOOP,
ep->node->line, ep->node->pos, NULL);
- return EQN_TOK_EOF;
+ break;
}
/* Replace a defined name with its string value. */
ep->sz += diff;
ep->data = mandoc_realloc(ep->data, ep->sz + 1);
ep->start = ep->data + start;
+ ep->sublen += diff;
}
if (diff)
memmove(ep->start + def->valsz, ep->start + ep->toksz,
strlen(ep->start + ep->toksz) + 1);
memcpy(ep->start, def->val, def->valsz);
- last_len = ep->start - ep->data + def->valsz;
+ newlen = ep->start - ep->data + def->valsz;
+ if (ep->sublen < newlen)
+ ep->sublen = newlen;
}
if (mode != MODE_TOK)
return quoted ? EQN_TOK_QUOTED : EQN_TOK__MAX;
return;
ep->start = ep->end = ep->data;
+ ep->sublen = 0;
+ ep->subcnt = 0;
next_tok:
tok = eqn_next(ep, MODE_TOK);