Question
a) Write a class Token that can store the value and category of any token. b) Develop a lexical analyzer. You should start by drawing
a) Write a class Token that can store the value and category of any token. b) Develop a lexical analyzer. You should start by drawing on paper a nite state automaton that can recognize types of tokens and then convert the automaton into code. Name this class Lexer and ensure that it has a public method nextToken() which returns a Token. Lexer should have a constructor with the signature Lexer(String input), where input is the string representing the query to be parsed. As mentioned before, the code for recognizing an identier should check to see if the terminal string is a keyword, and if so, then the category of the token should be set to keyword, instead of ID. If nextToken() is called when no input is left, then it should return a token with category EOI (EndOfInput). If the next terminal string is not considered a token by the lexical syntax, then return a token with category Invalid. c) Write a syntactic analyzer which parses the tokens given by Lexer using the recursive descent technique. Name this class Parser. Like Lexer, Parser should have a public constructor with the signature Parser(String input). This input string should be used to create a Lexer object. There should also be a public method run() that will start the parse. As you parse the input, Parser should output (by writing to System.out) the non-terminal that was matched, surrounded by angle-brackets, e.g.
Your assignment is to use Java to write a recursive descent parser for a restricted form of SQL, the popular database query language. The lexical syntax is specified by regular expressions: Category Definition 0-9] digit a-zA-Z letter int
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started