#python #python-3.x #python-2.7 #data-structures #file-handling
Вопрос:
private int OutsideFUnction(){
int yoho;
}
public class Blog implements Subject {
private List<Observer> observers;
private String article;
private boolean changed;int Manaky; int Chahal; String letssee;
public Blog() {
this.observers = new ArrayList<>();
}
@Override
public void register(Observer obj) {
int insideRegister;
if(obj == null) throw new NullPointerException("Null Observer");
if(!observers.contains(obj)) observers.add(obj);
}
@Override
public void unregister(Observer obj) {
observers.remove(obj);
}
public String IAMNotAtStart;
@Override
public void notifyObservers() {
List<Observer> observersLocal = null;
System.out.println("HOOOOOO")
if(!changed) return;
observersLocal = new ArrayList<>(this.observers);
this.changed = false;
for(Observer obj: observersLocal){
obj.update();
}
}
@Override
public Object getUpdate(Observer obj) {
return this.article;
}
public void postBlog(String words){
System.out.println("New Article Posted:" words);
this.article = words;
this.changed = true;
notifyObservers();
}
}
private nicheWalaFunction OutsideFUnction(){
int lettestNicheWala;
}
У меня есть приведенный выше файл java. Я читаю из этого файла с помощью Python. Моя цель-извлечь переменные и методы класса из этого файла. Как я могу это сделать? Я не хочу, чтобы переменные, определенные внутри метода, помечались как переменные класса, а методы, определенные вне класса, назывались методами класса. Пожалуйста, объясните кому-нибудь, как я могу это сделать с помощью фрагмента Python.
Комментарии:
1. Хорошим местом для начала было бы найти синтаксический анализатор для Java, написанный на Python.
2. @chepner цель состоит в том, чтобы создать свой собственный для этого …. можете ли вы решить вышеуказанную проблему с помощью регулярных выражений или манипуляций со строками?
3. Нет, регулярные выражения будут далеко не подходящими. Вы захотите начать с правильной грамматики (которая, как я предполагаю, будет контекстно-свободной) и написать синтаксический анализатор. Существует множество инструментов-генераторов синтаксических анализаторов, которые возьмут подходяще отформатированную грамматику и предоставят вам рабочий синтаксический анализатор.
Ответ №1:
Используйте синтаксический анализатор Python для Java, я рекомендую javalang.