quarta-feira, 15 de abril de 2009

Definindo itens aninhados recursivamente no arquivo de sintaxe

A linguagem 'x' define blocos de código entre chaves.
E um bloco de código pode conter outros blocos de código. Isto pode ser definido
deste modo:
:syntax region xBlock start=/{/ end=/}/ contains=xBlock
Suponha que você tenha este texto:
while i < b { ~
if a { ~
b = c; ~
} ~
} ~
Primeiro um 'xBlock' começa em '{' na primeira linha. Na segunda linha outro '}'
é encontrado. Desde que nos estamos dentro de um item 'xBlock', e ele contém a
si próprio, um item 'xBlock' aninhado irá começar aqui.

Assim a linha 'b = c' está dentro da região 'xBlock' de segundo nível.

Isto termina o 'xBlock' aninhado. Porque o '}' está incluído dentro da região
aninhada, ele está escondido da primeira região 'xBlock'.
Então, no último '}', a primeira região 'xBlock' termina.

0 comentários:

Postar um comentário