void expandTo( LexToken orig_token, MacroExpander reader, ArrayList arguments, ArrayList expanded_arguments)
throws RuleActionException
{
HashSet new_no_expand=orig_token.setWithNewMember( getIdentifier());
if ( arguments.size()!=m_arguments || expanded_arguments.size()!=m_arguments)
throw new RuleActionException( "Bad argument count for macro "+getIdentifier());
for ( Iterator i=m_replacement_list.iterator(); i.hasNext();)
{
LexToken token=(LexToken)i.next();
if ( token instanceof SpecialExpander)
((SpecialExpander)token).expandTo( reader, new_no_expand, arguments, expanded_arguments);