Regex para combinar funções específicas e seus argumentos em arquivos
Estou trabalhando em um analisador de javascript gettext e estou preso no regex de análise.
Eu preciso pegar todos os argumentos passados para uma chamada de método específica_n(
e_(
. Por exemplo, se eu os tiver nos meus arquivos javascript:
_("foo") // want "foo"
_n("bar", "baz", 42); // want "bar", "baz", 42
_n(domain, "bux", var); // want domain, "bux", var
_( "one (optional)" ); // want "one (optional)"
apples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) // could have on the same line two calls..
Isso refere esta documentação:http://poedit.net/trac/wiki/Doc/Keywords
Estou planejando fazer isso em duas vezes (e duas regex):
pegar todos os argumentos de função para_n(
ou_(
chamadas de métodopegar apenas os mais difíceisBasicamente, eu gostaria de um Regex que pudesse dizer "pegue tudo depois_n(
ou_(
E pareno último parêntese)
na verdade, quando a função é concluída. Não sei se é possível com regex e sem um analisador de javascript.
O que também pode ser feito é "pegar cada" string "ou 'string' depois_n(
ou_(
e pare no final da linha OU no início de uma nova_n(
ou_(
personagem.
Em tudo que eu fiz, eu fico preso_( "one (optional)" );
com seu parêntese interno ouapples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples)
com duas chamadas na mesma linha.
Aqui está o que eu implementei até agora, com um regex não perfeito: umanalisador genérico e ajavascript one ou oguidão um