/ / Analisando um idioma simples para formatação de título - java

Analisando um idioma simples para formatação de título - java

Estou escrevendo um reprodutor de áudio usando java e quero um formatador de título semelhante ao foobar2000. Exemplos são:

$if($strcmp(%album artist%,%artist%),%artist%,$if2(%album%,Unknown))

ou

[%album%][ "("CD $ifgreater(%totaldiscs%,1,%discnumber%,)")"]

o primeiro exemplo retorna uma sequência e, se for o mesmo para as faixas seqüenciais em uma lista de reprodução, elas são agrupadas, o segundo exemplo formata o nome do álbum e adiciona um número de CD, se existir. A referência completa é Aqui

Eu não preciso de tudo, mas pelo menos algumas das funcionalidades.

Quão difícil é escrever um analisador para esse idioma. Existem compiladores para java?

Seria mais fácil usar o mecanismo javascript de java? Qual será a velocidade (processando vários milhares de faixas)?

Respostas:

1 para resposta № 1

Existem algumas ferramentas para analisar idiomas personalizados. Uma das ferramentas comuns é o gerador de analisador antlr.

Para responder sua pergunta, se for difícil? Sim, ele é. A análise das instruções em uma árvore de sintaxe é apenas o primeiro passo. Você ainda precisa escrever o intérprete, e essa sintaxe do gerador de títulos foobar2000 parece bastante complexa!


2 para resposta № 2

Você já pensou em usar um mecanismo de modelo, como Freemarker ou Velocidade? Suas linguagens de marcação não são exatamente o que você especificou, mas são muito flexíveis. Pode ser muito detalhado se for para usuários finais.