This study source was downloaded by 100000867488176 from CourseHero.com on 07-02-2023 12:09:58 GMT -05:00https://www.coursehero.com/file/205400427/CSE340-Project2-1pdf/ CSE340 Project 2: Parsing The goal of this project is to give you experience in writing a top-down recursive descent parser and to get introduced to the basics of symbol tables for nested scopes. We begin by introducing the grammar of our language. Then we will discuss the semantics of our language that involves lexical scoping rules and name resolution. Finally, we will go over a few examples and formalize the expected output. NOTE: This project is significantly more involved than the first project. You should start on it immediately. 1. Lexical Specification Here is the list of tokens that your lexical analyzer needs to support: PUBLIC = public PRIVATE = private EQUAL = = COLON = : COMMA = , SEMICOLON = ; LBRACE = { RBRACE = } ID = letter (letter + digit)* Comments and Space In addition to these tokens, our input programs might have comments that should be ignored by the lexical analyzer. A comment starts with // and continues until a newline character is encountered. The regular expressions for comments is: // (any)* \n in which any is defined to