java中的特殊“%”
当我阅读Eclipse的源代码时,我发现了一个名为$className$.java的文件。其部分内容如下:java中的特殊“%”,java,abstract-syntax-tree,Java,Abstract Syntax Tree,当我阅读Eclipse的源代码时,我发现了一个名为$className$.java的文件。其部分内容如下: package $packageName$; % if viewType =="treeViewer" import java.util.ArrayList; % endif import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.*; import org.eclipse.jfac
package $packageName$;
% if viewType =="treeViewer"
import java.util.ArrayList;
% endif
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jface.action.*;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.*;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.SWT;
% if viewType == "treeViewer"
import org.eclipse.core.runtime.IAdaptable;
% endif
我试图提取if的AST,但出现了一个错误。%if和%endif在java中是什么意思?这不是一个有效的Java源文件,它要么是一个用于生成特定类型Java文件的Eclipse文件模板,要么是一个需要先通过预处理器才能成为真正有效的Java源文件的文件 如果是第一个,那么您甚至不应该尝试从中获取AST,如果是后者,您需要找出该项目使用的预处理器Java中没有标准的预处理器,并通过它运行文件,并从预处理步骤的结果中提取AST
% Options in the template:
%
% packageName
% className
% viewName
% viewCategoryId
% viewCategoryName
% viewType
% doubleClick
% popup
% localToolbar
% localPulldown
% sorter
% filter
% drillDown
public class $className$ extends ViewPart {
%if viewType == "tableViewer"
private TableViewer viewer;
%else
% if viewType == "treeViewer"
private TreeViewer viewer;
private DrillDownAdapter drillDownAdapter;
% endif
%endif
%if (localToolbar || localPulldown || popup)
private Action action1;
private Action action2;
%endif
%if doubleClick
private Action doubleClickAction;
%endif