ANTLR tree walker, múltiples veces de valor de retorno

Tengo un andador como este:

function:
    ^(FUNCTION_TOK fcname=IDENTIFIER param=functionParameters*){
        a_param_arrayList.add(param);
    }
;

functionParameters returns [Object sth]:
    ^(PARAM_TOK value=IDENTIFIER){ sth = $value.getText();}
;

Este es un escenario simple, solo quiero agregar los parámetros a una lista de matrices, pero el código anterior ( a_param_arrayList.add (param) ) solo recopilará el primer parámetro e ignorará los demás, pero functionParameters en realidad parasa múltiples parámetros.

¿Alguien sabe cómo arreglar este andador? ¡Muchas gracias!

Respuesta 1

Resuelvo este problema usando argumentos de reglas.

function:
    ^(FUNCTION_TOK fcname=IDENTIFIER functionParameters[a_param_arraylist]*)
;

functionParameters [ArrayList arr] returns [Object sth]:
    ^(PARAM_TOK value=IDENTIFIER){ sth = $value.getText(); arr.add(sth);}
;
Respuesta: 2

En estos días, nos encontramos con un problema extraño, algunas de nuestras aplicaciones solr en tomcat con frecuencia caducan con una gran cantidad de conexiones. Hace varios días, agregamos el gc arg -XX: + ...

Estoy tratando de configurar Freemarker, pero para poder usarlo, instalé Ant (bin) e Ivy. Si escribo ant -version, todo parece estar bien, pero cada vez que escribo cualquier comando que involucre a ant, ...

Tengo una gran función JAVA no estática, que utiliza esta referencia en varios lugares dentro de ella. Quiero convertirlo en función estática y pasar "esta" referencia como parámetro, para poder tomarlo ...

public class Main {public static void main (String [] args) {...