далее по Syntax lexer -> Common -> Line comment string -- как объяснить присутствие этой опции здесь, не является ли это дублирующей функцией парсера коммент? и, что важнее, Line comment string или Token rule для коммента?
Аа, понял, интересно. Спасибо!
Продолжим, с закладкой Syntax Lexer -> Styles вроде все ясно, поэтому переходим к следующей: Syntax Lexer -> Parser. Здесь неясных моментов будет много, но начнем по-маленьку.. что значат строки:
- Parent block
- Position in line
В табе Rules создаем блок. у него 2 элемента- начало имеет block type = range start, конец имеет block type = range end. Потом заходим в Parser, и в списке Parent выбираем первый из них (который range start). тогда парсер работает только для блоков указанных
Strict parent block - flag that specifies that parent block must be immediate parent for the rule.
Not a parent - flag that specifies that "parent block" is not a parent of the rule.
Always enabled - flag that specifies that this rule will be active not only in the current lexer but in the nested lexers too.
For example, in Pascal function we have "asm" range with reference to nested "Assembler" lexer. We can specify that "Comment" token rule is always enabled. In this case in the Assembler block Pascal comments will be highlighted correctly
да-да, я в курсе, что есть мануал... однако даже эти объяснения нуждаются в объяснениях и примерах. впрочем, опцию Always enabled можно понять, ее опускаем. но Strict parent block и Not a parent совершенно не понятны -- можно о них поподробнее и с примерами?
Strict- означает что блок являетя не просто родителем, одним из них (у блока может быть много родителей, один родит другого). А ПРЯМЫМ родителем. т.е. не родителем родителя
Not parent- задает что блок НЕ являетя родителем правила. т.е. он может родитель но не этого правила