Restrições à inserção de códigos de padrões

Quando o usuário tenta inserir o código de um padrão (sua sintaxe) em seu código, deve-se verificar se tal código não entra em "conflito" com aquele que já estava no editor. Abaixo estão enumeradas as condições que permitem a inserção de código:

  1. `foo` , onde "foo" é o nome de um pattern, mais precisamente um superpattern do padrão que está sendo inserido
  2. Qualquer espaço em branco logo após um ";" desde que este seja o final de uma instrução - e não quando o ";" estiver dentro de uma string ou dentro dos parâmetros de um for
  3. Qualquer espaço em branco logo após um "}" desde que este seja o final de um bloco de instrução - e não quando o "}" estiver dentro de uma string, ou for um delimitador de array ou de struct .
  4. Entre linhas de preprocessador (#define , #include , etc...)
  5. Nunca dentro de comentários ( /* ... */ )
  6. Nunca dentro de strings e caracteres ( "...."  , '.....' )
  7. Num editor totalmente em branco (só em casos especiais, como o pattern "Simple Program").
  8. ???