Regex para que coincida con funciones específicas y sus argumentos en archivos
Estoy trabajando en un analizador de JavaScript gettext y estoy atascado en la expresión regular de análisis.
Necesito atrapar cada argumento pasado a una llamada a un método específico_n(
y_(
. Por ejemplo, si tengo estos en mis archivos 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..
Esta referencia esta documentación:http://poedit.net/trac/wiki/Doc/Keywords
Estoy planeando hacerlo en dos ocasiones (y dos expresiones regulares):
atrapar todos los argumentos de función para_n(
o_(
llamadas al métodoatrapar solo a los fibrososBásicamente, me gustaría un Regex que pudiera decir "atrapar todo después_n(
o_(
y pareen el último paréntesis)
en realidad cuando se realiza la función. No sé si es posible con regex y sin un analizador de JavaScript.
Lo que también se podría hacer es "capturar cada" cadena "o 'cadena' después_n(
o_(
y detenerse al final de la línea O al comienzo de una nueva_n(
o_(
personaje.
En todo lo que he hecho me quedo atascado_( "one (optional)" );
con su paréntesis interno oapples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples)
con dos llamadas en la misma línea.
Esto es lo que implementé hasta ahora, con expresiones regulares no perfectas: unanalizador genérico y eljavascript one o lamanillares uno