Как расширить абстрактный класс Syntax Analyzer Java для простого языка программирования, такого как Ada - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно написать синтаксический анализатор Java класс. Для этого я должен расширить предоставляемый класс Abstract Syntax Analyzer 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( "OK\n" );
        }
        catch( CompilationException ex )
        {
            ps.println( "Compilation Exception" );
            ps.println( ex.toTraceString() );
            ps.println( "STOP\n" );
        }
    }
}

Как новый пользователь Java, я был бы очень признателен за помощь и руководство по как продвигать этот проект, так как это всего лишь первый шаг во всем списке дел, и я просто не могу добиться успеха ..

Всего наилучшего!

1 Ответ

2 голосов
/ 04 марта 2020

Чтобы расширить этот класс, вам необходимо обеспечить реализацию всех абстрактных методов. Пример бездействия будет

public class MySyntaxAnalyzer extends AbstractSyntaxAnalyzer{

   public void _statementPart_() throws IOException, CompilationException{
   }

   public void acceptTerminal(int symbol) throws IOException, CompilationException{    
   }
}
...