我试图制作一个miniJava解析器,但我很难找到解析没有正式参数的方法声明的方法。
例如public int getNumber()
我现在的代码适用于一个或多个参数,但我不知道如何返回一个空的正式对象,因为问题在于返回null的行。
有没有办法完全跳过return语句并且什么都不返回?
public Formal nt_FormalList() :
{
Type t;
Token s;
LinkedList<Formal> fl = new LinkedList<Formal>();
Formal f;
}
{
t = nt_Type() s = <IDENTIFIER> (f = nt_FormalRest() {fl.add(f);})*
{ return new Formal(t, s.image); }
| {}
{ return null; }
}
.....
public class Formal {
public final Type t;
public final String i;
public Formal(Type at, String ai) {
t = at;
i = ai;
}
答案 0 :(得分:0)
我建议您从nt_FormalList
返回正式列表。
public List<Formal> nt_FormalList() :
{
LinkedList<Formal> fl = new LinkedList<Formal>();
Formal f;
}
{
[ f = nt_Formal() {fl.add(f);}
(<COMMA> f = nt_Formal() {fl.add(f);})*
]
{ return fl; }
}