[Solved] COMP3220 Ruby Parser Part 1

$25

File Name: COMP3220_Ruby_Parser_Part_1.zip
File Size: 254.34 KB

SKU: [Solved] COMP3220 Ruby Parser Part 1 Category: Tag:
5/5 - (1 vote)

For this assignment, we will be writing a parser that is able to parse an input file written in our Tiny grammar. You should finish writing the Parser class that Ive provided. Your Parser class should print:

  • Each time it enters or leaves a rule and what the rule is
  • Each time it recognizes a token and what the token was
  • Something, everytime it catches an error
  • Whether or not the parse completed successfully (no errors) and how many errors were found

Parser.rb extends Scanner.rb (The lexer that you wrote for your last assignment) and provides a framework for a top-down, recursive-descent parser of the TINY language. The parser stays one token ahead in the Token stream (@lookahead) and uses the Token to predict how to continue parsing the current instruction and which method to call next.

The consume() method calls nextToken() in the scanner. The current @lookahead Token is discarded, and the next Token in the stream is retrieved. Whitespace Tokens are discarded.

The match(dtype) method tries to match the @lookahead Token with the provided type (dtype). If a match is found, consume() is called to retrieve the next Token. Otherwise an error is raised.

The program() method is first called to parse a TINY program. Since a TINY program consists of a sequence of statements, program() calls statement() repeatedly until it encounters the EOF token.

Complete the parser by providing methods for the appropriate BNF rules in TINY.

I have given you my lexer and token ruby classes. I have also partially written the parser for you and have written a main.rb file that can run your ruby parser.

I have also included 5 sample input files that you can use to test your program once youve finished writing it.

input[1-3].txt should complete with no parse errors.

input[4-5].txt should have parse errors.

Below are screenshots of what your output should look like, based on the input files Ive provided.

Deliverables

Submit ONLY your Parser.rb file.

input3.txt

input4.txt

input5.txt

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] COMP3220 Ruby Parser Part 1
$25