Ich bin auf der Suche nach einer Möglichkeit, Kommentare beim Parsen zu vermeiden. Hier ist mein Problem.Rascal holen Methoden ohne Kommentare
Zuerst hole mir alle Methoden von einem M3-Modell, etwa so:
public set[loc] getMethodLocations(M3 model){
locations = { <x,y> | <x,y> <- [email protected],
x.scheme=="java+class",
y.scheme=="java+method" ||
y.scheme=="java+constructor" };
set[loc] methodLocations = { a | a <- range(locations) };
return methodLocations;
}
Dann habe ich über die abgerufenen Orte wiederholen will, etwa so:
set[loc] AllMethodsAsLoc = getMethodLocations(model);
for(methodAsLoc <- AllMethodsAsLoc) {
MethodDec m = parse(#MethodDec, methodAsLoc);
};
Mein Problem ist, dass das Parsing scheint mit einem ParseError fehlzuschlagen, wenn eine abgerufene Methode Kommentare am Ort hat. Wie kann ich beim Abrufen keine Kommentare hinzufügen oder wie kann ich Kommentare während des Parsens ignorieren?
Ich bin neu hier und lerne, bitte entschuldige meine Unwissenheit.
Jede Hilfe wird geschätzt.
Rob
Danke jurgnv. Das war genau die Lösung, die ich brauchte. Wunderbar. – Rob
Für diejenigen, die lesen und später verwenden. Bedenken Sie, dass diese Lösung nur für Methoden funktioniert. Das Code-Beispiel ruft auch Konstruktoren ab, daher musste ich auch Folgendes hinzufügen, um auch Konstruktoren zu verarbeiten: 'Syntax MyMethod = MethodDec | ConstrDec; ' und die Lösung für das Problem von @jurgenv: 'Start-Syntax MyTop = MyMethod Methode;' Deklarieren Sie Variable und verwenden Sie es mit dem Parsen wie folgt: 'MyMethod m = parse (#start [MyTop], Methode) .top.method;' – Rob