Java Code: Below is Parser.java and there are errors. Look at the errors carefully and please fix those errors and show the fixed code.    Parser.java import java.text.ParseException; import java.util.LinkedList; import java.util.List; import mypack.Token.TokenType; public class Parser { private TokenHandler tokenHandler;     private LinkedList tokens;     public Parser(LinkedList tokens) {         this.tokenHandler = new TokenHandler(tokens);         this.tokens = tokens;     }     public boolean AcceptSeparators() {         boolean foundSeparator = false;         while (tokenHandler.MoreTokens()) {             Token currentToken = tokenHandler.getCurrentToken();             if (currentToken.getType() == Token.TokenType.NEWLINE || currentToken.getType() == Token.TokenType.SEMICOLON) {                 tokenHandler.consumeMatchedToken();             foundSeparator = true;         } else {         break;         }         }         return foundSeparator;     }     public ProgramNode Parse() throws Exception {         ProgramNode program = new ProgramNode();         while (tokenHandler.MoreTokens()) {             if (!parseFunction(programNode) && !parseAction(programNode)) {                 throw new ParseException("Unexpected token: " + tokenHandler.getCurrentToken());             }         }         return programNode;     }             private boolean ParseFunction(ProgramNode programNode) {     Token functionNameToken = tokenHandler.getCurrentToken();         if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {             FunctionDefinitionNode functionNode = new FunctionDefinitionNode(functionNameToken.getType());             programNode.addNode(functionNode);             if (tokenHandler.MatchAndRemove(Token.TokenType.LPAREN) != null) {                               if (tokenHandler.MatchAndRemove(Token.TokenType.RPAREN) != null) {                     AcceptSeparators();                     return true;                 }             }         }         return false;     }          private boolean parseAction(ProgramNode programNode) {     Token functionNameToken = tokenHandler.getCurrentToken();         if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {             ActionNode actionNode = new ActionNode(tokenHandler.getLastMatchedToken().getType());             programNode.addNode(actionNode);             AcceptSeparators();             return true;         }         return false;     } }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Java Code: Below is Parser.java and there are errors. Look at the errors carefully and please fix those errors and show the fixed code. 

 

Parser.java

import java.text.ParseException;

import java.util.LinkedList;

import java.util.List;

import mypack.Token.TokenType;

public class Parser {

private TokenHandler tokenHandler;

    private LinkedList<Token> tokens;

    public Parser(LinkedList<Token> tokens) {

        this.tokenHandler = new TokenHandler(tokens);

        this.tokens = tokens;

    }

    public boolean AcceptSeparators() {

        boolean foundSeparator = false;

        while (tokenHandler.MoreTokens()) {

            Token currentToken = tokenHandler.getCurrentToken();

            if (currentToken.getType() == Token.TokenType.NEWLINE || currentToken.getType() == Token.TokenType.SEMICOLON) {

                tokenHandler.consumeMatchedToken();

            foundSeparator = true;

        } else {

        break;

        }

        }

        return foundSeparator;

    }

    public ProgramNode Parse() throws Exception {

        ProgramNode program = new ProgramNode();

        while (tokenHandler.MoreTokens()) {

            if (!parseFunction(programNode) && !parseAction(programNode)) {

                throw new ParseException("Unexpected token: " + tokenHandler.getCurrentToken());

            }

        }

        return programNode;

    }

       

    private boolean ParseFunction(ProgramNode programNode) {

    Token functionNameToken = tokenHandler.getCurrentToken();

        if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {

            FunctionDefinitionNode functionNode = new FunctionDefinitionNode(functionNameToken.getType());

            programNode.addNode(functionNode);

            if (tokenHandler.MatchAndRemove(Token.TokenType.LPAREN) != null) {

             

                if (tokenHandler.MatchAndRemove(Token.TokenType.RPAREN) != null) {

                    AcceptSeparators();

                    return true;

                }

            }

        }

        return false;

    }

    

    private boolean parseAction(ProgramNode programNode) {

    Token functionNameToken = tokenHandler.getCurrentToken();

        if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {

            ActionNode actionNode = new ActionNode(tokenHandler.getLastMatchedToken().getType());

            programNode.addNode(actionNode);

            AcceptSeparators();

            return true;

        }

        return false;

    }

}

 

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Follow-up Questions
Read through expert solutions to related follow-up questions below.
Follow-up Question

You copied the same code that has errors. Please paste the code on eclipse and take a look at each error. There are red squiggles. I need an error free code for parser.java. Please fix those 

Solution
Bartleby Expert
SEE SOLUTION
Knowledge Booster
Concept of Threads
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education