我正在为我的编译器和解释器课程做一个学校作业,我们当前的任务是使用 JavaCC 创建一个扫描器和一组令牌。我对 JavaCC 的工作原理有相当深入的了解,但我的问题是在线查找资源以在遇到困难时帮助我。我正在创建一个自定义 Token 类,我们称之为 NewToken.Java。我知道基础 Token 类有一个 image 变量和一个 kind 变量,但我想实现我自己的变量“value”。此外,我想弄清楚如何分配这个值。我希望 value 变量保存我扫描的文字值,例如,我的 NewToken 与以下内容匹配
< IDENTIFIER:(< LETTER >)+ ( < LETTER > | < DIGIT >)* >
< #LETTER:["a" - "z"] >
< #DIGIT: ["0" - "9"] >
所以类似于 Name123Name 的东西会被捕获,当它发生时,我想将字符串“Name123Name”存储到我的 NewToken 对象的“值”变量中。我希望这是有道理的,我还是 JavaCC 的新手,可能在这里用错误的名字称呼事物。
public NewToken(){}
public NewToken(int kind){
this(kind,null);
}
public NewToken(int kind, String image){
this.kind=kind;
this.image=image;
this.value=image;
}
public String toString(){
return image;
}
public static Token newToken(int ofKind, String image){
switch(ofKind){
default : return new Token(ofKind, image);
}
}
public static Token newToken(int ofKind){
return newToken(ofKind, null);
}
}
以上是我的 NewToken 类代码的一部分,我让它扩展了 Token 并实现了 java.io.serializable。我使用为 Token.java 生成的代码创建。我还有我的变量声明和我的 getValue() 函数,这里没有列出来节省空间。我不是在寻找任何人为我做我的工作,我只需要一些关于如何让这个工作的指导,提前谢谢你。