You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SDBL: virtual table colouring is structural, not lexical
Virtual-table names like 'Остатки' / 'СрезПоследних' / 'Обороты' double
as legitimate query aliases — code like
`КАК Остатки … ВЫБРАТЬ Остатки.Количество` is normal SDBL. The previous
global VtKw specializer painted every such reference in the
className/Namespace yellow even when the user clearly meant an alias,
which is exactly what bsl-parser sidesteps with its DOT_MODE lexer state.
Replaced the lexer-level recognition with a structural MdoRef rule:
MdoRef { MdoKw (!mdoTail Dot Identifier)* }
The dotted tail is greedy (the !mdoTail precedence biases shift over
reduce) so 'РегистрНакопления.ТоварыНаСкладах.Остатки' parses as a
single MdoRef with two tail components. The styleTags now colours
'MdoRef/Identifier' as className — that's the only place where
'Остатки' lights up yellow now. Aliases and field-access references
stay plain variableName.
Side cleanup:
- Removed the VtKw term from the SDBL specializer table, terms file
and Parameter/sdblName alternative.
- Removed the corresponding 'VtKw → t.className' styleTag entry.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0 commit comments