

//------------- extracting parameters from parameter list -----
//------------- this really is a common utility and should be
//------------- placed in its own layer for others to use
//------------- originally written for Unpack tool

public class AST_ParList {

    public String onlyParams() {
        AstCursor c = new  AstCursor();
        String result = "";

        for ( c.FirstElement( this ); c.MoreElement(); c.NextElement() ) {
            // here's what I'm taking advantage of -- I know
            // a formal parameter will always be a FormParDecl production
            // and that a VariableDeclaratorId will always be a
            // DecNameDim production.  To generalize, it is necessary
            // to push a set of abstract methods through a set of classes...

            FormParDecl fpd = ( FormParDecl ) c.node;
            DecNameDim  dnd = ( DecNameDim ) fpd.arg[1];

            String varname = dnd.arg[0].tok[0].tokenName();
            if ( result.equals( "" ) )
                result = varname;
            else
                result = result + ", " + varname;
        }
        return result;
    }
}
