@Override public void inAAlt(AAlt node) { counter = 0; processingParsedAlt = true; if (node.getAltName() != null) { currentAlt = "A" + ResolveIds.name(node.getAltName().getText()) + currentProd; } else { currentAlt = "A" + currentProd; } ids.names.put(node, currentAlt); }
/* * Here, a map which associate the current alternative with the list of elems * is created. */ public void caseAAlt(AAlt alt) { // contains all the elements in the alternative, no matter if they are list or not listElemsGlobal = new LinkedList(); // contains only single (without operator * or +) element of the alternative. listElems = new LinkedList(); // contains only element of the alternative which are list(operator * or +). listElemslist = new LinkedList(); currentAlt = (String) ids.names.get(alt); AElem[] list_elems = (AElem[]) alt.getElems().toArray(new AElem[0]); for (int i = 0; i < list_elems.length; i++) { list_elems[i].apply(this); } alts_elemsGlobal.put(currentAlt, listElemsGlobal); alts_elems.put(currentAlt, listElems); alts_elems_list.put(currentAlt, listElemslist); }