Jump to content

Gramática EBNF para Java Regex


Knitter
 Share

Recommended Posts

Boa noite,

Estou à procura de uma gramática para descrever expressões regulares, será que algum de vós tem conhecimento de algum local onde possa obter a gramática já escrita em formato EBNF?

Preciso gerar expressões regulares através de um algoritmo genético, e seria um avanço grande ter a gramática já escrita, até porque só conheço a notação de nome e nunca tentei escrever nada nela.

Cumprimentos,

Knitter

Edited by Knitter
Link to comment
Share on other sites

Neste momento ainda estou a tentar juntar possibilidades.

Tenho de usar Java por isso vou ter de escrever/adaptar a notação às regras das REGEX de Java. Uma possibilidade para validar as expressões regulares seria simplesmente compilá-las já que as inválidas dariam erro, mas a criação de tantas excepções (que espero que ocorram com frequência) é capaz de ser demasiado pesado para ter na função de fitness. Mas também não sei se usando a gramática será mais rápido (acho que vou ter de implementar os dois para depois testar).

Obrigado pelos links.

Link to comment
Share on other sites

Eu suspeito que o Java também valida as expressões regulares através de uma gramática (ou de outro mecanismo com desempenho semelhante), pelo que esperaria que não houvesse grande vantagens em fazeres tu a validação (até porque vais estar a duplicar trabalho no caso em que as expressões são válidas).

É claro que podes tentar optimizar a implementação do teu parser, mas pela experiência que tive recentemente num caso em que implementei um parser optimizado à mão, diria que não é fácil ter ganhos significativos.

No entanto, cada caso é um caso, e se conseguires simplificar a linguagem no teu caso (i.e., senão precisares de expressões regulares tão genéricas como as do Java), até é provável que consigas alguns ganhos relevantes.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.