我需要编写一个语法分析器Java类。为此,我应该扩展提供的抽象语法分析器java类。
我知道这应该很直接,但我已经花了相当长的时间试图开始,只是觉得。。。卡住了。
这是为我提供的抽象类。
public abstract class AbstractSyntaxAnalyser
{
LexicalAnalyser lex ;
Token nextToken ;
Generate myGenerate = null;
public abstract void _statementPart_() throws IOException, CompilationException;
public abstract void acceptTerminal(int symbol) throws IOException, CompilationException;
public void parse( PrintStream ps ) throws IOException
{
ps.println( lex.getFilename() );
myGenerate = new Generate();
try {
nextToken = lex.getNextToken() ;
_statementPart_() ;
acceptTerminal(Token.eofSymbol) ;
myGenerate.reportSuccess() ;
ps.println( "OKn" );
}
catch( CompilationException ex )
{
ps.println( "Compilation Exception" );
ps.println( ex.toTraceString() );
ps.println( "STOPn" );
}
}
}
作为一名新的Java用户,我非常感谢关于如何推动这个项目的帮助和指导,因为这只是一大堆事情中的第一步,我似乎无法取得任何进展。。
祝你一切顺利!
要扩展该类,需要提供所有抽象方法的实现。一个无所作为的例子是
public class MySyntaxAnalyzer extends AbstractSyntaxAnalyzer{
public void _statementPart_() throws IOException, CompilationException{
}
public void acceptTerminal(int symbol) throws IOException, CompilationException{
}
}